chris.hall.list at highwayman
Mar 14, 2012, 11:05 AM
Post #1 of 2
So, I've been looking at the BGP Update Message Attribute handling...
...RFC4724 says that a completely empty UPDATE message is an
End-of-RIB for IPv4 Unicast.
...it then says:
"For any other address family, it is an UPDATE message that
contains only the MP_UNREACH_NLRI attribute [BGP-MP] with
no withdrawn routes for that <AFI, SAFI>."
I read this as meaning that to be an End-of-RIB, the update MESSAGE
should contain absolutely nothing other than the empty
The current code:
1. will not recognise an empty MP_UNREACH_NLRI for IPv4
Unicast as an End-of-RIB.
It is arguable that is what the RFC means by "For any
*other* address family" (my emphasis).
It would be perverse to send such a message...
...so, so far, so good.
2. will recognise an empty MP_UNREACH_NLRI as End-of-RIB
*provided* there are no other Withdrawn Routes.
This means that there may be:
* any number of other attributes.
* any number of ordinary IPv4 Unicast NLRI
* any number of NLRI in an MP_REACH_NLRI attribute
Which isn't what I read the RFC as specifying.
Now, I guess you have to be borderline mad to issue an empty
MP_UNREACH_NLRI in any case *except* End-of-RIB.
So, I suppose one could piggy-back the End-of-RIB in the same message
as the last NLRI for the AFI/SAFI in question.
Is the current code allowing for something which happens in practice,
but the RFC does not (as I read it) allow ?
Or is the current code just a wee bit sloppy ?
Is there an expert in the house who can advise, please ?
Quagga-dev mailing list
Quagga-dev [at] lists