From a2303c89ae9cbfb02ed6e6c1329e99c8c6656ff9 Mon Sep 17 00:00:00 2001 From: Stefan Sperling Date: Tue, 3 Feb 2009 14:12:23 +0000 Subject: In Intra-Area-Prefix LSAs, set the LA-bit for all prefixes of 128-bit length, regardless of interface type. Allowed by RFC5340 and ok claudio@ --- usr.sbin/ospf6d/ospfe.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/usr.sbin/ospf6d/ospfe.c b/usr.sbin/ospf6d/ospfe.c index a3c4c94c155..84ac7a55809 100644 --- a/usr.sbin/ospf6d/ospfe.c +++ b/usr.sbin/ospf6d/ospfe.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ospfe.c,v 1.21 2009/02/03 14:02:01 stsp Exp $ */ +/* $OpenBSD: ospfe.c,v 1.22 2009/02/03 14:12:22 stsp Exp $ */ /* * Copyright (c) 2005 Claudio Jeker @@ -1113,12 +1113,14 @@ orig_intra_lsa_rtr(struct iface *iface_arg) if (iface->type == IF_TYPE_POINTOMULTIPOINT || iface->state == IF_STA_LOOPBACK) { lsa_prefix.prefixlen = 128; - lsa_prefix.options = OSPF_PREFIX_LA; } else { lsa_prefix.prefixlen = ia->prefixlen; lsa_prefix.metric = htons(iface->metric); } + if (lsa_prefix.prefixlen == 128) + lsa_prefix.options = OSPF_PREFIX_LA; + inet6applymask(&prefix, &ia->addr, lsa_prefix.prefixlen); log_debug("orig_intra_lsa_rtr: prefix %s, interface %s", log_in6addr(&prefix), iface->name); -- cgit v1.2.3