summaryrefslogtreecommitdiff
path: root/zebra/zebra_dplane.c
diff options
context:
space:
mode:
authorSamanvitha B Bhargav <bsamanvitha@vmware.com>2023-08-11 03:32:16 -0700
committerSamanvitha B Bhargav <bsamanvitha@vmware.com>2023-08-12 04:10:05 -0700
commit32f91a88b6f5466b0449f63f4a40d975cdb152a8 (patch)
tree71d0b1265627845e17c2bba553f22838852cf528 /zebra/zebra_dplane.c
parente9e304e810927d32e17e7e930d1f141b5d199803 (diff)
bgpd: Fix update message error handling for multiple same attributes
As per RFC7606 section 3g, g. If the MP_REACH_NLRI attribute or the MP_UNREACH_NLRI [RFC4760] attribute appears more than once in the UPDATE message, then a NOTIFICATION message MUST be sent with the Error Subcode "Malformed Attribute List". If any other attribute (whether recognized or unrecognized) appears more than once in an UPDATE message, then all the occurrences of the attribute other than the first one SHALL be discarded and the UPDATE message will continue to be processed. However, notification is sent out currently for all the cases. Fix: For cases other than MP_REACH_NLRI & MP_UNREACH_NLRI, handling has been updated to discard the occurrences other than the first one and proceed with further parsing. Again, the handling is relaxed only for the EBGP case. Also, since in case of error, the attribute is discarded & stream pointer is being adjusted accordingly based on length, the total attribute length sanity check case has been moved up in the function to be checked before this case. Signed-off-by: Samanvitha B Bhargav <bsamanvitha@vmware.com>
Diffstat (limited to 'zebra/zebra_dplane.c')
0 files changed, 0 insertions, 0 deletions