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