forked from osmocom/wireshark
BGP: add Open message error/unsupported capability
According to RFC 5492 [1], paragraph 5, Data field of BGP notification for Open message error/unsupported capability must list the set of unsupported capabilities Bug: 14274 Change-Id: Iacd33b5c83bc234652d2a5444f0029640d33e1c5 Reviewed-on: https://code.wireshark.org/review/24829 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
parent
b2e6d615c2
commit
2b4322ceba
|
@ -7688,6 +7688,23 @@ dissect_bgp_update(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Dissect a BGP CAPABILITY message.
|
||||
*/
|
||||
static void
|
||||
dissect_bgp_capability(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo)
|
||||
{
|
||||
int offset = 0;
|
||||
int mend;
|
||||
|
||||
mend = offset + tvb_get_ntohs(tvb, offset + BGP_MARKER_SIZE);
|
||||
offset += BGP_HEADER_SIZE;
|
||||
/* step through all of the capabilities */
|
||||
while (offset < mend) {
|
||||
offset = dissect_bgp_capability_item(tvb, tree, pinfo, offset, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Dissect a BGP NOTIFICATION message.
|
||||
*/
|
||||
|
@ -7701,6 +7718,7 @@ dissect_bgp_notification(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo)
|
|||
guint8 clen;
|
||||
guint8 minor_cease;
|
||||
|
||||
|
||||
hlen = tvb_get_ntohs(tvb, BGP_MARKER_SIZE);
|
||||
offset = BGP_MARKER_SIZE + 2 + 1;
|
||||
|
||||
|
@ -7749,6 +7767,10 @@ dissect_bgp_notification(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo)
|
|||
offset += 1;
|
||||
proto_tree_add_item(tree, hf_bgp_notify_communication, tvb, offset, hlen - BGP_MIN_NOTIFICATION_MSG_SIZE - 1, ENC_UTF_8|ENC_NA);
|
||||
/* otherwise just dump the hex data */
|
||||
} else if ( major_error == BGP_MAJOR_ERROR_OPEN_MSG && minor_cease == 7 ) {
|
||||
while (offset < hlen) {
|
||||
offset = dissect_bgp_capability_item(tvb, tree, pinfo, offset, FALSE);
|
||||
}
|
||||
} else {
|
||||
proto_tree_add_item(tree, hf_bgp_notify_data, tvb, offset, hlen - BGP_MIN_NOTIFICATION_MSG_SIZE, ENC_NA);
|
||||
}
|
||||
|
@ -7869,23 +7891,6 @@ example 2
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Dissect a BGP CAPABILITY message.
|
||||
*/
|
||||
static void
|
||||
dissect_bgp_capability(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo)
|
||||
{
|
||||
int offset = 0;
|
||||
int mend;
|
||||
|
||||
mend = offset + tvb_get_ntohs(tvb, offset + BGP_MARKER_SIZE);
|
||||
offset += BGP_HEADER_SIZE;
|
||||
/* step through all of the capabilities */
|
||||
while (offset < mend) {
|
||||
offset = dissect_bgp_capability_item(tvb, tree, pinfo, offset, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
dissect_bgp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
||||
gboolean first)
|
||||
|
|
Loading…
Reference in New Issue