Subject: Re: NSSA question

From: "Pat Murphy - (650)329-4044" <[email-masked]>
Date: Mon, 1 Nov 2004 20:24:19 -0700

Acee,

>I think the assumption from RFC 3101 doesn't take this case into
>account.

 Since a Type-7 LSA only has area-wide flooding scope, when its
 forwarding address is set to 0.0.0.0, its ASBR's routing table
 entry must be chosen from the originating NSSA.  Here no
 pruning is necessary since this entry always contains non-
 backbone intra-area paths.

You are correct. This ABR case was not envisioned. Unfortunately
just because an ABR receives an external LSA for a prefix from an
ASBR, does not mean that the same ASBR originated a T5 or T7 into
each of the ABR's directly connected areas (NSSA or non-NSSA).
Below is a revision of the pruning process of RFC 3101 Section 2.5
Step (3). Should a correction be made or should we just leave the
spec as is and let individual implementations handle it? Keep in
mind this might result in more NSSA paradoxial behavior, ala RFC
3101 Appendix E. However it should restore the proper forwarding
behaviour of OSPF Section 16.4.1.

Pat

********* Possible correction******************

  If the forwarding address is set to 0.0.0.0 then packets
  should be sent to the ASBR itself. However if the ASBR did
  not originate into an NSSA a Type-7 LSA for the current LSA's
  prefix, then any path to the ASBR through that NSSA is
  not used. Furthermore if the ASBR did not originate a Type-5
  LSA for the current LSA's prefix, then any paths to it across
  non-NSSA areas are not used. From among the remaining multiple
  routing table entries for the ASBR (both NSSA and non-NSSA
  ASBR entries might still exist), select the preferred entry as
  follows:
  [NSSA]

    If RFC1583Compatibility is set to "disabled", prune the set
    of routing table entries for the ASBR as described in OSPF
    Section 16.4.1. In any case, among the remaining routing
    table entries, select the routing table entry with the least
    cost; when there are multiple least cost routing table
    entries the entry whose associated area has the largest OSPF
    Area ID (when considered as an unsigned 32-bit integer) is
    chosen.
    [OSPF]

  If the current LSA is Type-7, and its forwarding address is set
  to [0.0.0.0], plus its OSPF Area ID was not chosen during the
  above pruning process, then do nothing with this LSA and
  consider the next in the list.
  [NSSA]

************ RFC 3101 text *******************

  If the forwarding address is set to 0.0.0.0 then packets
  should be sent to the ASBR itself.  If the LSA is Type-5, from
  among the multiple non-NSSA routing table entries for the ASBR
  (both NSSA and non-NSSA ASBR entries might exists on an NSSA
   border router), select the preferred entry as follows:
   ~[OSPF]

     If RFC1583Compatibility is set to "disabled", prune the set
     of routing table entries for the ASBR as described in OSPF
     Section 16.4.1.  In any case, among the remaining routing
     table entries, select the routing table entry with the least
     cost; when there are multiple least cost routing table
     entries the entry whose associated area has the largest OSPF
     Area ID (when considered as an unsigned 32-bit integer) is
     chosen.
     [OSPF]

   Since a Type-7 LSA only has area-wide flooding scope, when its
   forwarding address is set to 0.0.0.0, its ASBR's routing table
   entry must be chosen from the originating NSSA.  Here no
   pruning is necessary since this entry always contains non-
   backbone intra-area paths.
   [NSSA]

---

From: Acee Lindem <[email-masked]>
Date: Thu, 4 Nov 2004 10:14:28 -0500

Hi Pat,
I don't think we should spend too much time on this obscure case. We
certainly aren't going to respin the document. The change could be
sent to the [email-masked] for inclusion in RFC Errata
http://www.rfc-editor.org/errata.html.

Having said that, I think the changes you suggest are too much. IMHO,
we really only need to change one sentence. Here is my suggested
revision:

     Since a Type-7 LSA only has area-wide flooding scope, when its
     forwarding address is set to 0.0.0.0, its ASBR's routing table
     entry must be chosen from the originating NSSA. When there are
     multiple least cost routing table entries through multiple NSSAs,
     select the entry through the area with the largest OSPF
     Area ID (when considered as an unsigned 32-bit integer).
    [NSSA]

(And I said I didn't want to spend to much time on this :^),
Acee

---

From: Roch Guerin <[email-masked]>
Date: Thu, 4 Nov 2004 13:33:23 -0500

Acee,

I think that the text below would not catch the case where and ABR/ASBR
combo attaches
to both an NSSA and a regular non-backbone area.  This case would not
get caught by the
last step that gives preference to T5's, and hence the non-NSSA
non-backbone area, since
that step calls for a non-zero forwarding address.

This being said, I agree with you that this probably does not warrant an
explicit fix since it
does not have any negative side-effect, just a slight inconsistency in
behavior.

Roch

---

From: Acee Lindem <[email-masked]>
Date: Thu, 4 Nov 2004 15:57:19 -0500

Roch,
You're right. The selection list needs to be expanded to at least
contain preference of a type 5 over a type 7 to be consistent.
I don't think Pat's suggested change handled this case either.
Thanks,
Acee