+ printf(", subcode %s (%u)",
+ tok2str(bgp_notify_minor_update_values, "Unknown", bgpn.bgpn_minor),
+ bgpn.bgpn_minor);
+ break;
+ case BGP_NOTIFY_MAJOR_CAP:
+ printf(" subcode %s (%u)",
+ tok2str(bgp_notify_minor_cap_values, "Unknown", bgpn.bgpn_minor),
+ bgpn.bgpn_minor);
+ case BGP_NOTIFY_MAJOR_CEASE:
+ printf(", subcode %s (%u)",
+ tok2str(bgp_notify_minor_cease_values, "Unknown", bgpn.bgpn_minor),
+ bgpn.bgpn_minor);
+
+ /* draft-ietf-idr-cease-subcode-02 mentions optionally 7 bytes
+ * for the maxprefix subtype, which may contain AFI, SAFI and MAXPREFIXES
+ */
+ if(bgpn.bgpn_minor == BGP_NOTIFY_MINOR_CEASE_MAXPRFX && length >= BGP_NOTIFICATION_SIZE + 7) {
+ tptr = dat + BGP_NOTIFICATION_SIZE;
+ TCHECK2(*tptr, 7);
+ printf(", AFI %s (%u), SAFI %s (%u), Max Prefixes: %u",
+ tok2str(bgp_afi_values, "Unknown", EXTRACT_16BITS(tptr)),
+ EXTRACT_16BITS(tptr),
+ tok2str(bgp_safi_values, "Unknown", *(tptr+2)),
+ *(tptr+2),
+ EXTRACT_32BITS(tptr+3));
+ }