And explain why the fact that RFC 2858 says you can't do what RFC 2545
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 3 Jul 2001 02:49:38 +0000 (02:49 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 3 Jul 2001 02:49:38 +0000 (02:49 +0000)
suggests, and that RFC 2858 obsoletes RFC 2283 which says you can,
doesn't matter - Ethereal's job isn't to enforce protocol standards or
to refuse to dissect stuff that doesn't conform to the final version of
standards; if it can dissect stuff that's now illegal but that wasn't
illegal in the past, and do so without causing problems when dissecting
currently legal stuff, it should so so, so that if you have captures
that include now-illegal stuff (perhaps from old devices that haven't
been upgraded, or from old captures), you can still see what was
happening.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3644 f5534014-38df-0310-8fa8-9805f1628bb7

packet-bgp.c

index 805d0507692a5d0870d1caae52389993e6b49183..1f93bc4e8e515e5f707e8e347cd5da89a5969d55 100644 (file)
@@ -2,13 +2,12 @@
  * Routines for BGP packet dissection.
  * Copyright 1999, Jun-ichiro itojun Hagino <itojun@itojun.org>
  *
- * $Id: packet-bgp.c,v 1.42 2001/07/03 02:38:27 guy Exp $
+ * $Id: packet-bgp.c,v 1.43 2001/07/03 02:49:38 guy Exp $
  *
  * Supports:
  * RFC1771 A Border Gateway Protocol 4 (BGP-4)
  * RFC1965 Autonomous System Confederations for BGP
  * RFC1997 BGP Communities Attribute
- * RFC2545 BGP-4 Multiprotocol Extensions for IPv6 IDR
  * RFC2796 BGP Route Reflection An alternative to full mesh IBGP
  * RFC2842 Capabilities Advertisement with BGP-4
  * RFC2858 Multiprotocol Extensions for BGP-4
@@ -1290,6 +1289,13 @@ dissect_bgp_update(tvbuff_t *tvb, int offset, proto_tree *tree)
                 * RFC 2545 specifies that there may be more than one
                 * address in the MP_REACH_NLRI attribute in section
                 * 3, "Constructing the Next Hop field".
+                *
+                * Yes, RFC 2858 says you can't do that, and, yes, RFC
+                * 2858 obsoletes RFC 2283, which says you can do that,
+                * but that doesn't mean we shouldn't dissect packets
+                * that conform to RFC 2283 but not RFC 2858, as some
+                * device on the network might implement the 2283-style
+                * BGP extensions rather than RFC 2858-style extensions.
                 */
                af = tvb_get_ntohs(tvb, o + i + aoff);
                proto_tree_add_text(subtree2, tvb, o + i + aoff, 2,