Ethereal-dev: [Ethereal-dev] More CCP config options added
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Motonori Shindo <mshindo@xxxxxxxxxxx>
Date: Sat, 12 Jan 2002 00:22:32 +0900 (JST)
Hi, I added the following CCP config options support to the PPP dissector: 1) BSD Compress 2) MVRCA (Magnalink) 3) Deflate Please take a look and check it in. Regards, =--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--= +----+----+ |.. .| | Motonori Shindo |_~__| | | .. |~~_~| Sr. Systems Engineer | . | | CoSine Communications Inc. +----+----+ C o S i n e e-mail: mshindo@xxxxxxxxxxxxx Communications =--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=
Index: packet-ppp.c =================================================================== RCS file: /cvsroot/ethereal/packet-ppp.c,v retrieving revision 1.84 diff -u -r1.84 packet-ppp.c --- packet-ppp.c 2002/01/03 20:30:32 1.84 +++ packet-ppp.c 2002/01/11 15:16:35 @@ -82,7 +82,10 @@ static gint ett_ccp_options = -1; static gint ett_ccp_stac_opt = -1; static gint ett_ccp_mppc_opt = -1; +static gint ett_ccp_bsdcomp_opt = -1; static gint ett_ccp_lzsdcp_opt = -1; +static gint ett_ccp_mvrca_opt = -1; +static gint ett_ccp_deflate_opt = -1; static int proto_cbcp = -1; @@ -871,9 +874,9 @@ #define CI_CCP_HPPPC 16 /* Hewlett-Packard PPC (RFC1962) */ #define CI_CCP_STAC 17 /* stac Electronics LZS (RFC1974) */ #define CI_CCP_MPPC 18 /* Microsoft PPC (RFC2218/3078) */ -#define CI_CCP_GFZA 19 /* Gandalf FZA */ +#define CI_CCP_GFZA 19 /* Gandalf FZA (RFC1962) */ #define CI_CCP_V42BIS 20 /* V.42bis compression */ -#define CI_CCP_BSDLZW 21 /* BSD LZW Compress */ +#define CI_CCP_BSDLZW 21 /* BSD LZW Compress (RFC1977) */ #define CI_CCP_LZSDCP 23 /* LZS-DCP (RFC1967) */ #define CI_CCP_MVRCA 24 /* MVRCA (Magnalink) (RFC1975) */ #define CI_CCP_DEFLATE 26 /* Deflate (RFC1979) */ @@ -898,10 +901,22 @@ int offset, guint length, packet_info *pinfo, proto_tree *tree); +static void dissect_ccp_bsdcomp_opt(const ip_tcp_opt *optp, tvbuff_t *tvb, + int offset, guint length, packet_info *pinfo, + proto_tree *tree); + static void dissect_ccp_lzsdcp_opt(const ip_tcp_opt *optp, tvbuff_t *tvb, int offset, guint length, packet_info *pinfo, proto_tree *tree); +static void dissect_ccp_mvrca_opt(const ip_tcp_opt *optp, tvbuff_t *tvb, + int offset, guint length, packet_info *pinfo, + proto_tree *tree); + +static void dissect_ccp_deflate_opt(const ip_tcp_opt *optp, tvbuff_t *tvb, + int offset, guint length, packet_info *pinfo, + proto_tree *tree); + static const ip_tcp_opt ccp_opts[] = { { CI_CCP_STAC, @@ -923,14 +938,37 @@ dissect_ccp_mppc_opt }, { + CI_CCP_BSDLZW, + "BSD Compress", + &ett_ccp_bsdcomp_opt, + FIXED_LENGTH, + 3, + dissect_ccp_bsdcomp_opt + }, + { CI_CCP_LZSDCP, "LZS-DCP", &ett_ccp_lzsdcp_opt, FIXED_LENGTH, 6, dissect_ccp_lzsdcp_opt - } - + }, + { + CI_CCP_MVRCA, + "MVRCA (Magnalink)", + &ett_ccp_mvrca_opt, + FIXED_LENGTH, + 4, + dissect_ccp_mvrca_opt + }, + { + CI_CCP_DEFLATE, + "Deflate", + &ett_ccp_deflate_opt, + FIXED_LENGTH, + 4, /* RFC1979 says the length is 3 but it's actually 4. */ + dissect_ccp_deflate_opt + }, }; #define N_CCP_OPTS (sizeof ccp_opts / sizeof ccp_opts[0]) @@ -1770,6 +1808,22 @@ } static void +dissect_ccp_bsdcomp_opt(const ip_tcp_opt *optp, tvbuff_t *tvb, + int offset, guint length, packet_info *pinfo, + proto_tree *tree) +{ + proto_item *tf; + + tf = proto_tree_add_text(tree, tvb, offset, length, "%s", optp->name); + + proto_tree_add_text(tf, tvb, offset + 2, 1, + "Version: %u", tvb_get_guint8(tvb, offset + 2) >> 5); + proto_tree_add_text(tf, tvb, offset + 2, 1, + "Dict: %u bits", + tvb_get_guint8(tvb, offset + 2) & 0x1f); +} + +static void dissect_ccp_lzsdcp_opt(const ip_tcp_opt *optp, tvbuff_t *tvb, int offset, guint length, packet_info *pinfo, proto_tree *tree) @@ -1791,6 +1845,47 @@ } static void +dissect_ccp_mvrca_opt(const ip_tcp_opt *optp, tvbuff_t *tvb, + int offset, guint length, packet_info *pinfo, + proto_tree *tree) +{ + proto_item *tf; + + tf = proto_tree_add_text(tree, tvb, offset, length, "%s", optp->name); + + proto_tree_add_text(tf, tvb, offset + 2, 1, + "Features: %u", tvb_get_guint8(tvb, offset + 2) >> 5); + proto_tree_add_text(tf, tvb, offset + 2, 1, + "Packet by Packet flag: %s", + tvb_get_guint8(tvb, offset + 2) & 0x20 ? "true" : "false"); + proto_tree_add_text(tf, tvb, offset + 2, 1, + "History: %u", tvb_get_guint8(tvb, offset + 2) & 0x20); + proto_tree_add_text(tf, tvb, offset + 3, 1, + "Number of contexts: %u", tvb_get_guint8(tvb, offset + 3)); +} + +static void +dissect_ccp_deflate_opt(const ip_tcp_opt *optp, tvbuff_t *tvb, + int offset, guint length, packet_info *pinfo, + proto_tree *tree) +{ + proto_item *tf; + guint8 method; + + tf = proto_tree_add_text(tree, tvb, offset, length, "%s", optp->name); + + proto_tree_add_text(tf, tvb, offset + 2, 1, + "Window: %u", hi_nibble(tvb_get_guint8(tvb, offset + 2))); + method = lo_nibble(tvb_get_guint8(tvb, offset + 2)); + proto_tree_add_text(tf, tvb, offset + 2, 1, + "Method: %s (0x%02x)", + method == 0x08 ? "zlib compression" : "other", method); + proto_tree_add_text(tf, tvb, offset + 3, 1, + "Sequence number check method: %u", + tvb_get_guint8(tvb, offset + 2) & 0x03); +} + +static void dissect_cbcp_no_callback_opt(const ip_tcp_opt *optp, tvbuff_t *tvb, int offset, guint length, packet_info *pinfo, proto_tree *tree) @@ -2929,7 +3024,10 @@ &ett_ccp_options, &ett_ccp_stac_opt, &ett_ccp_mppc_opt, - &ett_ccp_lzsdcp_opt + &ett_ccp_bsdcomp_opt, + &ett_ccp_lzsdcp_opt, + &ett_ccp_mvrca_opt, + &ett_ccp_deflate_opt, }; proto_ccp = proto_register_protocol("PPP Compression Control Protocol",
This message has been 'sanitized'. This means that potentially dangerous content has been rewritten or removed. The following log describes which actions were taken. Sanitizer (start="1010762571"): Replaced MIME boundary: >>--Next_Part--<< with: >>MIMEStream=_0+252753_5173818931725_15781689482<< Writer (pos="1050"): Total modifications so far: 1 Part (pos="1096"): SanitizeFile (filename="unnamed.txt", mimetype="Text/Plain"): Match (rule="2"): Enforced policy: accept Part (pos="1730"): SanitizeFile (filename="more-ccp-conf-opt.diff", mimetype="Text/Plain"): Match (rule="default"): Enforced policy: accept Anomy 0.0.0 : Sanitizer.pm $Id: Sanitizer.pm,v 1.32 2001/10/11 19:27:15 bre Exp $
- Follow-Ups:
- Re: [Ethereal-dev] More CCP config options added
- From: Guy Harris
- Re: [Ethereal-dev] More CCP config options added
- Prev by Date: Re: [Ethereal-dev] nfs : patch to snoop fhandle to filenames
- Next by Date: [Ethereal-dev] RE: [Ethereal-users] Port of Net::Pcap complete!!!
- Previous by thread: Re: [Ethereal-dev] A small patch to gtk/dfilter_expr_dlg.c
- Next by thread: Re: [Ethereal-dev] More CCP config options added
- Index(es):