2014-08-17 20:11:15 +00:00
|
|
|
/* packet-nt-tpcp.c
|
2003-10-28 06:44:21 +00:00
|
|
|
* Routines for Transparent Proxy Cache Protocol packet disassembly
|
2004-02-23 16:33:14 +00:00
|
|
|
* (c) Copyright Giles Scott <giles.scott1 [AT] btinternet.com>
|
2003-10-28 06:44:21 +00:00
|
|
|
*
|
2006-05-21 04:49:01 +00:00
|
|
|
* Wireshark - Network traffic analyzer
|
|
|
|
* By Gerald Combs <gerald@wireshark.org>
|
2003-10-28 06:44:21 +00:00
|
|
|
* Copyright 1998 Gerald Combs
|
2011-09-21 23:42:55 +00:00
|
|
|
*
|
2003-10-28 06:44:21 +00:00
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
2011-09-21 23:42:55 +00:00
|
|
|
*
|
2003-10-28 06:44:21 +00:00
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
2011-09-21 23:42:55 +00:00
|
|
|
*
|
2003-10-28 06:44:21 +00:00
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
2012-06-28 22:56:06 +00:00
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
2003-10-28 06:44:21 +00:00
|
|
|
*/
|
|
|
|
|
2012-09-20 02:03:38 +00:00
|
|
|
#include "config.h"
|
2003-10-28 06:44:21 +00:00
|
|
|
|
2010-08-05 07:09:59 +00:00
|
|
|
#include <string.h>
|
2003-10-28 06:44:21 +00:00
|
|
|
|
|
|
|
#include <glib.h>
|
2012-05-15 19:23:35 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
#include <epan/packet.h>
|
2014-04-19 19:29:50 +00:00
|
|
|
#include <epan/addr_resolv.h> /* this is for get_hostname and ep_udp_port_to_display */
|
2003-10-28 06:44:21 +00:00
|
|
|
|
2013-12-14 16:09:57 +00:00
|
|
|
void proto_register_tpcp(void);
|
|
|
|
void proto_reg_handoff_tpcp(void);
|
|
|
|
|
2011-09-21 23:42:55 +00:00
|
|
|
#define UDP_PORT_TPCP 3121
|
2003-10-28 06:44:21 +00:00
|
|
|
|
|
|
|
/* TPCP version1/2 PDU format */
|
|
|
|
typedef struct _tpcppdu_t {
|
2011-10-12 17:30:31 +00:00
|
|
|
guint8 version; /* PDU version 1 */
|
|
|
|
guint8 type; /* PDU type: 1=request, 2=reply, 3=add filter, 4=rem filter */
|
|
|
|
/* Version 2 adds 5=add session 6= remove session */
|
|
|
|
guint16 flags; /* 0x0001: 0=UDP, 1=TCP*/
|
2014-09-16 13:43:06 +00:00
|
|
|
/* 0x0002: 0=NONE, 1=DONT_REDIRECT */
|
2011-10-12 17:30:31 +00:00
|
|
|
/* 0x0004: 0=NONE, 1=Xon */
|
|
|
|
/* 0x0008: 0=NONE, 1=Xoff */
|
|
|
|
guint16 id; /* request/response identification or TTL */
|
|
|
|
guint16 cport; /* client UDP or TCP port number */
|
|
|
|
guint32 caddr; /* client IPv4 address */
|
|
|
|
guint32 saddr; /* server IPV4 address */
|
2003-10-28 06:44:21 +00:00
|
|
|
/* tpcp version 2 only*/
|
2011-10-12 17:30:31 +00:00
|
|
|
guint32 vaddr; /* Virtual Server IPv4 address */
|
|
|
|
guint32 rasaddr; /* RAS server IPv4 address */
|
|
|
|
guint32 signature; /* 0x74706370 - tpcp */
|
2003-10-28 06:44:21 +00:00
|
|
|
} tpcpdu_t;
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string type_vals[] = {
|
|
|
|
{ 1, "Request" },
|
|
|
|
{ 2, "Reply" },
|
|
|
|
{ 3, "Add Filter" },
|
|
|
|
{ 4, "Remove Filter" },
|
|
|
|
/* 5 and 6 are for version 2 only */
|
|
|
|
{ 5, "Add Session" },
|
|
|
|
{ 6, "Remove Session" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
/* TPCP Flags */
|
|
|
|
#define TF_TPCP_UDPTCP 0x0001
|
|
|
|
#define TF_TPCP_DONTREDIRECT 0x0002
|
|
|
|
#define TF_TPCP_XON 0x0004
|
|
|
|
#define TF_TPCP_XOFF 0x0008
|
|
|
|
|
|
|
|
|
|
|
|
/* Version info */
|
|
|
|
#define TPCP_VER_1 1
|
|
|
|
#define TPCP_VER_2 2
|
2012-05-15 19:23:35 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
#define TPCP_VER_1_LENGTH 16
|
|
|
|
#define TPCP_VER_2_LENGTH 28
|
|
|
|
|
|
|
|
/* things we can do filters on */
|
|
|
|
static int hf_tpcp_version = -1;
|
|
|
|
static int hf_tpcp_type = -1;
|
2014-08-17 20:11:15 +00:00
|
|
|
static int hf_tpcp_flags = -1;
|
2003-10-28 06:44:21 +00:00
|
|
|
static int hf_tpcp_flags_tcp = -1;
|
|
|
|
static int hf_tpcp_flags_redir = -1;
|
|
|
|
static int hf_tpcp_flags_xon = -1;
|
|
|
|
static int hf_tpcp_flags_xoff = -1;
|
|
|
|
static int hf_tpcp_id = -1;
|
|
|
|
static int hf_tpcp_cport = -1;
|
|
|
|
static int hf_tpcp_caddr = -1;
|
|
|
|
static int hf_tpcp_saddr = -1;
|
|
|
|
static int hf_tpcp_vaddr = -1;
|
|
|
|
static int hf_tpcp_rasaddr = -1;
|
2014-08-17 20:11:15 +00:00
|
|
|
static int hf_tpcp_signature = -1;
|
2003-10-28 06:44:21 +00:00
|
|
|
|
|
|
|
static int proto_tpcp = -1;
|
|
|
|
|
|
|
|
static gint ett_tpcp = -1;
|
|
|
|
static gint ett_tpcp_flags = -1;
|
|
|
|
|
|
|
|
|
2014-08-17 20:11:15 +00:00
|
|
|
static int
|
|
|
|
dissect_tpcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
|
2003-10-28 06:44:21 +00:00
|
|
|
{
|
2014-08-17 20:11:15 +00:00
|
|
|
proto_tree *tpcp_tree = NULL;
|
|
|
|
proto_item *ti;
|
|
|
|
guint8 version, type;
|
|
|
|
guint16 id, cport;
|
|
|
|
guint32 caddr, saddr;
|
|
|
|
|
|
|
|
static const int * tpcp_flags[] = {
|
|
|
|
&hf_tpcp_flags_tcp,
|
|
|
|
&hf_tpcp_flags_redir,
|
|
|
|
&hf_tpcp_flags_xon,
|
|
|
|
&hf_tpcp_flags_xoff,
|
|
|
|
NULL
|
|
|
|
};
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2009-08-09 06:26:46 +00:00
|
|
|
col_set_str(pinfo->cinfo, COL_PROTOCOL, "TPCP");
|
2009-08-09 07:36:13 +00:00
|
|
|
col_clear(pinfo->cinfo, COL_INFO);
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
/* need to find out which version!! */
|
2014-08-17 20:11:15 +00:00
|
|
|
version = tvb_get_guint8(tvb, 0);
|
|
|
|
if ((version != TPCP_VER_1) && (version != TPCP_VER_2)) {
|
|
|
|
/* Not us */
|
|
|
|
return 0;
|
2003-10-28 06:44:21 +00:00
|
|
|
}
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-10-05 19:57:05 +00:00
|
|
|
ti = proto_tree_add_protocol_format(tree, proto_tpcp, tvb, 0, -1,
|
|
|
|
"Alteon WebSystems - Transparent Proxy Cache Protocol");
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-10-05 19:57:05 +00:00
|
|
|
tpcp_tree = proto_item_add_subtree(ti, ett_tpcp);
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-10-05 19:57:05 +00:00
|
|
|
proto_tree_add_item(tpcp_tree, hf_tpcp_version, tvb, 0, 1, ENC_NA);
|
|
|
|
type = tvb_get_guint8(tvb, 1);
|
|
|
|
proto_tree_add_item(tpcp_tree, hf_tpcp_type, tvb, 1, 1, ENC_NA);
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-10-05 19:57:05 +00:00
|
|
|
proto_tree_add_bitmask(tpcp_tree, tvb, 2, hf_tpcp_flags, ett_tpcp_flags, tpcp_flags, ENC_NA);
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-10-05 19:57:05 +00:00
|
|
|
id = tvb_get_ntohs(tvb, 4);
|
|
|
|
proto_tree_add_item(tpcp_tree, hf_tpcp_id, tvb, 4, 2, ENC_BIG_ENDIAN);
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-10-05 19:57:05 +00:00
|
|
|
cport = tvb_get_ntohs(tvb, 6);
|
|
|
|
proto_tree_add_uint_format_value(tpcp_tree, hf_tpcp_cport, tvb, 6, 2, cport,
|
|
|
|
"%s", ep_udp_port_to_display(cport));
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-10-05 19:57:05 +00:00
|
|
|
caddr = tvb_get_ntohl(tvb, 8);
|
|
|
|
proto_tree_add_item(tpcp_tree, hf_tpcp_caddr, tvb, 8, 4, ENC_BIG_ENDIAN);
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-10-05 19:57:05 +00:00
|
|
|
saddr = tvb_get_ntohl(tvb, 12);
|
|
|
|
proto_tree_add_item(tpcp_tree, hf_tpcp_saddr, tvb, 12, 4, ENC_BIG_ENDIAN);
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-10-05 19:57:05 +00:00
|
|
|
if (version == TPCP_VER_2) {
|
|
|
|
proto_tree_add_item(tpcp_tree, hf_tpcp_vaddr, tvb, 16, 4, ENC_BIG_ENDIAN);
|
|
|
|
proto_tree_add_item(tpcp_tree, hf_tpcp_rasaddr, tvb, 20, 4, ENC_BIG_ENDIAN);
|
|
|
|
proto_tree_add_item(tpcp_tree, hf_tpcp_signature, tvb, 24, 4, ENC_BIG_ENDIAN);
|
|
|
|
}
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-08-17 20:11:15 +00:00
|
|
|
col_add_fstr(pinfo->cinfo, COL_INFO,"%s id %d CPort %s CIP %s SIP %s",
|
|
|
|
val_to_str_const(type, type_vals, "Unknown"),
|
|
|
|
id,
|
|
|
|
ep_udp_port_to_display(cport),
|
|
|
|
ip_to_str((guint8 *)&caddr),
|
|
|
|
ip_to_str((guint8 *)&saddr));
|
|
|
|
|
|
|
|
if (version == TPCP_VER_1)
|
|
|
|
return TPCP_VER_1_LENGTH;
|
|
|
|
|
|
|
|
return TPCP_VER_2_LENGTH;
|
2003-10-28 06:44:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
proto_register_tpcp(void)
|
|
|
|
{
|
|
|
|
static hf_register_info hf[] = {
|
|
|
|
{ &hf_tpcp_version,
|
|
|
|
{ "Version", "tpcp.version", FT_UINT8, BASE_DEC, NULL, 0x0,
|
|
|
|
"TPCP version", HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_type,
|
2013-09-16 10:39:06 +00:00
|
|
|
{ "Type", "tpcp.type", FT_UINT8, BASE_DEC, VALS(type_vals), 0x0,
|
2003-10-28 06:44:21 +00:00
|
|
|
"PDU type", HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-08-17 20:11:15 +00:00
|
|
|
{ &hf_tpcp_flags,
|
|
|
|
{ "Flags", "tpcp.flags", FT_UINT16, BASE_HEX, NULL, 0x0,
|
|
|
|
NULL, HFILL }},
|
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_flags_tcp,
|
2009-07-07 14:54:15 +00:00
|
|
|
{ "UDP/TCP", "tpcp.flags.tcp", FT_BOOLEAN, 8, TFS(&tfs_set_notset), TF_TPCP_UDPTCP,
|
2003-10-28 06:44:21 +00:00
|
|
|
"Protocol type", HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_flags_redir,
|
2009-07-07 14:54:15 +00:00
|
|
|
{ "No Redirect", "tpcp.flags.redir", FT_BOOLEAN, 8, TFS(&tfs_set_notset), TF_TPCP_DONTREDIRECT,
|
2003-10-28 06:44:21 +00:00
|
|
|
"Don't redirect client", HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_flags_xon,
|
2009-07-07 14:54:15 +00:00
|
|
|
{ "XON", "tpcp.flags.xon", FT_BOOLEAN, 8, TFS(&tfs_set_notset), TF_TPCP_XON,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_flags_xoff,
|
2009-07-07 14:54:15 +00:00
|
|
|
{ "XOFF", "tpcp.flags.xoff", FT_BOOLEAN, 8, TFS(&tfs_set_notset), TF_TPCP_XOFF,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_id,
|
|
|
|
{ "Client indent", "tpcp.cid", FT_UINT16, BASE_DEC, NULL, 0x0,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_cport,
|
|
|
|
{ "Client Source Port", "tpcp.cport", FT_UINT16, BASE_DEC, NULL, 0x0,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_caddr,
|
|
|
|
{ "Client Source IP address", "tpcp.caddr", FT_IPv4, BASE_NONE, NULL, 0x0,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_saddr,
|
|
|
|
{ "Server IP address", "tpcp.saddr", FT_IPv4, BASE_NONE, NULL, 0x0,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_vaddr,
|
|
|
|
{ "Virtual Server IP address", "tpcp.vaddr", FT_IPv4, BASE_NONE, NULL, 0x0,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2003-10-28 06:44:21 +00:00
|
|
|
{ &hf_tpcp_rasaddr,
|
|
|
|
{ "RAS server IP address", "tpcp.rasaddr", FT_IPv4, BASE_NONE, NULL, 0x0,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-08-17 20:11:15 +00:00
|
|
|
{ &hf_tpcp_signature,
|
|
|
|
{ "Signature", "tpcp.signature", FT_UINT32, BASE_DEC, NULL, 0x0,
|
|
|
|
NULL, HFILL }},
|
2003-10-28 06:44:21 +00:00
|
|
|
};
|
2011-09-21 23:42:55 +00:00
|
|
|
|
|
|
|
|
2012-05-15 19:23:35 +00:00
|
|
|
static gint *ett[] = {
|
|
|
|
&ett_tpcp,
|
|
|
|
&ett_tpcp_flags,
|
|
|
|
};
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2012-05-15 19:23:35 +00:00
|
|
|
proto_tpcp = proto_register_protocol("Alteon - Transparent Proxy Cache Protocol",
|
|
|
|
"TPCP", "tpcp");
|
|
|
|
proto_register_field_array(proto_tpcp, hf, array_length(hf));
|
|
|
|
proto_register_subtree_array(ett, array_length(ett));
|
2003-10-28 06:44:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
proto_reg_handoff_tpcp(void)
|
|
|
|
{
|
2012-05-15 19:23:35 +00:00
|
|
|
dissector_handle_t tpcp_handle;
|
2011-09-21 23:42:55 +00:00
|
|
|
|
2014-08-17 20:11:15 +00:00
|
|
|
tpcp_handle = new_create_dissector_handle(dissect_tpcp, proto_tpcp);
|
2012-05-15 19:23:35 +00:00
|
|
|
dissector_add_uint("udp.port", UDP_PORT_TPCP, tpcp_handle);
|
2003-10-28 06:44:21 +00:00
|
|
|
}
|
2014-10-05 19:57:05 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
|
|
|
*
|
|
|
|
* Local variables:
|
|
|
|
* c-basic-offset: 8
|
|
|
|
* tab-width: 8
|
|
|
|
* indent-tabs-mode: t
|
|
|
|
* End:
|
|
|
|
*
|
|
|
|
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
|
|
|
* :indentSize=8:tabSize=8:noTabs=false:
|
|
|
|
*/
|