I am intrigued by the following bit of code in BIRD 1.3.7 proto/ospf/iface.c
void
ospf_ifa_notify(struct proto *p, unsigned flags, struct ifa *a)
{
[...]
if (flags & IF_CHANGE_UP)
{
int done0 = 0;
struct ospf_area *oa;
WALK_LIST(oa, po->area_list)
{
int iid = 0;
struct ospf_iface_patt *ip;
while (ip = ospf_iface_patt_find(oa->ac, a->iface, iid))
{
ospf_iface_new(oa, a, ip);
if (ip->instance_id == 0)
done0++;
iid = ip->instance_id + 1;
}
}
I might be wrong here, but if I understand correctly, the code expects the set of instance IDs configured on each interface to be of the form [| 0, n |].
In addition, I haven't seen any option to manually set Instance IDs.
Is there any reason why this should be the case? I would like to manually set the instance ID to something other than 0, without necessarily having other protocol instances running on the same interface.
Thanks
- Benjamin