Change unnamed ptp link description on OSPFv2.

Although it is a slight deviation from the standard, it has no ill
consequences for OSPFv2 and the change fixes a compatibility issue
with some broken implementations.
This commit is contained in:
Ondrej Zajicek 2012-11-15 14:08:20 +01:00
parent 1555095795
commit 6cadbf325b

View file

@ -258,8 +258,17 @@ originate_rt_lsa_body(struct ospf_area *oa, u16 *length)
ln = lsab_alloc(po, sizeof(struct ospf_lsa_rt_link)); ln = lsab_alloc(po, sizeof(struct ospf_lsa_rt_link));
ln->type = LSART_PTP; ln->type = LSART_PTP;
ln->id = neigh->rid; ln->id = neigh->rid;
ln->data = (ifa->addr->flags & IA_PEER) ?
ifa->iface_id : ipa_to_u32(ifa->addr->ip); /*
* ln->data should be ifa->iface_id in case of no/ptp
* address (ifa->addr->flags & IA_PEER) on PTP link (see
* RFC 2328 12.4.1.1.), but the iface ID value has no use,
* while using IP address even in this case is here for
* compatibility with some broken implementations that use
* this address as a next-hop.
*/
ln->data = ipa_to_u32(ifa->addr->ip);
ln->metric = ifa->cost; ln->metric = ifa->cost;
ln->padding = 0; ln->padding = 0;
i++; i++;