Hello list,

I have checked the implementation again and it seems ‘ipv4_has_link_scope()’ is not implemented:

ipv6.h (everything works fine):
65  #define ipa_has_link_scope(x) ipv6_has_link_scope(&(x))
90  static inline int ipv6_has_link_scope(ip_addr *a)
91  {
92    return ((a->addr[0] & 0xffc00000) == 0xfe800000);
93  }

ipv4.h (returns 0 in any case)
59  #define ipa_has_link_scope(x) ipv4_has_link_scope(_I(x))
77  static inline int ipv4_has_link_scope(u32 a UNUSED)
78  {
79   return 0;
80  }

However, does it make sense to do this check in the first place?

Thanks,
Amadeus


On 21 Feb 2015, at 18:39, Amadeus Alfa <amadeus@freehop.mooo.com> wrote:

I forgot to mention that my interface ‘784648196’ has an IPv4 scope link address configured like this:

784648196@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1462 qdisc pfifo_fast master bat0 state UNKNOWN group default qlen 1000
inet 169.254.40.2/21 scope link 784648196

How can I use scope link configurations with BGP in bird4?

Thanks again,
Amadeus


On 14 Feb 2015, at 12:13, Amadeus Alfa <amadeus@freehop.mooo.com> wrote:

Hello list,

in bird6 I can use the following configuration snippet with IPv6 link local addresses:

protocol bgp xxx {
  neighbor fe80::2ff:c0bb:fe00:1234 % '784648196' as 1234;
};

('784648196' is the interface name)

My question is now: How can I use IPv4 scope link addresses in bird4?

When I use the line below I get an error: "Link-local address and interface scope must be used together"

protocol bgp xxx {
  neighbor 169.254.0.1 % '784648196' as 1234;
};

Thanks,
Amadeus