aboutsummaryrefslogtreecommitdiffstats
path: root/packet-ipx.c
AgeCommit message (Collapse)AuthorFilesLines
1999-12-08better info line for ipx messageNathan Neulinger1-3/+4
svn path=/trunk/; revision=1247
1999-12-08added decode support for 'poll inactive station' ipx messageNathan Neulinger1-8/+69
svn path=/trunk/; revision=1246
1999-12-05As per Nathan Leulinger's suggestion, have a stub SNMP dissector ifGuy Harris1-8/+1
there are no SNMP libraries to use in a real dissector; this means that other dissectors don't have to care if there are SNMP libraries, they can just call "dissect_snmp()" - and this also simplifies "Makefile.am" and "configure.in" a bit, as they just treat "packet-snmp.c" and "packet-snmp.h" the same way they treat other dissector source files. svn path=/trunk/; revision=1214
1999-12-03added SNMP support to IPXNathan Neulinger1-1/+11
svn path=/trunk/; revision=1192
1999-12-03Added wide area router ipx socket numberNathan Neulinger1-1/+8
svn path=/trunk/; revision=1188
1999-11-30Add IPX to packet stats during capture.Gilbert Ramirez1-1/+7
svn path=/trunk/; revision=1173
1999-11-30Some additional IPX packet types.Guy Harris1-4/+17
svn path=/trunk/; revision=1167
1999-11-30IPX packet type 1 is apparently NetWare RIP (Routing InformationGuy Harris1-6/+8
Protocol), and packet type 4 is apparently the Packet Exchange Protocol, at least according to some Web pages. svn path=/trunk/; revision=1166
1999-11-22Fixed the way IPX network name resolution works with name resolutionGilbert Ramirez1-14/+38
turned off (the '-n' option), and made it a bit faster by removing sprintf()'s. svn path=/trunk/; revision=1088
1999-11-21Enable IPX network name resolution by providing for an /etc/ipxnetsGilbert Ramirez1-6/+3
and a $HOME/.ethereal/ipxnets file. get_ipxnet_name() and other functions, similar to get_ether_name() and friends, have been added. svn path=/trunk/; revision=1085
1999-11-20Enable ether name resolution for packet summary lines of IPX packetsGilbert Ramirez1-5/+18
(in the src/dst of the CList). In order to do this, I had to: 1. Add a new function, ether_to_str_punct(const guint8*, char) which turns a 6-byt ether address into a string, using whatever punctuation is passed as the char. If a null char is passed, no separator is put between the hex digits. Unresolved IPX addresses look better with the ether portion having no punctuation (IMHO) 2. Changed ether_to_str() to call ether_to_str_punct with ':' as the char argument. That is, code abstraction. 3. MAXNAMELEN was moved from resolv.c to resolv.h so that packet-ipx.c could see it. 4. A new resolve function, get_ether_name_if_known(), returns the resolved name of an ether address, or NULL if there is none. This differs from get_ether_name() by returning NULL rather than a text version of the ether address. svn path=/trunk/; revision=1076
1999-11-17Heikki Vatiainen's SAP (Session Announcement Protocol) dissector.Guy Harris1-4/+4
Rename the dissector for the Netware SAP protocol to "dissect_ipxsap()", so as to keep its name from colliding with that of the dissector for the Session Announcement Protocol. svn path=/trunk/; revision=1046
1999-11-16Replace the ETT_ "enum" members, declared in "packet.h", withGuy Harris1-7/+25
dynamically-assigned "ett_" integer values, assigned by "proto_register_subtree_array()"; this: obviates the need to update "packet.h" whenever you add a new subtree type - you only have to add a call to "proto_register_subtree_array()" to a "register" routine and an array of pointers to "ett_", if they're not already there, and add a pointer to the new "ett_" variable to the array, if they are there; would allow run-time-loaded dissectors to allocate subtree types when they're loaded. svn path=/trunk/; revision=1043
1999-11-15added sap types, netbios name types, ipx socket namesNathan Neulinger1-1/+34
svn path=/trunk/; revision=1038
1999-10-22Generalize the "ip_src" and "ip_dst" members of the "packet_info"Guy Harris1-8/+6
structure to "dl_src"/"dl_dst", "net_src"/"net_dst", and "src"/"dst" addresses, where an address is an address type, an address length in bytes, and a pointer to that many bytes. "dl_{src,dst}" are the link-layer source/destination; "net_{src,dst}" are the network-layer source/destination; "{src,dst}" are the source/destination from the highest of those two layers that we have in the packet. Add a port type to "packet_info" as well, specifying whether it's a TCP or UDP port. Don't set the address and port columns in the dissector functions; just set the address and port members of the "packet_info" structure. Set the columns in "fill_in_columns()"; this means that if we're showing COL_{DEF,RES,UNRES}_SRC" or "COL_{DEF,RES,UNRES}_DST", we only generate the string from "src" or "dst", we don't generate a string for the link-layer address and then overwrite it with a string for the network-layer address (generating those strings costs CPU). Add support for "conversations", where a "conversation" is (at present) a source and destination address and a source and destination port. (In the future, we may support "conversations" above the transport layer, e.g. a TFTP conversation, where the first packet goes from the client to the TFTP server port, but the reply comes back from a different port, and all subsequent packets go between the client address/port and the server address/new port, or an NFS conversation, which might include lock manager, status monitor, and mount packets, as well as NFS packets.) Currently, all we support is a call that takes the source and destination address/port pairs, looks them up in a hash table, and: if nothing is found, creates a new entry in the hash table, and assigns it a unique 32-bit conversation ID, and returns that conversation ID; if an entry is found, returns its conversation ID. Use that in the SMB and AFS code to keep track of individual SMB or AFS conversations. We need to match up requests and replies, as, for certain replies, the operation code for the request to which it's a reply doesn't show up in the reply - you have to find the request with a matching transaction ID. Transaction IDs are per-conversation, so the hash table for requests should include a conversation ID and transaction ID as the key. This allows SMB and AFS decoders to handle IPv4 or IPv6 addresses transparently (and should allow the SMB decoder to handle NetBIOS atop other protocols as well, if the source and destination address and port values in the "packet_info" structure are set appropriately). In the "Follow TCP Connection" code, check to make sure that the addresses are IPv4 addressses; ultimately, that code should be changed to use the conversation code instead, which will let it handle IPv6 transparently. svn path=/trunk/; revision=909
1999-10-17- add display filters for spx, ipxrip and sap protocols.Laurent Deniel1-19/+128
- fix bug (conn_info array was not NULL terminated). svn path=/trunk/; revision=871
1999-10-12New proto_tree header_field_info stuff. Header_field_infos now containGilbert Ramirez1-13/+23
the base for numbers to be displayed in, bitmasks for bitfields, and blurbs (which are one or two sentences describing the field). proto_tree_add*() routines now automatically handle bitfields. You tell it which header field you are adding, and just pass it the value of the entire field, and the proto_tree routines will do the masking and shifting for you. This means that bitfields are more naturally filtered via dfilter now. Added Phil Techau's support for signed integers in dfilters/proto_tree. Added the beginning of the SNA dissector. It's not complete, but I'm committing it now because it has example after example of how to use bitfields with the new header_field_info struct and proto_tree routines. It was the impetus to change how header_field_info works. svn path=/trunk/; revision=815
1999-09-15Added Mark H. Wood's <mwood@IUPUI.edu> fix for unknown SAP types. It wasGilbert Ramirez1-3/+3
an off-by-one error. I replicated his fix to another part of the code that looks up the SAP types (when adding the information to the proto_tree). svn path=/trunk/; revision=681
1999-09-02Have the IPX code set "pi.len" and "pi.captured_len" based on the lengthGuy Harris1-60/+100
in the IPX header, and have the dissectors it calls use it rather than being passed the length as an argument. Treat both packet type 20 ("WAN Broadcast") and 4 ("IPX", although 3 is also "IPX", according to Network Monitor) as potentially being NetBIOS packets. The packet types for the IPX NetBIOS socket (0x0455) and the NWLink sockets (0x0551 and 0x0553) are different (perhaps because there's one socket for the 0x0455 NBIPX, so you have to do name service and datagram service and have the packet types distinguish them, but NWLink has separate sockets for name service and datagram service). The packet type for name service and for datagram service are at *different locations* in the packet, which is unfortunate if you want to use the packet type to distinguish name service and datagram service packets. Use the packet length, for now, to distinguish them, with socket 0x0455. Dissect datagram packets differently from name service packets. Export "packet-netbios.c"'s "netbios_add_name()" routine, and use it when dissecting NBIPX packets as well. Label NBIPX packets as "NBIPX" rather than "NetBIOS". svn path=/trunk/; revision=627
1999-08-01Changed the display filter scanner from GLIB's GScanner to lex. The codeGilbert Ramirez1-35/+55
as it standed depends on your lex being flex, but that only matters if you're a developer. The distribution will include the dfilter-scanner.c file, so that if the user doesn't modify dfilter-scanner.l, he won't need flex to re-create the *.c file. The new lex scanner gives me better syntax checking for ether addresses. I thought I could get by using GScanner, but it simply wasn't powerful enough. All operands have English-like abbreviations and C-like syntax: and, && ; or, || ; eq, == ; ne, != ; , etc. I removed the ETHER_VENDOR type in favor of letting the user use the [x:y] notation: ether.src[0:3] == 0:6:29 instead of ether.srcvendor == 00:06:29 I implemented the IPXNET field type; it had been there before, but was not implemented. I chose to make it use integer values rather than byte ranges, since an IPX Network is 4 bytes. So a display filter looks like this: ipx.srcnet == 0xc0a82c00 rather than this: ipx.srcnet == c0:a8:2c:00 I can supposrt the byte-range type IPXNET in the future, very trivially. I still have more work to do on the parser though. It needs to check ranges when extracting byte ranges ([x:y]) from packets. And I need to get rid of those reduce/reduce errors from yacc! svn path=/trunk/; revision=414
1999-07-29Made the protocol (but not the fields) use the new proto_tree routine,Gilbert Ramirez1-11/+11
allowing users to filter on the existence of these protocols. I also added packet-clip.c to the Nmake makefile. svn path=/trunk/; revision=402
1999-07-20Converted some IPX fields to the new proto_tree functions.Gilbert Ramirez1-12/+34
svn path=/trunk/; revision=366
1999-07-17Added just enough fields to TCP to support "Follow TCP Stream". It works now.Gilbert Ramirez1-8/+22
Added the protocol IDs for ipx and IGMP, but not their fields. svn path=/trunk/; revision=365
1999-07-07Created a new protocol tree implementation and a new display filterGilbert Ramirez1-45/+43
mechanism that is built into ethereal. Wiretap is now used to read all file formats. Libpcap is used only for capturing. svn path=/trunk/; revision=342
1999-05-10Fixed the number of parameters for the other super-IPX protocols so thatGilbert Ramirez1-23/+30
the table of dissect functions that IPX needs only needs to store pointers to on type of function. Now all super-IPX protocols have an 'int max_data' argument. svn path=/trunk/; revision=267
1999-05-10This small change lets me read SMBtrans packets that come over NBIPX.Gilbert Ramirez1-2/+2
svn path=/trunk/; revision=262
1999-03-23Removed all references to gtk objects from packet*.[ch] files. They nowGilbert Ramirez1-64/+64
reference the protocol tree with struct proto_tree and struct proto_item objects. That way, the packet decoding source code file can be used with non-gtk packet decoders, like a curses-based ethereal, e.g. I also re-arranged some of the information in packet.h to more appropriate places (like other packet-*.[ch] files). svn path=/trunk/; revision=223
1999-03-20Re-wrote the NCP module in accordance with how NCP is really organized.Gilbert Ramirez1-28/+45
NCP is still not decoded much, but the infrastructure for doing so is now in place, including a hashtable to record the NCP type of each request so that we now how to parse the response. svn path=/trunk/; revision=215
1999-03-05IPX addresses in the Destination/Source fields of the "column" part of the GUIGilbert Ramirez1-4/+31
are now written in NNNNNNNN.hhhhhhhhhhhh form, N=IPX network, h=hwaddr. svn path=/trunk/; revision=211
1999-03-05dissect_sap() no longer assumes that packets are the proper length. ItGilbert Ramirez1-2/+2
checks for enough bytes for a SAP record before dissecting the bytes. svn path=/trunk/; revision=210
1998-12-31Be smarter about IPX port numbers and which function to call.Gilbert Ramirez1-4/+10
svn path=/trunk/; revision=143
1998-11-17* Added column formatting functionality.Gerald Combs1-22/+24
* Added check_col(), add_col_str() and add_col_fmt() to replace references to ft->win_info. * Added column prefs handling code. svn path=/trunk/; revision=97
1998-11-12A lengthy patch to add the wiretap library. Wiretap is not used by defaultGilbert Ramirez1-6/+2
because it is still in its infancy, but it can be compiled in optionally. The library exists in its own subdirectory ethereal/wiretap. This patch also edits all the packet-*.c files to remove the #include <pcap.h> line which is unnecessary in these files. In the ethereal code, file.c is the most heavily modified with #ifdef WITH_WIRETAP lines for the optional library. svn path=/trunk/; revision=82
1998-10-14I've started to figure out the difference between NetBIOS over IPX forGilbert Ramirez1-4/+9
Netware, and NetBIOS over IPX for WinNT (NWLink). svn path=/trunk/; revision=53
1998-10-14I rename the single dissect() function in packet-nbipx.c, and had packet-ipx.cGilbert Ramirez1-3/+3
call it under fewer circumstances. svn path=/trunk/; revision=52
1998-10-14Added preliminary support for NetBIOS Name Services over IPX and UDP. NoteGilbert Ramirez1-10/+10
that these are two very different implementations of NetBIOS name services and at the protocol level are not similar. I have put the UDP protocol in packet-nbns.c, since it will be a very big module. I have all of rfc 1002 to read and implement. I am planning on putting many different NetBIOS over IPX functions in packet-nbipx.c, however, since there is no RFC or published standard. I have to hack the protocol, and as such, I do not expect it to be as full-featured as the IP-world equivalents. svn path=/trunk/; revision=50
1998-10-02Added more SAP types, from the ncpfs source.Gilbert Ramirez1-5/+18
svn path=/trunk/; revision=35
1998-09-27Merged in a _huge_ patch from Guy Harris. It adds a time stap column,Gerald Combs1-35/+18
generalizes the column printing code, adds a "frame" tree item to the tree view, and fixes a bunch of miscellaneous coding bugs. svn path=/trunk/; revision=31
1998-09-27I added the Server Down SAP packet after discovering its descriptionGilbert Ramirez1-4/+21
in a book today. svn path=/trunk/; revision=29
1998-09-24NetWare SAP added.Gilbert Ramirez1-7/+132
svn path=/trunk/; revision=24
1998-09-23Added conversion of IPX RIP ticks to milliseconds for response packets.Gilbert Ramirez1-7/+17
svn path=/trunk/; revision=23
1998-09-23I removed the ncp code from packet-ipx.c and created packet-ncp.c. Now thatGilbert Ramirez1-207/+83
I've started concentrating on the NetWare modules again, packet-ncp.c is going to start to grow. I also added IPX RIP to packet-ipx.c. Additionally, I added the END_OF_FRAME macro to packet.h, which is useful for many dissect() routines. (and I already modified packet-bootp.c and packet-data.c to use this macro) svn path=/trunk/; revision=22
1998-09-16Added ID tags to the beginning of each source file.Gerald Combs1-0/+2
svn path=/trunk/; revision=7
1998-09-16Initial revisionGerald Combs1-0/+492
svn path=/trunk/; revision=2