From Jochen Friedrich:

Fixed handling of NLP header in SNA
	XID handoff table for LLC, and XID dissection for SNA format 3
	HPR optional segments in SNA
	Most important control vectors in SNA
	Route setup messages in SNA
	Additional LLC DSAPs for SNA

svn path=/trunk/; revision=7131
This commit is contained in:
Guy Harris 2003-02-13 00:47:42 +00:00
parent 8a0882dfd4
commit 23feb04a83
4 changed files with 2440 additions and 718 deletions

View File

@ -347,6 +347,11 @@ Jochen Friedrich <jochen+ethereal[AT]scram.de> {
SNA HPR-over-PPP and SNA-over-LLC-over-PPP (RFC 2043)
HPR/UDP (RFC 2353, Enterprise Extender)
RPL support.
Fixed handling of NLP header in SNA
XID handoff table for LLC, and XID dissection for SNA format 3
HPR optional segments in SNA
Most important control vectors in SNA
Route setup messages in SNA
}
Paul Welchinski <paul.welchinski[AT]telusplanet.net> {

View File

@ -1,7 +1,7 @@
/* llcsaps.h
* Defines LLC SAP values.
*
* $Id: llcsaps.h,v 1.4 2002/11/16 08:55:11 guy Exp $
* $Id: llcsaps.h,v 1.5 2003/02/13 00:47:42 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -34,6 +34,7 @@
#define SAP_SNA2 0x0C
#define SAP_PROWAY_NM_INIT 0x0E
#define SAP_TI 0x18
#define SAP_SNA3 0x40
#define SAP_BPDU 0x42
#define SAP_RS511 0x4E
#define SAP_X25 0x7E

View File

@ -2,7 +2,7 @@
* Routines for IEEE 802.2 LLC layer
* Gilbert Ramirez <gram@alumni.rice.edu>
*
* $Id: packet-llc.c,v 1.106 2003/01/25 00:06:12 guy Exp $
* $Id: packet-llc.c,v 1.107 2003/02/13 00:47:42 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -65,6 +65,7 @@ static gint ett_llc_ctrl = -1;
static dissector_table_t subdissector_table;
static dissector_table_t cisco_subdissector_table;
static dissector_table_t xid_subdissector_table;
static dissector_handle_t bpdu_handle;
static dissector_handle_t eth_handle;
@ -322,16 +323,35 @@ dissect_llc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
);
}
next_tvb = tvb_new_subset(tvb, llc_header_len, -1, -1);
if (XDLC_IS_INFORMATION(control)) {
/* non-SNAP */
/* do lookup with the subdissector table */
if (!dissector_try_port(subdissector_table, dsap,
next_tvb, pinfo, tree)) {
call_dissector(data_handle,next_tvb, pinfo, tree);
if (tvb_length_remaining(tvb, llc_header_len) > 0) {
next_tvb = tvb_new_subset(tvb, llc_header_len, -1, -1);
if (XDLC_IS_INFORMATION(control)) {
/*
* Non-SNAP I or UI frame.
* Try the regular LLC subdissector table
* with the DSAP.
*/
if (!dissector_try_port(subdissector_table,
dsap, next_tvb, pinfo, tree)) {
call_dissector(data_handle, next_tvb,
pinfo, tree);
}
} else if ((control & (XDLC_U_MODIFIER_MASK|XDLC_U))
== (XDLC_XID|XDLC_U)) {
/*
* Non-SNAP XID frame.
* Try the XID LLC subdissector table
* with the DSAP.
*/
if (!dissector_try_port(xid_subdissector_table,
dsap, next_tvb, pinfo, tree)) {
call_dissector(data_handle, next_tvb,
pinfo, tree);
}
} else {
call_dissector(data_handle, next_tvb, pinfo,
tree);
}
} else {
call_dissector(data_handle,next_tvb, pinfo, tree);
}
}
}
@ -533,6 +553,8 @@ proto_register_llc(void)
"LLC SAP", FT_UINT8, BASE_HEX);
cisco_subdissector_table = register_dissector_table("llc.cisco_pid",
"Cisco OUI PID", FT_UINT16, BASE_HEX);
xid_subdissector_table = register_dissector_table("llc.xid_dsap",
"LLC XID SAP", FT_UINT8, BASE_HEX);
register_dissector("llc", dissect_llc, proto_llc);
}

File diff suppressed because it is too large Load Diff