aboutsummaryrefslogtreecommitdiffstats
path: root/packet-bgp.c
AgeCommit message (Collapse)AuthorFilesLines
2004-05-24Have two strings in an enum_val_t - one that's a short string that isGuy Harris1-5/+5
convenient to put into a command line (no capital letters, no spaces to require quotes), and one that's a detailed description for use in the UI. Allow either of them in the preferences file or "-o" option; use the detailed description in the UI, and also use it when writing the preferences out, so that the preference will be readable by older versions of Ethereal (assuming the preference existed in that version). Update "README.developer" to give more detail about an enum_val_t (and to put the _t in), and to give a more detailed description of the "radio_buttons" argument to "prefs_register_enum_preference()". svn path=/trunk/; revision=10982
2004-03-06Add routines to process IPv{4,6}-address-and-prefix-length pairs,Guy Harris1-61/+21
masking out the appropriate bits in the address. Use them in the BGP and EIGRP dissectors. svn path=/trunk/; revision=10327
2004-03-06Add a check for a too-large IPv6 prefix length, to avoid overflowing aGuy Harris1-8/+14
buffer, and add checks for IPv4 and IPv6 prefix lengths of 0, to avoid underflowing a buffer. svn path=/trunk/; revision=10325
2004-01-23From Akira Endoh: support for labeled IPv6 unicast in the MP-BGPGuy Harris1-1/+28
dissector. svn path=/trunk/; revision=9812
2004-01-06"decode_MPLS_stack()" always returns a nonnegative value; make it returnGuy Harris1-5/+5
"guint", and make the "labnum" variable to which its return value is assigned a "guint". "plen" in "decode_prefix_MP()" can have a 16-bit value assigned to it; make it a "guint", not just a "guint8". svn path=/trunk/; revision=9568
2004-01-05removed some MSVC warnings (level 3)Ulf Lamping1-2/+2
svn path=/trunk/; revision=9561
2003-06-03Fix a comment.Guy Harris1-2/+1
svn path=/trunk/; revision=7774
2003-05-28From Hannes Gredler:Guy Harris1-3/+22
- fix a typo - correctly hook-in capability notification subcodes in the *bgpnotify_minor[] array - add support for draft-ietf-idr-cease-subcode-02 svn path=/trunk/; revision=7756
2003-05-20Timo Sirainen pointed out a few problems with string handling in theGerald Combs1-127/+108
BGP code. Replace many strings with GStrings. svn path=/trunk/; revision=7693
2003-05-19From Motonori Shindo: update to supportGuy Harris1-7/+6
draft-ietf-idr-bgp-ext-communities rather than draft-ramachandra-bgp-ext-communities, and get rid of unused MAX_SIZE_OF_EXT_COM_NAMES #define. svn path=/trunk/; revision=7691
2003-05-15Fix the call that adds the local preference to the tree.Guy Harris1-2/+2
svn path=/trunk/; revision=7673
2003-04-25Initialize hf_bgp_cluster_list.Gerald Combs1-1/+4
svn path=/trunk/; revision=7557
2003-04-24Support for filterable fields in UPDATE messages, based on changes fromGuy Harris1-345/+544
Marcio Franco. Add a bunch of error checking and cleanups in the process of adding the filterable fields support. svn path=/trunk/; revision=7546
2003-04-05Separate the scan for the BGP header from the scan through the BGPGuy Harris1-140/+279
packets, and mark any stuff before the first BGP header as continuation data. Make the main loop for dissecting the BGP packets similar to the loop in "tcp_dissect_pdus()" (if "tcp_dissect_pdus()" took a starting offset as an argument, we could use it), so that it handles a BGP header split between TCP segments. svn path=/trunk/; revision=7405
2003-01-31Fix up the construct of AS strings (the opening curly bracket wasn'tGuy Harris1-10/+7
being put in for sets). svn path=/trunk/; revision=7064
2003-01-28From Akira Endoh: BGP support for draft-ietf-idr-as4bytes-06.txt andGuy Harris1-256/+418
draft-ietf-idr-dynamic-cap-03.txt. Fix his AUTHORS entry to put the (presumed) given name first and family name last. svn path=/trunk/; revision=7014
2002-11-04From Hannes Gredler:Guy Harris1-9/+103
support dissecting of v6 VPN NLRIs; fix a little bug for displaying v4 nexthops using type 1 RD style [dissecting started at wrong offset]. svn path=/trunk/; revision=6561
2002-10-15From Hannes Gredler: dissect the graceful restart capability in BGP OPENGuy Harris1-3/+59
messages. svn path=/trunk/; revision=6430
2002-10-15Fix more typing issues. Pull the marker, length, and type individuallyGerald Combs1-33/+37
instead of copying them into a struct. Remove the "bgp" struct, as it is no longer used. Gracefuly (more than before, at least) handle a zero packet length. svn path=/trunk/; revision=6421
2002-10-15Fix signed/unsigned type mismatches, as pointed out by Silvio.Gerald Combs1-22/+20
Add BGP output to randpkt. svn path=/trunk/; revision=6420
2002-10-10Properly check the return value of decode_prefix4(). This prevents anGerald Combs1-1/+15
infinite loop caused by a malformed packet. svn path=/trunk/; revision=6392
2002-08-28Removed trailing whitespaces from .h and .c files using theJörg Mayer1-34/+34
winapi_cleanup tool written by Patrik Stridvall for the wine project. svn path=/trunk/; revision=6117
2002-08-27From Hannes Gredler:Guy Harris1-26/+43
open up a subtree when decoding l2info extd communities; some bugfixes in the extd community dissector. svn path=/trunk/; revision=6098
2002-08-27From Hannes Gredler:Guy Harris1-47/+129
more complete support for L2VPNs as described in draft-kompella-ppvpn-l2vpn; fix a segfault in the extd_community decoder; more consistent SAFI strings (tcpdump); more robust V6 decoding (the assumption that v6 may come only in unlabeled form is wrong :-|) svn path=/trunk/; revision=6093
2002-08-24Properly check for an address family that's neither AFNUM_INET norGuy Harris1-3/+13
AFNUM_INET6. Properly check for "mp_addr_to_str()" indicating that it doesn't know the address family being parsed. svn path=/trunk/; revision=6082
2002-08-24From Hannes Gredler:Guy Harris1-168/+207
Basic support for AFI & Extd communities in draft-kompella-ppvpn-l2vpn More robust handling for unknown AFIs in BGP MP(UN)REACH NLRIs Fix typos. svn path=/trunk/; revision=6079
2002-08-15From Jian Yu:Guy Harris1-11/+128
a small fix for displaying unrecognized capabilities; ORF support (draft-ietf-idr-route-filter-06.txt). svn path=/trunk/; revision=5998
2002-08-03We don't use anything from <arpa/inet.h>, so we don't need to includeGuy Harris1-5/+1
it. svn path=/trunk/; revision=5938
2002-08-02Replace the types from sys/types.h and netinet/in.h by their glib.hJörg Mayer1-17/+9
equivalents for the toplevel directory. The removal of winsock2.h will hopefully not cause any problems under MSVC++, as those files using struct timeval still include wtap.h, which still includes winsock2.h. svn path=/trunk/; revision=5932
2002-05-21Fixes to BGP problems, from Dirk Steinberg.Guy Harris1-3/+15
Add some additional bounds checking to "decode_MPLS_stack()" so as not to overflow the buffer handed to it. svn path=/trunk/; revision=5518
2002-05-21From Hannes Gredler: fix misuse of "&&" when "&" was intended.Guy Harris1-3/+3
svn path=/trunk/; revision=5517
2002-05-20From Hannes Gredler: fix to label stack handling for withdrawn routes.Guy Harris1-1/+9
svn path=/trunk/; revision=5511
2002-05-15From Hannes Gredler: labeled unicast support for BGP.Guy Harris1-1/+26
svn path=/trunk/; revision=5481
2002-02-14From Laurent Rabret: print the correct length in the ExtendedGuy Harris1-5/+4
Communities attribute in a BGP Update message. Also, get rid of an extra space before a colon in the display for that attribute, which isn't in other attributes. svn path=/trunk/; revision=4732
2002-01-30Just use "val_to_str()" to generate names for communities whose valuesGuy Harris1-21/+16
are in the reserved region (which also fixes a bug where we weren't printing the value for the NO_ADVERTISE community correctly). svn path=/trunk/; revision=4638
2002-01-21Include files from the "epan" directory and subdirectories thereof withGuy Harris1-2/+2
"epan/..." pathnames, so as to avoid collisions with header files in any of the directories in which we look (e.g., "proto.h", as some other package has its own "proto.h" file which it installs in the top-level include directory). Don't add "-I" flags to search "epan", as that's no longer necessary (and we want includes of "epan" headers to fail if the "epan/" is left out, so that we don't re-introduce includes lacking "epan/"). svn path=/trunk/; revision=4586
2002-01-17Do desegmentation.Guy Harris1-33/+41
Collapse the two loops through the TCP segment into one. Use "tvb_reported_length()", not "tvb_length()", to find out how big the TCP segment is ("tvb_length()" says how much of it was captured, not how much of it there is). svn path=/trunk/; revision=4557
2002-01-15Correctly handle BGP attributes with lists of entries when the attributeGuy Harris1-36/+39
has the "extended length" flag set - the starting offset of the list depends on whether the "extended length" bit was set or not. svn path=/trunk/; revision=4544
2001-12-10Move the pointer to the "column_info" structure in the "frame_data"Guy Harris1-8/+8
structure to the "packet_info" structure; only stuff that's permanently stored with each frame should be in the "frame_data" structure, and the "column_info" structure is not guaranteed to hold the column values for that frame at all times - it was only in the "frame_data" structure so that it could be passed to dissectors, and, as all dissectors are now passed a pointer to a "packet_info" structure, it could just as well be put in the "packet_info" structure. That saves memory, by shrinking the "frame_data" structure (there's one of those per frame), and also lets us clean up the code a bit. svn path=/trunk/; revision=4370
2001-12-03Make "dissector_add()", "dissector_delete()", and "dissector_change()"Guy Harris1-2/+5
take a dissector handle as an argument, rather than a pointer to a dissector function and a protocol ID. Associate dissector handles with dissector table entries. svn path=/trunk/; revision=4308
2001-11-03Cooperative Route Filtering Capability support, and Route RefreshGuy Harris1-4/+76
Message bug fix, in BGP, from Motonori Shindo. svn path=/trunk/; revision=4142
2001-09-13Support for dissecting multiple capabilities, from Endoh Akira.Guy Harris1-116/+115
svn path=/trunk/; revision=3930
2001-07-21There is really no need to have the BGP dissector and the LDP dissectorGuy Harris1-26/+6
have two independent "value_string" tables mapping RFC 1700 address family numbers to names, nor is there any need to have the BGP dissector and the PIM dissector have two independent sets of #defines for RFC 1700 address family numbers; put a single "value_string" table in "afn.c" and put a declaration of it, and #defines for the address family numbers, into "afn.h", and have the dissectors use that. Move the #define for PGM into "ipproto.h", and add an entry for it in the "value_string" table in "ipproto.c". Have the PGM dissector use the standard Ethereal mechanisms for resolving addresses, and have it use "value_string" tables for mapping option types, the OPX bits, and packet types to strings. Use "bytes_to_str()" to turn byte arrays into strings of hex digits. Pass the packet type string to "dissect_pgmopts()" as an argument, rather than making it a global. Don't use "proto_tree_add_XXX_format" routines if you can possibly just use "proto_tree_add_XXX"; give various fields the correct radix and type, and VALS() strings if necessary, to make that happen (and to make filtering on them more pleasant). Put the type, length, and total length of the options into the protocol tree as separate fields. Don't have separate type, length, and OPX fields for every type of option; one field will suffice. Don't format a string with "sprintf()" and then pass that string to "col_add_fstr()" with a format of "%s" and the string as an argument - "col_add_fstr()" can format strings itself (that's what the "f" stands for). Don't byte-swap and then un-byte-swap IPv4 address fields in the header, just leave them network byte order to start with. Use the correct fields for "proto_tree_add_XXX", rather than using the same field multiple times. Quit early if an address family identifier isn't AFNUM_INET, as that means the structure we use to dissect the header doesn't match the actual header. svn path=/trunk/; revision=3761
2001-07-09Get rid of the unused zero-length "bgpext_osptf_rtype_metric" array -Guy Harris1-3/+1
not all compilers let you define an array with no explicit length and no initializers. svn path=/trunk/; revision=3670
2001-07-08Support for draft-rosen-vpn-ospf-bgp-mpls and for additional BGPGuy Harris1-22/+60
extended communities, from Aamer Akhter. svn path=/trunk/; revision=3667
2001-07-03And explain why the fact that RFC 2858 says you can't do what RFC 2545Guy Harris1-2/+8
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. svn path=/trunk/; revision=3644
2001-07-03Explain why we dissect more than one address in the MP_REACH_NLRIGuy Harris1-1/+7
attribute. svn path=/trunk/; revision=3643
2001-06-18From Joerg Mayer: explicitly fill in all members of aGuy Harris1-2/+2
"header_field_info" structure, including the ones that are later set by the routines to register fields. svn path=/trunk/; revision=3561
2001-06-15There can be more than one next hop network address in theGuy Harris1-9/+19
BGPTYPE_MP_REACH_NLRI stuff; dissect all of them. svn path=/trunk/; revision=3553
2001-06-15If "buf" is a "char *", "sizeof(buf)" evaluates to the size of aGuy Harris1-2/+2
"char *" variable, not to the size of the buffer to which it points. svn path=/trunk/; revision=3552