diff options
Diffstat (limited to 'packet-lmp.c')
-rw-r--r-- | packet-lmp.c | 780 |
1 files changed, 390 insertions, 390 deletions
diff --git a/packet-lmp.c b/packet-lmp.c index 88b20b2f9e..c4ac15a10e 100644 --- a/packet-lmp.c +++ b/packet-lmp.c @@ -3,22 +3,22 @@ * * (c) Copyright Ashok Narayanan <ashokn@cisco.com> * - * $Id: packet-lmp.c,v 1.11 2002/08/02 23:35:54 jmayer Exp $ + * $Id: packet-lmp.c,v 1.12 2002/08/28 21:00:20 jmayer Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> * Copyright 1998 Gerald Combs - * + * * 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. - * + * * 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. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @@ -27,8 +27,8 @@ /* * LMP as a standard has shown a remarkable ability to get completely rewritten * across minor versions of the draft. This file currently implements - * two versions of LMP; described in draft-ietf-ccamp-lmp-02.txt and - * draft-ietf-ccamp-lmp-03.txt. The -03 version is the default; the + * two versions of LMP; described in draft-ietf-ccamp-lmp-02.txt and + * draft-ietf-ccamp-lmp-03.txt. The -03 version is the default; the * version being dissected can be changed from the LMP protocol preferences */ @@ -69,13 +69,13 @@ static int lmp_draft_ver = LMP_VER_DRAFT_CCAMP_03; * LMP message types */ typedef enum { - LMP_MSG_CONFIG=1, - LMP_MSG_CONFIG_ACK, - LMP_MSG_CONFIG_NACK, + LMP_MSG_CONFIG=1, + LMP_MSG_CONFIG_ACK, + LMP_MSG_CONFIG_NACK, LMP_MSG_HELLO, - LMP_MSG_BEGIN_VERIFY, - LMP_MSG_BEGIN_VERIFY_ACK, - LMP_MSG_BEGIN_VERIFY_NACK, + LMP_MSG_BEGIN_VERIFY, + LMP_MSG_BEGIN_VERIFY_ACK, + LMP_MSG_BEGIN_VERIFY_NACK, LMP_MSG_END_VERIFY, LMP_MSG_END_VERIFY_ACK, LMP_MSG_TEST, @@ -94,7 +94,7 @@ typedef enum { LMP_MSG_CHANNEL_STATUS_RESP, } lmp_message_types; -static value_string message_type_vals[] = { +static value_string message_type_vals[] = { {LMP_MSG_CONFIG, "Config Message. "}, {LMP_MSG_CONFIG_ACK, "ConfigAck Message. "}, {LMP_MSG_CONFIG_NACK, "ConfigNack Message. "}, @@ -152,26 +152,26 @@ typedef enum { static value_string lmp_class_vals[] = { - {LMP_CLASS_LOCAL_CCID, "LOCAL_CCID"}, - {LMP_CLASS_REMOTE_CCID, "REMOTE_CCID"}, - {LMP_CLASS_LOCAL_NODE_ID, "LOCAL_NODE_ID"}, - {LMP_CLASS_REMOTE_NODE_ID, "REMOTE_NODE_ID"}, - {LMP_CLASS_LOCAL_LINK_ID, "LOCAL_LINK_ID"}, - {LMP_CLASS_REMOTE_LINK_ID, "REMOTE_LINK_ID"}, - {LMP_CLASS_LOCAL_INTERFACE_ID, "LOCAL_INTERFACE_ID"}, - {LMP_CLASS_REMOTE_INTERFACE_ID, "REMOTE_INTERFACE_ID"}, - {LMP_CLASS_MESSAGE_ID, "MESSAGE_ID"}, - {LMP_CLASS_MESSAGE_ID_ACK, "MESSAGE_ID_ACK"}, - {LMP_CLASS_CONFIG, "CONFIG"}, - {LMP_CLASS_HELLO, "HELLO"}, - {LMP_CLASS_BEGIN_VERIFY, "BEGIN_VERIFY"}, - {LMP_CLASS_BEGIN_VERIFY_ACK, "BEGIN_VERIFY_ACK"}, - {LMP_CLASS_VERIFY_ID, "VERIFY_ID"}, - {LMP_CLASS_TE_LINK, "TE_LINK"}, - {LMP_CLASS_DATA_LINK, "DATA_LINK"}, - {LMP_CLASS_CHANNEL_STATUS, "CHANNEL_STATUS"}, - {LMP_CLASS_CHANNEL_STATUS_REQUEST, "CHANNEL_STATUS_REQUEST"}, - {LMP_CLASS_ERROR, "ERROR"}, + {LMP_CLASS_LOCAL_CCID, "LOCAL_CCID"}, + {LMP_CLASS_REMOTE_CCID, "REMOTE_CCID"}, + {LMP_CLASS_LOCAL_NODE_ID, "LOCAL_NODE_ID"}, + {LMP_CLASS_REMOTE_NODE_ID, "REMOTE_NODE_ID"}, + {LMP_CLASS_LOCAL_LINK_ID, "LOCAL_LINK_ID"}, + {LMP_CLASS_REMOTE_LINK_ID, "REMOTE_LINK_ID"}, + {LMP_CLASS_LOCAL_INTERFACE_ID, "LOCAL_INTERFACE_ID"}, + {LMP_CLASS_REMOTE_INTERFACE_ID, "REMOTE_INTERFACE_ID"}, + {LMP_CLASS_MESSAGE_ID, "MESSAGE_ID"}, + {LMP_CLASS_MESSAGE_ID_ACK, "MESSAGE_ID_ACK"}, + {LMP_CLASS_CONFIG, "CONFIG"}, + {LMP_CLASS_HELLO, "HELLO"}, + {LMP_CLASS_BEGIN_VERIFY, "BEGIN_VERIFY"}, + {LMP_CLASS_BEGIN_VERIFY_ACK, "BEGIN_VERIFY_ACK"}, + {LMP_CLASS_VERIFY_ID, "VERIFY_ID"}, + {LMP_CLASS_TE_LINK, "TE_LINK"}, + {LMP_CLASS_DATA_LINK, "DATA_LINK"}, + {LMP_CLASS_CHANNEL_STATUS, "CHANNEL_STATUS"}, + {LMP_CLASS_CHANNEL_STATUS_REQUEST, "CHANNEL_STATUS_REQUEST"}, + {LMP_CLASS_ERROR, "ERROR"}, }; #define VALID_CLASS(class) ((class) > LMP_CLASS_NULL && (class) < LMP_CLASS_MAX) @@ -203,11 +203,11 @@ enum lmp_filter_keys { LMPF_MSG_CONFIG, LMPF_MSG_CONFIG_ACK, - LMPF_MSG_CONFIG_NACK, + LMPF_MSG_CONFIG_NACK, LMPF_MSG_HELLO, - LMPF_MSG_BEGIN_VERIFY, - LMPF_MSG_BEGIN_VERIFY_ACK, - LMPF_MSG_BEGIN_VERIFY_NACK, + LMPF_MSG_BEGIN_VERIFY, + LMPF_MSG_BEGIN_VERIFY_ACK, + LMPF_MSG_BEGIN_VERIFY_NACK, LMPF_MSG_END_VERIFY, LMPF_MSG_END_VERIFY_ACK, LMPF_MSG_TEST, @@ -327,383 +327,383 @@ static int lmp_filter[LMPF_MAX]; static hf_register_info lmpf_info[] = { /* Message type number */ - {&lmp_filter[LMPF_MSG], + {&lmp_filter[LMPF_MSG], { "Message Type", "lmp.msg", FT_UINT8, BASE_DEC, VALS(message_type_vals), 0x0, "", HFILL }}, /* Message type shorthands */ - {&lmp_filter[LMPF_MSG_CONFIG], + {&lmp_filter[LMPF_MSG_CONFIG], { "Config Message", "lmp.msg.config", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_CONFIG_ACK], + {&lmp_filter[LMPF_MSG_CONFIG_ACK], { "ConfigAck Message", "lmp.msg.configack", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_CONFIG_NACK], + {&lmp_filter[LMPF_MSG_CONFIG_NACK], { "ConfigNack Message", "lmp.msg.confignack", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_HELLO], + {&lmp_filter[LMPF_MSG_HELLO], { "HELLO Message", "lmp.msg.hello", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_BEGIN_VERIFY], + {&lmp_filter[LMPF_MSG_BEGIN_VERIFY], { "BeginVerify Message", "lmp.msg.beginverify", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_BEGIN_VERIFY_ACK], + {&lmp_filter[LMPF_MSG_BEGIN_VERIFY_ACK], { "BeginVerifyAck Message", "lmp.msg.beginverifyack", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_BEGIN_VERIFY_NACK], + {&lmp_filter[LMPF_MSG_BEGIN_VERIFY_NACK], { "BeginVerifyNack Message", "lmp.msg.beginverifynack", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_END_VERIFY], + {&lmp_filter[LMPF_MSG_END_VERIFY], { "EndVerify Message", "lmp.msg.endverify", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_TEST], + {&lmp_filter[LMPF_MSG_TEST], { "Test Message", "lmp.msg.test", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_TEST_STATUS_SUCCESS], + {&lmp_filter[LMPF_MSG_TEST_STATUS_SUCCESS], { "TestStatusSuccess Message", "lmp.msg.teststatussuccess", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_TEST_STATUS_FAILURE], + {&lmp_filter[LMPF_MSG_TEST_STATUS_FAILURE], { "TestStatusFailure Message", "lmp.msg.teststatusfailure", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_TEST_STATUS_ACK], + {&lmp_filter[LMPF_MSG_TEST_STATUS_ACK], { "TestStatusAck Message", "lmp.msg.teststatusack", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_LINK_SUMMARY], + {&lmp_filter[LMPF_MSG_LINK_SUMMARY], { "LinkSummary Message", "lmp.msg.linksummary", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_LINK_SUMMARY_ACK], + {&lmp_filter[LMPF_MSG_LINK_SUMMARY_ACK], { "LinkSummaryAck Message", "lmp.msg.linksummaryack", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_LINK_SUMMARY_NACK], + {&lmp_filter[LMPF_MSG_LINK_SUMMARY_NACK], { "LinkSummaryNack Message", "lmp.msg.linksummarynack", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_CHANNEL_FAIL], + {&lmp_filter[LMPF_MSG_CHANNEL_FAIL], { "ChannelFail Message", "lmp.msg.channelfail", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_CHANNEL_FAIL_ACK], + {&lmp_filter[LMPF_MSG_CHANNEL_FAIL_ACK], { "ChannelFailAck Message", "lmp.msg.channelfailack", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_CHANNEL_FAIL_NACK], + {&lmp_filter[LMPF_MSG_CHANNEL_FAIL_NACK], { "ChannelFailNack Message", "lmp.msg.channelfailnack", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_CHANNEL_STATUS], + {&lmp_filter[LMPF_MSG_CHANNEL_STATUS], { "ChannelStatus Message", "lmp.msg.channelstatus", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_CHANNEL_STATUS_ACK], + {&lmp_filter[LMPF_MSG_CHANNEL_STATUS_ACK], { "ChannelStatusAck Message", "lmp.msg.channelstatusack", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_CHANNEL_STATUS_REQ], + {&lmp_filter[LMPF_MSG_CHANNEL_STATUS_REQ], { "ChannelStatusRequest Message", "lmp.msg.channelstatusrequest", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_MSG_CHANNEL_STATUS_RESP], + {&lmp_filter[LMPF_MSG_CHANNEL_STATUS_RESP], { "ChannelStatusResponse Message", "lmp.msg.channelstatusresponse", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL }}, - + /* LMP Message Header Fields ------------------- */ - - {&lmp_filter[LMPF_HDR_FLAGS], + + {&lmp_filter[LMPF_HDR_FLAGS], { "LMP Header - Flags", "lmp.hdr.flags", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_HDR_FLAGS_CC_DOWN], + {&lmp_filter[LMPF_HDR_FLAGS_CC_DOWN], { "ControlChannelDown", "lmp.hdr.ccdown", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - {&lmp_filter[LMPF_HDR_FLAGS_REBOOT], + {&lmp_filter[LMPF_HDR_FLAGS_REBOOT], { "Reboot", "lmp.hdr.reboot", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - {&lmp_filter[LMPF_HDR_FLAGS_DWDM], + {&lmp_filter[LMPF_HDR_FLAGS_DWDM], { "DWDM Node", "lmp.hdr.dwdm", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - {&lmp_filter[LMPF_HDR_FLAGS_AUTHENTICATION], + {&lmp_filter[LMPF_HDR_FLAGS_AUTHENTICATION], { "Authentication", "lmp.hdr.auth", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, /* LMP object class filters ------------------------------- */ - {&lmp_filter[LMPF_OBJECT], + {&lmp_filter[LMPF_OBJECT], { "LOCAL_CCID", "lmp.object", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_LOCAL_CCID], + {&lmp_filter[LMPF_CLASS_LOCAL_CCID], { "LOCAL_CCID", "lmp.obj.local_ccid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_REMOTE_CCID], + {&lmp_filter[LMPF_CLASS_REMOTE_CCID], { "REMOTE_CCID", "lmp.obj.remote_ccid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_LOCAL_NODE_ID], + {&lmp_filter[LMPF_CLASS_LOCAL_NODE_ID], { "LOCAL_NODE_ID", "lmp.obj.local_nodeid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_REMOTE_NODE_ID], + {&lmp_filter[LMPF_CLASS_REMOTE_NODE_ID], { "REMOTE_NODE_ID", "lmp.obj.remote_nodeid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_LOCAL_NODE_ID], + {&lmp_filter[LMPF_CLASS_LOCAL_NODE_ID], { "LOCAL_NODE_ID", "lmp.obj.local_nodeid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_REMOTE_NODE_ID], + {&lmp_filter[LMPF_CLASS_REMOTE_NODE_ID], { "REMOTE_NODE_ID", "lmp.obj.remote_nodeid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_LOCAL_LINK_ID], + {&lmp_filter[LMPF_CLASS_LOCAL_LINK_ID], { "LOCAL_LINK_ID", "lmp.obj.local_linkid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_REMOTE_LINK_ID], + {&lmp_filter[LMPF_CLASS_REMOTE_LINK_ID], { "REMOTE_LINK_ID", "lmp.obj.remote_linkid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_LOCAL_INTERFACE_ID], + {&lmp_filter[LMPF_CLASS_LOCAL_INTERFACE_ID], { "LOCAL_INTERFACE_ID", "lmp.obj.local_interfaceid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_REMOTE_INTERFACE_ID], + {&lmp_filter[LMPF_CLASS_REMOTE_INTERFACE_ID], { "REMOTE_INTERFACE_ID", "lmp.obj.remote_interfaceid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_MESSAGE_ID], + {&lmp_filter[LMPF_CLASS_MESSAGE_ID], { "MESSAGE_ID", "lmp.obj.messageid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_MESSAGE_ID_ACK], + {&lmp_filter[LMPF_CLASS_MESSAGE_ID_ACK], { "MESSAGE_ID_ACK", "lmp.obj.messageid_ack", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_CONFIG], + {&lmp_filter[LMPF_CLASS_CONFIG], { "CONFIG", "lmp.obj.config", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_HELLO], + {&lmp_filter[LMPF_CLASS_HELLO], { "HELLO", "lmp.obj.hello", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_BEGIN_VERIFY], + {&lmp_filter[LMPF_CLASS_BEGIN_VERIFY], { "BEGIN_VERIFY", "lmp.obj.begin_verify", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_BEGIN_VERIFY_ACK], + {&lmp_filter[LMPF_CLASS_BEGIN_VERIFY_ACK], { "BEGIN_VERIFY_ACK", "lmp.obj.begin_verify_ack", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_VERIFY_ID], + {&lmp_filter[LMPF_CLASS_VERIFY_ID], { "VERIFY_ID", "lmp.obj.verifyid", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_TE_LINK], + {&lmp_filter[LMPF_CLASS_TE_LINK], { "TE_LINK", "lmp.obj.te_link", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_DATA_LINK], + {&lmp_filter[LMPF_CLASS_DATA_LINK], { "DATA_LINK", "lmp.obj.data_link", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_CHANNEL_STATUS], + {&lmp_filter[LMPF_CLASS_CHANNEL_STATUS], { "CHANNEL_STATUS", "lmp.obj.channel_status", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_CHANNEL_STATUS_REQUEST], + {&lmp_filter[LMPF_CLASS_CHANNEL_STATUS_REQUEST], { "CHANNEL_STATUS_REQUEST", "lmp.obj.channel_status_request", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_CLASS_ERROR], + {&lmp_filter[LMPF_CLASS_ERROR], { "ERROR", "lmp.obj.error", FT_NONE, BASE_NONE, NULL, 0x0, "", HFILL }}, /* Other LMP Value Filters ------------------------------ */ - {&lmp_filter[LMPF_VAL_CTYPE], + {&lmp_filter[LMPF_VAL_CTYPE], { "Object C-Type", "lmp.obj.ctype", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_LOCAL_CCID], + {&lmp_filter[LMPF_VAL_LOCAL_CCID], { "Local CCID Value", "lmp.local_ccid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_REMOTE_CCID], + {&lmp_filter[LMPF_VAL_REMOTE_CCID], { "Remote CCID Value", "lmp.remote_ccid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_LOCAL_NODE_ID], + {&lmp_filter[LMPF_VAL_LOCAL_NODE_ID], { "Local Node ID Value", "lmp.local_nodeid", FT_IPv4, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_REMOTE_NODE_ID], + {&lmp_filter[LMPF_VAL_REMOTE_NODE_ID], { "Remote Node ID Value", "lmp.remote_nodeid", FT_IPv4, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_LOCAL_LINK_ID_IPV4], + {&lmp_filter[LMPF_VAL_LOCAL_LINK_ID_IPV4], { "Local Link ID - IPv4", "lmp.local_linkid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_LOCAL_LINK_ID_UNNUM], + {&lmp_filter[LMPF_VAL_LOCAL_LINK_ID_UNNUM], { "Local Link ID - Unnumbered", "lmp.local_linkid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_REMOTE_LINK_ID_IPV4], + {&lmp_filter[LMPF_VAL_REMOTE_LINK_ID_IPV4], { "Remote Link ID - IPv4", "lmp.remote_linkid_ipv4", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_REMOTE_LINK_ID_UNNUM], + {&lmp_filter[LMPF_VAL_REMOTE_LINK_ID_UNNUM], { "Remote Link ID - Unnumbered", "lmp.remote_linkid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_LOCAL_INTERFACE_ID_IPV4], + {&lmp_filter[LMPF_VAL_LOCAL_INTERFACE_ID_IPV4], { "Local Interface ID - IPv4", "lmp.local_interfaceid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_LOCAL_INTERFACE_ID_UNNUM], + {&lmp_filter[LMPF_VAL_LOCAL_INTERFACE_ID_UNNUM], { "Local Interface ID - Unnumbered", "lmp.local_interfaceid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_REMOTE_INTERFACE_ID_IPV4], + {&lmp_filter[LMPF_VAL_REMOTE_INTERFACE_ID_IPV4], { "Remote Interface ID - IPv4", "lmp.remote_interfaceid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_REMOTE_INTERFACE_ID_UNNUM], + {&lmp_filter[LMPF_VAL_REMOTE_INTERFACE_ID_UNNUM], { "Remote Interface ID - Unnumbered", "lmp.remote_interfaceid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - - {&lmp_filter[LMPF_VAL_MESSAGE_ID], + + {&lmp_filter[LMPF_VAL_MESSAGE_ID], { "Message-ID Value", "lmp.messageid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_MESSAGE_ID_ACK], + {&lmp_filter[LMPF_VAL_MESSAGE_ID_ACK], { "Message-ID Ack Value", "lmp.messageid_ack", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_CONFIG_HELLO], + {&lmp_filter[LMPF_VAL_CONFIG_HELLO], { "HelloInterval", "lmp.hellointerval", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_CONFIG_HELLO_DEAD], + {&lmp_filter[LMPF_VAL_CONFIG_HELLO_DEAD], { "HelloDeadInterval", "lmp.hellodeadinterval", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_HELLO_TXSEQ], + {&lmp_filter[LMPF_VAL_HELLO_TXSEQ], { "TxSeqNum", "lmp.txseqnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_HELLO_RXSEQ], + {&lmp_filter[LMPF_VAL_HELLO_RXSEQ], { "RxSeqNum", "lmp.rxseqnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS], + {&lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS], { "Flags", "lmp.begin_verify.flags", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_ALL_LINKS], - { "Verify All Links", "lmp.begin_verify.all_links", + {&lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_ALL_LINKS], + { "Verify All Links", "lmp.begin_verify.all_links", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - {&lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_LINK_TYPE], - { "Data Link Type", "lmp.begin_verify.link_type", + {&lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_LINK_TYPE], + { "Data Link Type", "lmp.begin_verify.link_type", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - {&lmp_filter[LMPF_VAL_BEGIN_VERIFY_ENCTYPE], + {&lmp_filter[LMPF_VAL_BEGIN_VERIFY_ENCTYPE], { "Encoding Type", "lmp.begin_verify.enctype", FT_UINT8, BASE_DEC, VALS(gmpls_lsp_enc_str), 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_VERIFY_ID], + {&lmp_filter[LMPF_VAL_VERIFY_ID], { "Verify-ID", "lmp.verifyid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_TE_LINK_FLAGS], + {&lmp_filter[LMPF_VAL_TE_LINK_FLAGS], { "TE-Link Flags", "lmp.te_link_flags", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_TE_LINK_FLAGS_FAULT_MGMT], - { "Fault Management Supported", "lmp.te_link.fault_mgmt", + {&lmp_filter[LMPF_VAL_TE_LINK_FLAGS_FAULT_MGMT], + { "Fault Management Supported", "lmp.te_link.fault_mgmt", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - {&lmp_filter[LMPF_VAL_TE_LINK_FLAGS_LINK_VERIFY], - { "Link Verification Supported", "lmp.te_link.link_verify", + {&lmp_filter[LMPF_VAL_TE_LINK_FLAGS_LINK_VERIFY], + { "Link Verification Supported", "lmp.te_link.link_verify", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - {&lmp_filter[LMPF_VAL_TE_LINK_LOCAL_IPV4], + {&lmp_filter[LMPF_VAL_TE_LINK_LOCAL_IPV4], { "TE-Link Local ID - IPv4", "lmp.te_link.local_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_TE_LINK_LOCAL_UNNUM], + {&lmp_filter[LMPF_VAL_TE_LINK_LOCAL_UNNUM], { "TE-Link Local ID - Unnumbered", "lmp.te_link.local_unnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_TE_LINK_REMOTE_IPV4], + {&lmp_filter[LMPF_VAL_TE_LINK_REMOTE_IPV4], { "TE-Link Remote ID - IPv4", "lmp.te_link.remote_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_TE_LINK_REMOTE_UNNUM], + {&lmp_filter[LMPF_VAL_TE_LINK_REMOTE_UNNUM], { "TE-Link Remote ID - Unnumbered", "lmp.te_link.remote_unnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_DATA_LINK_FLAGS], + {&lmp_filter[LMPF_VAL_DATA_LINK_FLAGS], { "Data-Link Flags", "lmp.data_link_flags", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_DATA_LINK_FLAGS_PORT], - { "Data-Link is Individual Port", "lmp.data_link.port", + {&lmp_filter[LMPF_VAL_DATA_LINK_FLAGS_PORT], + { "Data-Link is Individual Port", "lmp.data_link.port", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - {&lmp_filter[LMPF_VAL_DATA_LINK_FLAGS_ALLOCATED], - { "Data-Link is Allocated", "lmp.data_link.link_verify", + {&lmp_filter[LMPF_VAL_DATA_LINK_FLAGS_ALLOCATED], + { "Data-Link is Allocated", "lmp.data_link.link_verify", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - {&lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_IPV4], + {&lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_IPV4], { "Data-Link Local ID - IPv4", "lmp.data_link.local_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_UNNUM], + {&lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_UNNUM], { "Data-Link Local ID - Unnumbered", "lmp.data_link.local_unnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_IPV4], + {&lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_IPV4], { "Data-Link Remote ID - IPv4", "lmp.data_link.remote_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_UNNUM], + {&lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_UNNUM], { "Data-Link Remote ID - Unnumbered", "lmp.data_link.remote_unnum", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ], + {&lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ], { "Subobject", "lmp.data_link_subobj", FT_NONE, BASE_DEC, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_SWITCHING_TYPE], - { "Interface Switching Capability", "lmp.data_link_switching", FT_UINT8, BASE_DEC, + {&lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_SWITCHING_TYPE], + { "Interface Switching Capability", "lmp.data_link_switching", FT_UINT8, BASE_DEC, VALS(gmpls_switching_type_str), 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_LSP_ENCODING], - { "LSP Encoding Type", "lmp.data_link_encoding", FT_UINT8, BASE_DEC, + {&lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_LSP_ENCODING], + { "LSP Encoding Type", "lmp.data_link_encoding", FT_UINT8, BASE_DEC, VALS(gmpls_lsp_enc_str), 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR], + {&lmp_filter[LMPF_VAL_ERROR], { "Error Code", "lmp.error", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_VERIFY_UNSUPPORTED_LINK], - { "Verification - Unsupported for this TE-Link", "lmp.error.verify_unsupported_link", + {&lmp_filter[LMPF_VAL_ERROR_VERIFY_UNSUPPORTED_LINK], + { "Verification - Unsupported for this TE-Link", "lmp.error.verify_unsupported_link", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_VERIFY_UNWILLING], - { "Verification - Unwilling to Verify at this time", "lmp.error.verify_unwilling", + {&lmp_filter[LMPF_VAL_ERROR_VERIFY_UNWILLING], + { "Verification - Unwilling to Verify at this time", "lmp.error.verify_unwilling", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_VERIFY_TRANSPORT], - { "Verification - Transport Unsupported", "lmp.error.verify_unsupported_transport", + {&lmp_filter[LMPF_VAL_ERROR_VERIFY_TRANSPORT], + { "Verification - Transport Unsupported", "lmp.error.verify_unsupported_transport", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_VERIFY_TE_LINK_ID], - { "Verification - TE Link ID Configuration Error", "lmp.error.verify_te_link_id", + {&lmp_filter[LMPF_VAL_ERROR_VERIFY_TE_LINK_ID], + { "Verification - TE Link ID Configuration Error", "lmp.error.verify_te_link_id", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_PARAMETERS], - { "Summary - Unacceptable non-negotiable parameters", "lmp.error.summary_bad_params", + {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_PARAMETERS], + { "Summary - Unacceptable non-negotiable parameters", "lmp.error.summary_bad_params", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_RENEGOTIATE], - { "Summary - Renegotiate Parametere", "lmp.error.summary_renegotiate", + {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_RENEGOTIATE], + { "Summary - Renegotiate Parametere", "lmp.error.summary_renegotiate", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_REMOTE_LINK_ID], - { "Summary - Bad Remote Link ID", "lmp.error.summary_bad_remote_linkid", + {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_REMOTE_LINK_ID], + { "Summary - Bad Remote Link ID", "lmp.error.summary_bad_remote_linkid", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_TE_LINK], - { "Summary - Bad TE Link Object", "lmp.error.summary_bad_te_link", + {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_TE_LINK], + { "Summary - Bad TE Link Object", "lmp.error.summary_bad_te_link", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_DATA_LINK], - { "Summary - Bad Data Link Object", "lmp.error.summary_bad_data_link", + {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_DATA_LINK], + { "Summary - Bad Data Link Object", "lmp.error.summary_bad_data_link", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_CONFIG_BAD_PARAMETERS], - { "Config - Unacceptable non-negotiable parameters", "lmp.error.config_bad_params", + {&lmp_filter[LMPF_VAL_ERROR_CONFIG_BAD_PARAMETERS], + { "Config - Unacceptable non-negotiable parameters", "lmp.error.config_bad_params", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_CONFIG_RENEGOTIATE], - { "Config - Renegotiate Parametere", "lmp.error.config_renegotiate", + {&lmp_filter[LMPF_VAL_ERROR_CONFIG_RENEGOTIATE], + { "Config - Renegotiate Parametere", "lmp.error.config_renegotiate", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - {&lmp_filter[LMPF_VAL_ERROR_CONFIG_BAD_CCID], - { "Config - Bad CC ID", "lmp.error.config_bad_ccid", + {&lmp_filter[LMPF_VAL_ERROR_CONFIG_BAD_CCID], + { "Config - Bad CC ID", "lmp.error.config_bad_ccid", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, }; @@ -742,21 +742,21 @@ static gint lmp_subtree[NUM_LMP_SUBTREES]; static int lmp_class_to_subtree(int class) { - if (VALID_CLASS(class)) + if (VALID_CLASS(class)) return lmp_subtree[LMP_TREE_CLASS_START + class]; return -1; } /*------------------------------------------------------------------------------ - * Da code + * Da code */ -static void -dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +static void +dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { int offset = 0; - proto_tree *lmp_tree = NULL, *ti, *ti2; + proto_tree *lmp_tree = NULL, *ti, *ti2; proto_tree *lmp_header_tree; proto_tree *lmp_header_flags_tree; proto_tree *lmp_object_tree; @@ -785,7 +785,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) message_type = tvb_get_guint8(tvb, offset+3); if (check_col(pinfo->cinfo, COL_INFO)) { col_add_str(pinfo->cinfo, COL_INFO, - val_to_str(message_type, message_type_vals, "Unknown (%u). ")); + val_to_str(message_type, message_type_vals, "Unknown (%u). ")); } if (tree) { @@ -794,13 +794,13 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) FALSE); lmp_tree = proto_item_add_subtree(ti, lmp_subtree[LMP_TREE_MAIN]); - ti = proto_tree_add_text(lmp_tree, tvb, offset, 12, "LMP Header. %s", - val_to_str(message_type, message_type_vals, - "Unknown Message (%u). ")); + ti = proto_tree_add_text(lmp_tree, tvb, offset, 12, "LMP Header. %s", + val_to_str(message_type, message_type_vals, + "Unknown Message (%u). ")); lmp_header_tree = proto_item_add_subtree(ti, lmp_subtree[LMP_TREE_HEADER]); - proto_tree_add_text(lmp_header_tree, tvb, offset, 1, "LMP Version: %u", - version); + proto_tree_add_text(lmp_header_tree, tvb, offset, 1, "LMP Version: %u", + version); ti = proto_tree_add_text(lmp_header_tree, tvb, offset+2, 1, "Flags: %02x", flags); lmp_header_flags_tree = proto_item_add_subtree(ti, lmp_subtree[LMP_TREE_HEADER_FLAGS]); @@ -812,20 +812,20 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) tvb, offset+2, 1, flags); proto_tree_add_boolean(lmp_header_flags_tree, lmp_filter[LMPF_HDR_FLAGS_AUTHENTICATION], tvb, offset+2, 1, flags); - proto_tree_add_uint(lmp_header_tree, lmp_filter[LMPF_MSG], tvb, + proto_tree_add_uint(lmp_header_tree, lmp_filter[LMPF_MSG], tvb, offset+3, 1, message_type); proto_tree_add_text(lmp_header_tree, tvb, offset+4, 2, "Length: %d bytes", msg_length); if (LMPF_MSG + message_type <= LMPF_MSG_CHANNEL_STATUS_RESP && message_type > 0) { - proto_tree_add_boolean_hidden(lmp_header_tree, lmp_filter[LMPF_MSG + message_type], tvb, + proto_tree_add_boolean_hidden(lmp_header_tree, lmp_filter[LMPF_MSG + message_type], tvb, offset+3, 1, 1); } else { proto_tree_add_protocol_format(lmp_header_tree, proto_malformed, tvb, offset+3, 1, "Invalid message type: %u", message_type); return; } - + cksum = tvb_get_ntohs(tvb, offset+6); if (!pinfo->fragmented && (int) tvb_length(tvb) >= msg_length) { /* The packet isn't part of a fragmented datagram and isn't @@ -848,15 +848,15 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) "Message Checksum: 0x%04x", cksum); } - proto_tree_add_text(lmp_header_tree, tvb, offset+8, 4, + proto_tree_add_text(lmp_header_tree, tvb, offset+8, 4, "Local Control Channel ID: %d (%s)", - tvb_get_ntohl(tvb, offset+8), + tvb_get_ntohl(tvb, offset+8), ip_to_str(tvb_get_ptr(tvb, offset+8, 4))); offset += 8; len = 8; while (len < msg_length) { - guint8 class; + guint8 class; guint8 type; guint8 negotiable; char *object_type; @@ -866,7 +866,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) type = tvb_get_guint8(tvb, offset); negotiable = (type >> 7); type &= 0x7f; object_type = val_to_str(class, lmp_class_vals, "Unknown"); - proto_tree_add_uint_hidden(lmp_tree, lmp_filter[LMPF_OBJECT], tvb, + proto_tree_add_uint_hidden(lmp_tree, lmp_filter[LMPF_OBJECT], tvb, offset, 1, class); if (VALID_CLASS(class)) { ti = proto_tree_add_item(lmp_tree, lmp_filter[lmp_class_to_filter_num(class)], @@ -879,36 +879,36 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) lmp_object_tree = proto_item_add_subtree(ti, lmp_class_to_subtree(class)); - ti2 = proto_tree_add_text(lmp_object_tree, tvb, offset, 4, + ti2 = proto_tree_add_text(lmp_object_tree, tvb, offset, 4, "Header. Class %d, C-Type %d, Length %d, %s", - class, type, obj_length, + class, type, obj_length, negotiable ? "Negotiable" : "Not Negotiable"); lmp_object_header_tree = proto_item_add_subtree(ti2, lmp_subtree[LMP_TREE_OBJECT_HEADER]); - proto_tree_add_text(lmp_object_header_tree, tvb, offset, 1, + proto_tree_add_text(lmp_object_header_tree, tvb, offset, 1, negotiable ? "Negotiable" : "Not Negotiable"); proto_tree_add_text(lmp_object_header_tree, tvb, offset+2, 2, "Length: %u", obj_length); - proto_tree_add_text(lmp_object_header_tree, tvb, offset+1, 1, - "Object Class: %u - %s", + proto_tree_add_text(lmp_object_header_tree, tvb, offset+1, 1, + "Object Class: %u - %s", class, object_type); - proto_tree_add_item(lmp_object_header_tree, lmp_filter[LMPF_VAL_CTYPE], + proto_tree_add_item(lmp_object_header_tree, lmp_filter[LMPF_VAL_CTYPE], tvb, offset, 1, type); offset2 = offset+4; mylen = obj_length - 4; switch(class) { - + case LMP_CLASS_NULL: break; - + case LMP_CLASS_LOCAL_CCID: case LMP_CLASS_REMOTE_CCID: switch(type) { - case 1: - l = (class == LMP_CLASS_LOCAL_CCID) ? + case 1: + l = (class == LMP_CLASS_LOCAL_CCID) ? LMPF_VAL_LOCAL_CCID : LMPF_VAL_REMOTE_CCID; proto_item_append_text(ti, ": %d", tvb_get_ntohl(tvb, offset2)); - proto_tree_add_uint(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, + proto_tree_add_uint(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, tvb_get_ntohl(tvb, offset2)); break; default: @@ -917,16 +917,16 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) break; } break; - + case LMP_CLASS_LOCAL_NODE_ID: case LMP_CLASS_REMOTE_NODE_ID: switch(type) { - case 1: - l = (class == LMP_CLASS_LOCAL_NODE_ID) ? + case 1: + l = (class == LMP_CLASS_LOCAL_NODE_ID) ? LMPF_VAL_LOCAL_NODE_ID : LMPF_VAL_REMOTE_NODE_ID; - proto_item_append_text(ti, ": %s", + proto_item_append_text(ti, ": %s", ip_to_str(tvb_get_ptr(tvb, offset2, 4))); - proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, + proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, FALSE); break; default: @@ -939,25 +939,25 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case LMP_CLASS_LOCAL_LINK_ID: case LMP_CLASS_REMOTE_LINK_ID: switch(type) { - case 1: - l = (class == LMP_CLASS_LOCAL_LINK_ID) ? + case 1: + l = (class == LMP_CLASS_LOCAL_LINK_ID) ? LMPF_VAL_LOCAL_LINK_ID_IPV4 : LMPF_VAL_REMOTE_LINK_ID_IPV4; - proto_item_append_text(ti, ": IPv4 %s", + proto_item_append_text(ti, ": IPv4 %s", ip_to_str(tvb_get_ptr(tvb, offset2, 4))); - proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, + proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, FALSE); break; - case 2: - proto_item_append_text(ti, ": IPv6 %s", + case 2: + proto_item_append_text(ti, ": IPv6 %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16))); - proto_tree_add_text(lmp_object_tree, tvb, offset2, 16, "IPv6: %s", + proto_tree_add_text(lmp_object_tree, tvb, offset2, 16, "IPv6: %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16))); break; - case 3: - l = (class == LMP_CLASS_LOCAL_LINK_ID) ? + case 3: + l = (class == LMP_CLASS_LOCAL_LINK_ID) ? LMPF_VAL_LOCAL_LINK_ID_UNNUM : LMPF_VAL_REMOTE_LINK_ID_UNNUM; proto_item_append_text(ti, ": Unnumbered %d", tvb_get_ntohl(tvb, offset2)); - proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, + proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, FALSE); break; default: @@ -970,25 +970,25 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case LMP_CLASS_LOCAL_INTERFACE_ID: case LMP_CLASS_REMOTE_INTERFACE_ID: switch(type) { - case 1: - l = (class == LMP_CLASS_LOCAL_INTERFACE_ID) ? + case 1: + l = (class == LMP_CLASS_LOCAL_INTERFACE_ID) ? LMPF_VAL_LOCAL_INTERFACE_ID_IPV4 : LMPF_VAL_REMOTE_INTERFACE_ID_IPV4; - proto_item_append_text(ti, ": IPv4 %s", + proto_item_append_text(ti, ": IPv4 %s", ip_to_str(tvb_get_ptr(tvb, offset2, 4))); - proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, + proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, FALSE); break; - case 2: - proto_item_append_text(ti, ": IPv6 %s", + case 2: + proto_item_append_text(ti, ": IPv6 %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16))); - proto_tree_add_text(lmp_object_tree, tvb, offset2, 16, "IPv6: %s", + proto_tree_add_text(lmp_object_tree, tvb, offset2, 16, "IPv6: %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16))); break; - case 3: - l = (class == LMP_CLASS_LOCAL_INTERFACE_ID) ? + case 3: + l = (class == LMP_CLASS_LOCAL_INTERFACE_ID) ? LMPF_VAL_LOCAL_INTERFACE_ID_UNNUM : LMPF_VAL_REMOTE_INTERFACE_ID_UNNUM; proto_item_append_text(ti, ": Unnumbered %d", tvb_get_ntohl(tvb, offset2)); - proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, + proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, FALSE); break; default: @@ -1001,11 +1001,11 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case LMP_CLASS_MESSAGE_ID: case LMP_CLASS_MESSAGE_ID_ACK: switch(type) { - case 1: - l = (class == LMP_CLASS_MESSAGE_ID) ? + case 1: + l = (class == LMP_CLASS_MESSAGE_ID) ? LMPF_VAL_MESSAGE_ID : LMPF_VAL_MESSAGE_ID_ACK; proto_item_append_text(ti, ": %d", tvb_get_ntohl(tvb, offset2)); - proto_tree_add_uint(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, + proto_tree_add_uint(lmp_object_tree, lmp_filter[l], tvb, offset2, 4, tvb_get_ntohl(tvb, offset2)); break; default: @@ -1014,15 +1014,15 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) break; } break; - + case LMP_CLASS_CONFIG: switch(type) { - case 1: - proto_item_append_text(ti, ": HelloInterval: %d, HelloDeadInterval: %d", + case 1: + proto_item_append_text(ti, ": HelloInterval: %d, HelloDeadInterval: %d", tvb_get_ntohs(tvb, offset2), tvb_get_ntohs(tvb, offset2+2)); - proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_CONFIG_HELLO], + proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_CONFIG_HELLO], tvb, offset2, 2, tvb_get_ntohs(tvb, offset2)); - proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_CONFIG_HELLO_DEAD], + proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_CONFIG_HELLO_DEAD], tvb, offset2+2, 2, tvb_get_ntohs(tvb, offset2+2)); break; default: @@ -1031,16 +1031,16 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) break; } break; - + case LMP_CLASS_HELLO: switch(type) { - case 1: - proto_item_append_text(ti, ": TxSeq %d, RxSeq: %d", - tvb_get_ntohl(tvb, offset2), + case 1: + proto_item_append_text(ti, ": TxSeq %d, RxSeq: %d", + tvb_get_ntohl(tvb, offset2), tvb_get_ntohl(tvb, offset2+4)); - proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_HELLO_TXSEQ], + proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_HELLO_TXSEQ], tvb, offset2, 4, tvb_get_ntohl(tvb, offset2)); - proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_HELLO_RXSEQ], + proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_HELLO_RXSEQ], tvb, offset2+4, 4, tvb_get_ntohl(tvb, offset2+4)); break; default: @@ -1049,10 +1049,10 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) break; } break; - + case LMP_CLASS_BEGIN_VERIFY: switch(type) { - case 1: + case 1: l = tvb_get_ntohs(tvb, offset2); ti2 = proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS], tvb, offset2, 2, FALSE); @@ -1062,17 +1062,17 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) tvb, offset2, 2, l); proto_tree_add_boolean(lmp_flags_tree, lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_LINK_TYPE], tvb, offset2, 2, l); - proto_tree_add_text(lmp_object_tree, tvb, offset2+2, 2, + proto_tree_add_text(lmp_object_tree, tvb, offset2+2, 2, "Verify Interval: %d ms", tvb_get_ntohs(tvb, offset2+2)); - proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 4, + proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 4, "Number of Data Links: %d", tvb_get_ntohl(tvb, offset2+4)); - proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_BEGIN_VERIFY_ENCTYPE], + proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_BEGIN_VERIFY_ENCTYPE], tvb, offset2+8, 1, FALSE); - proto_tree_add_text(lmp_object_tree, tvb, offset2+10, 2, + proto_tree_add_text(lmp_object_tree, tvb, offset2+10, 2, "Verify Transport Mechanism: 0x%0x", tvb_get_ntohs(tvb, offset2+10)); - proto_tree_add_text(lmp_object_tree, tvb, offset2+12, 4, + proto_tree_add_text(lmp_object_tree, tvb, offset2+12, 4, "Transmission Rate: %.10g", tvb_get_ntohieee_float(tvb, offset2+12)); - proto_tree_add_text(lmp_object_tree, tvb, offset2+16, 4, + proto_tree_add_text(lmp_object_tree, tvb, offset2+16, 4, "Wavelength: %d", tvb_get_ntohl(tvb, offset2+4)); break; default: @@ -1081,15 +1081,15 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) break; } break; - + case LMP_CLASS_BEGIN_VERIFY_ACK: switch(type) { - case 1: - proto_item_append_text(ti, ": VerifyDeadInterval: %d, TransportResponse: 0x%0x", + case 1: + proto_item_append_text(ti, ": VerifyDeadInterval: %d, TransportResponse: 0x%0x", tvb_get_ntohs(tvb, offset2), tvb_get_ntohs(tvb, offset2+2)); - proto_tree_add_text(lmp_object_tree, tvb, offset2, 2, + proto_tree_add_text(lmp_object_tree, tvb, offset2, 2, "VerifyDeadInterval: %d ms", tvb_get_ntohs(tvb, offset2)); - proto_tree_add_text(lmp_object_tree, tvb, offset2+2, 2, + proto_tree_add_text(lmp_object_tree, tvb, offset2+2, 2, "Verify Transport Response: 0x%0x", tvb_get_ntohs(tvb, offset2+2)); break; default: @@ -1098,12 +1098,12 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) break; } break; - + case LMP_CLASS_VERIFY_ID: switch(type) { - case 1: + case 1: proto_item_append_text(ti, ": %d", tvb_get_ntohl(tvb, offset2)); - proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_VERIFY_ID], tvb, offset2, 4, + proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_VERIFY_ID], tvb, offset2, 4, tvb_get_ntohl(tvb, offset2)); break; default: @@ -1112,46 +1112,46 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) break; } break; - + case LMP_CLASS_TE_LINK: l = tvb_get_guint8(tvb, offset2); - ti2 = proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_TE_LINK_FLAGS], + ti2 = proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_TE_LINK_FLAGS], tvb, offset2, 1, l); - proto_item_append_text(ti2, ": %s%s", + proto_item_append_text(ti2, ": %s%s", (l&0x01) ? "Fault-Mgmt-Supported " : "", (l&0x02) ? "Link-Verification-Supported " : ""); lmp_flags_tree = proto_item_add_subtree(ti2, lmp_subtree[LMP_TREE_TE_LINK_FLAGS]); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_TE_LINK_FLAGS_FAULT_MGMT], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_TE_LINK_FLAGS_FAULT_MGMT], tvb, offset2, 1, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_TE_LINK_FLAGS_LINK_VERIFY], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_TE_LINK_FLAGS_LINK_VERIFY], tvb, offset2, 1, l); switch(type) { - case 1: - proto_item_append_text(ti, ": IPv4: Local %s, Remote %s", + case 1: + proto_item_append_text(ti, ": IPv4: Local %s, Remote %s", ip_to_str(tvb_get_ptr(tvb, offset2+4, 4)), ip_to_str(tvb_get_ptr(tvb, offset2+8, 4))); - proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_TE_LINK_LOCAL_IPV4], + proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_TE_LINK_LOCAL_IPV4], tvb, offset2+4, 4, FALSE); - proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_TE_LINK_REMOTE_IPV4], + proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_TE_LINK_REMOTE_IPV4], tvb, offset2+8, 4, FALSE); break; - case 2: - proto_item_append_text(ti, ": IPv6: Local %s, Remote %s", + case 2: + proto_item_append_text(ti, ": IPv6: Local %s, Remote %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2+4, 16)), ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2+8, 16))); - proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 16, "TE-Link Local ID - IPv6: %s", + proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 16, "TE-Link Local ID - IPv6: %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16))); - proto_tree_add_text(lmp_object_tree, tvb, offset2+20,16, "TE-Link Remote ID - IPv6: %s", + proto_tree_add_text(lmp_object_tree, tvb, offset2+20,16, "TE-Link Remote ID - IPv6: %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2+4, 16))); break; - case 3: - proto_item_append_text(ti, ": Unnumbered: Local %d, Remote %d", + case 3: + proto_item_append_text(ti, ": Unnumbered: Local %d, Remote %d", tvb_get_ntohl(tvb, offset2+4), tvb_get_ntohl(tvb, offset2+8)); - proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_TE_LINK_LOCAL_UNNUM], + proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_TE_LINK_LOCAL_UNNUM], tvb, offset2+4, 4, FALSE); - proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_TE_LINK_REMOTE_UNNUM], + proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_TE_LINK_REMOTE_UNNUM], tvb, offset2+8, 4, FALSE); break; default: @@ -1163,47 +1163,47 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case LMP_CLASS_DATA_LINK: l = tvb_get_guint8(tvb, offset2); - ti2 = proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_FLAGS], + ti2 = proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_FLAGS], tvb, offset2, 1, l); - proto_item_append_text(ti2, ": %s%s", + proto_item_append_text(ti2, ": %s%s", (l&0x01) ? "Interface-Type-Port " : "Interface-Type-Component-Link ", (l&0x02) ? "Allocated " : "Unallocated "); lmp_flags_tree = proto_item_add_subtree(ti2, lmp_subtree[LMP_TREE_DATA_LINK_FLAGS]); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_DATA_LINK_FLAGS_PORT], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_DATA_LINK_FLAGS_PORT], tvb, offset2, 1, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_DATA_LINK_FLAGS_ALLOCATED], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_DATA_LINK_FLAGS_ALLOCATED], tvb, offset2, 1, l); switch(type) { - case 1: - proto_item_append_text(ti, ": IPv4: Local %s, Remote %s", + case 1: + proto_item_append_text(ti, ": IPv4: Local %s, Remote %s", ip_to_str(tvb_get_ptr(tvb, offset2+4, 4)), ip_to_str(tvb_get_ptr(tvb, offset2+8, 4))); - proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_IPV4], + proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_IPV4], tvb, offset2+4, 4, FALSE); - proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_IPV4], + proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_IPV4], tvb, offset2+8, 4, FALSE); l = 12; break; - case 2: - proto_item_append_text(ti, ": IPv6: Local %s, Remote %s", + case 2: + proto_item_append_text(ti, ": IPv6: Local %s, Remote %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2+4, 16)), ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2+8, 16))); - proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 16, - "Data-Link Local ID - IPv6: %s", + proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 16, + "Data-Link Local ID - IPv6: %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16))); - proto_tree_add_text(lmp_object_tree, tvb, offset2+20,16, - "Data-Link Remote ID - IPv6: %s", + proto_tree_add_text(lmp_object_tree, tvb, offset2+20,16, + "Data-Link Remote ID - IPv6: %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2+4, 16))); l = 36; break; - case 3: - proto_item_append_text(ti, ": Unnumbered: Local %d, Remote %d", + case 3: + proto_item_append_text(ti, ": Unnumbered: Local %d, Remote %d", tvb_get_ntohl(tvb, offset2+4), tvb_get_ntohl(tvb, offset2+8)); - proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_UNNUM], + proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_UNNUM], tvb, offset2+4, 4, FALSE); - proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_UNNUM], + proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_UNNUM], tvb, offset2+8, 4, FALSE); l = 12; break; @@ -1218,51 +1218,51 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) ti2 = proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ], tvb, offset2+l, mylen, FALSE); lmp_subobj_tree = proto_item_add_subtree(ti2, lmp_subtree[LMP_TREE_DATA_LINK_SUBOBJ]); - proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 1, + proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 1, "Subobject Type: %d", tvb_get_guint8(tvb, offset2+l)); - proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+1, 1, + proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+1, 1, "Subobject Length: %d", mylen); switch(tvb_get_guint8(tvb, offset2+l)) { - case 1: + case 1: proto_item_set_text(ti2, "Interface Switching Capability: " - "Switching Cap: %s, Encoding Type: %s, Min BW: %.10g, Max BW: %.10g", - val_to_str(tvb_get_guint8(tvb, offset2+l+2), + "Switching Cap: %s, Encoding Type: %s, Min BW: %.10g, Max BW: %.10g", + val_to_str(tvb_get_guint8(tvb, offset2+l+2), gmpls_switching_type_str, "Unknown (%d)"), - val_to_str(tvb_get_guint8(tvb, offset2+l+3), + val_to_str(tvb_get_guint8(tvb, offset2+l+3), gmpls_lsp_enc_str, "Unknown (%d)"), - tvb_get_ntohieee_float(tvb, offset2+l+4), + tvb_get_ntohieee_float(tvb, offset2+l+4), tvb_get_ntohieee_float(tvb, offset2+l+8)); - proto_tree_add_item(lmp_subobj_tree, + proto_tree_add_item(lmp_subobj_tree, lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_SWITCHING_TYPE], tvb, offset2+l+2, 1, FALSE); - proto_tree_add_item(lmp_subobj_tree, + proto_tree_add_item(lmp_subobj_tree, lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_LSP_ENCODING], tvb, offset2+l+3, 1, FALSE); - proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+4, 4, - "Minimum Reservable Bandwidth: %.10g bytes/s", + proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+4, 4, + "Minimum Reservable Bandwidth: %.10g bytes/s", tvb_get_ntohieee_float(tvb, offset2+l+4)); - proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+8, 4, - "Maximum Reservable Bandwidth: %.10g bytes/s", + proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+8, 4, + "Maximum Reservable Bandwidth: %.10g bytes/s", tvb_get_ntohieee_float(tvb, offset2+l+8)); break; case 2: - proto_item_set_text(ti2, "Wavelength: %d", + proto_item_set_text(ti2, "Wavelength: %d", tvb_get_ntohl(tvb, offset2+l+2)); - proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+4, 4, - "Wavelength: %d", + proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+4, 4, + "Wavelength: %d", tvb_get_ntohl(tvb, offset2+l+2)); break; default: - proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, + proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, tvb_get_guint8(tvb, offset2+l+1), "Data (%d bytes)", tvb_get_guint8(tvb, offset2+l+1)); break; } l += tvb_get_guint8(tvb, offset2+l+1); } - + break; case LMP_CLASS_CHANNEL_STATUS: @@ -1277,37 +1277,37 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if (!k) break; for (l=0; l<obj_length - 4; ) { - ti2 = proto_tree_add_text(lmp_object_tree, tvb, offset2+l, k, + ti2 = proto_tree_add_text(lmp_object_tree, tvb, offset2+l, k, "Interface-Id"); lmp_subobj_tree = proto_item_add_subtree(ti2, lmp_subtree[LMP_TREE_CHANNEL_STATUS_ID]); switch(type) { - case 1: - if (j < 4) - proto_item_append_text(ti, ": [IPv4-%s", + case 1: + if (j < 4) + proto_item_append_text(ti, ": [IPv4-%s", ip_to_str(tvb_get_ptr(tvb, offset2+l, 4))); - proto_item_append_text(ti2, ": IPv4 %s", + proto_item_append_text(ti2, ": IPv4 %s", ip_to_str(tvb_get_ptr(tvb, offset2+l, 4))); - proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 4, - "Interface ID: IPv4: %s", + proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 4, + "Interface ID: IPv4: %s", ip_to_str(tvb_get_ptr(tvb, offset2+l, 4))); l += 4; break; - case 2: - if (j < 4) - proto_item_append_text(ti, ": [IPv6-%s", + case 2: + if (j < 4) + proto_item_append_text(ti, ": [IPv6-%s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2+l, 16))); - proto_item_append_text(ti2, ": IPv6 %s", + proto_item_append_text(ti2, ": IPv6 %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2+l, 16))); - proto_tree_add_text(lmp_subobj_tree, tvb, offset2, 16, "Interface ID: IPv6: %s", + proto_tree_add_text(lmp_subobj_tree, tvb, offset2, 16, "Interface ID: IPv6: %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2+l, 16))); l += 16; break; - case 3: + case 3: if (j < 4) proto_item_append_text(ti, ": [Unnum-%d", tvb_get_ntohl(tvb, offset2+l)); proto_item_append_text(ti, ": Unnumbered %d", tvb_get_ntohl(tvb, offset2+l)); - proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 4, - "Interface ID: Unnumbered: %d", + proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 4, + "Interface ID: Unnumbered: %d", tvb_get_ntohl(tvb, offset2+l)); l += 4; break; @@ -1319,22 +1319,22 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } if (l == obj_length - 4) break; - proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 1, - tvb_get_guint8(tvb, offset2+l) & 0x80 ? - "Link Allocated - Active Monitoring" : + proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 1, + tvb_get_guint8(tvb, offset2+l) & 0x80 ? + "Link Allocated - Active Monitoring" : "Link Not Allocated"); - if (j < 4) - proto_item_append_text(ti, "-%s,%s], ", + if (j < 4) + proto_item_append_text(ti, "-%s,%s], ", tvb_get_guint8(tvb, offset2+l) & 0x80 ? "Act" : "NA", - val_to_str(tvb_get_ntohl(tvb, offset2+l) & 0x7fffffff, + val_to_str(tvb_get_ntohl(tvb, offset2+l) & 0x7fffffff, channel_status_short_str, "UNK (%u).")); - proto_item_append_text(ti2, ": %s, ", + proto_item_append_text(ti2, ": %s, ", tvb_get_guint8(tvb, offset2+l) & 0x80 ? "Active" : "Not Active"); - proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 4, - "Channel Status: %s", - val_to_str(tvb_get_ntohl(tvb, offset2+l) & 0x7fffffff, + proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 4, + "Channel Status: %s", + val_to_str(tvb_get_ntohl(tvb, offset2+l) & 0x7fffffff, channel_status_str, "Unknown (%u). ")); - proto_item_append_text(ti2, val_to_str(tvb_get_ntohl(tvb, offset2+l) & 0x7fffffff, + proto_item_append_text(ti2, val_to_str(tvb_get_ntohl(tvb, offset2+l) & 0x7fffffff, channel_status_str, "Unknown (%u). ")); j++; l += 4; @@ -1346,20 +1346,20 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case LMP_CLASS_CHANNEL_STATUS_REQUEST: for (l=0; l<obj_length - 4; ) { switch(type) { - case 1: - proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 4, - "Interface ID: IPv4: %s", + case 1: + proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 4, + "Interface ID: IPv4: %s", ip_to_str(tvb_get_ptr(tvb, offset2+l, 4))); l += 4; break; - case 2: - proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 16, "Interface ID: IPv6: %s", + case 2: + proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 16, "Interface ID: IPv6: %s", ip6_to_str((struct e_in6_addr *)tvb_get_ptr(tvb, offset2+l,16))); l += 16; break; - case 3: - proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 4, - "Interface ID: Unnumbered: %d", + case 3: + proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 4, + "Interface ID: Unnumbered: %d", tvb_get_ntohl(tvb, offset2+l)); l += 4; break; @@ -1374,63 +1374,63 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case LMP_CLASS_ERROR: l = tvb_get_ntohl(tvb, offset2); - ti2 = proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_ERROR], + ti2 = proto_tree_add_uint(lmp_object_tree, lmp_filter[LMPF_VAL_ERROR], tvb, offset2, 4, l); /* Errors are different in draft-02 and draft-03 */ switch(lmp_draft_ver) { case LMP_VER_DRAFT_CCAMP_02: switch(type) { - case 1: + case 1: proto_item_append_text(ti, ": CONFIG_ERROR: %s%s%s", (l&0x01) ? "Unacceptable-Params " : "", (l&0x02) ? "Renegotiate" : "", (l&0x04) ? "Bad Received CCID" : ""); lmp_flags_tree = proto_item_add_subtree(ti2, lmp_subtree[LMP_TREE_ERROR_FLAGS]); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_CONFIG_BAD_PARAMETERS], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_CONFIG_BAD_PARAMETERS], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_CONFIG_RENEGOTIATE], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_CONFIG_RENEGOTIATE], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_CONFIG_BAD_CCID], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_CONFIG_BAD_CCID], tvb, offset, 4, l); break; - case 2: + case 2: proto_item_append_text(ti, ": BEGIN_VERIFY_ERROR: %s%s%s%s", (l&0x01) ? "Unsupported-Link " : "", (l&0x02) ? "Unwilling" : "", (l&0x04) ? "Unsupported-Transport" : "", (l&0x08) ? "TE-Link-ID" : ""); lmp_flags_tree = proto_item_add_subtree(ti2, lmp_subtree[LMP_TREE_ERROR_FLAGS]); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_VERIFY_UNSUPPORTED_LINK], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_VERIFY_UNSUPPORTED_LINK], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_VERIFY_UNWILLING], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_VERIFY_UNWILLING], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_VERIFY_TRANSPORT], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_VERIFY_TRANSPORT], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_VERIFY_TE_LINK_ID], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_VERIFY_TE_LINK_ID], tvb, offset, 4, l); break; - case 3: + case 3: proto_item_append_text(ti, ": LINK_SUMMARY_ERROR: %s%s%s", (l&0x01) ? "Unacceptable-Params " : "", (l&0x02) ? "Renegotiate" : "", (l&0x04) ? "Remote-Link-ID" : ""); lmp_flags_tree = proto_item_add_subtree(ti2, lmp_subtree[LMP_TREE_ERROR_FLAGS]); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_PARAMETERS], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_PARAMETERS], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_SUMMARY_RENEGOTIATE], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_SUMMARY_RENEGOTIATE], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_REMOTE_LINK_ID], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_REMOTE_LINK_ID], tvb, offset, 4, l); break; default: @@ -1444,27 +1444,27 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) default: case LMP_VER_DRAFT_CCAMP_03: switch(type) { - case 1: + case 1: proto_item_append_text(ti, ": BEGIN_VERIFY_ERROR: %s%s%s%s", (l&0x01) ? "Unsupported-Link " : "", (l&0x02) ? "Unwilling" : "", (l&0x04) ? "Unsupported-Transport" : "", (l&0x08) ? "TE-Link-ID" : ""); lmp_flags_tree = proto_item_add_subtree(ti2, lmp_subtree[LMP_TREE_ERROR_FLAGS]); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_VERIFY_UNSUPPORTED_LINK], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_VERIFY_UNSUPPORTED_LINK], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_VERIFY_UNWILLING], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_VERIFY_UNWILLING], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_VERIFY_TRANSPORT], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_VERIFY_TRANSPORT], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_VERIFY_TE_LINK_ID], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_VERIFY_TE_LINK_ID], tvb, offset, 4, l); break; - case 2: + case 2: proto_item_append_text(ti, ": LINK_SUMMARY_ERROR: %s%s%s%s%s", (l&0x01) ? "Unacceptable-Params " : "", (l&0x02) ? "Renegotiate" : "", @@ -1472,20 +1472,20 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) (l&0x08) ? "TE-Link" : "", (l&0x10) ? "Data-Link" : ""); lmp_flags_tree = proto_item_add_subtree(ti2, lmp_subtree[LMP_TREE_ERROR_FLAGS]); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_PARAMETERS], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_PARAMETERS], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_SUMMARY_RENEGOTIATE], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_SUMMARY_RENEGOTIATE], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_REMOTE_LINK_ID], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_REMOTE_LINK_ID], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_TE_LINK], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_TE_LINK], tvb, offset, 4, l); - proto_tree_add_boolean(lmp_flags_tree, - lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_DATA_LINK], + proto_tree_add_boolean(lmp_flags_tree, + lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_DATA_LINK], tvb, offset, 4, l); break; default: @@ -1497,13 +1497,13 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) break; } break; - + default : proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen, "Data (%d bytes)", mylen); break; - } + } offset += obj_length; len += obj_length; @@ -1511,7 +1511,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } } -static void +static void register_lmp_prefs (void) { module_t *lmp_module; @@ -1523,7 +1523,7 @@ register_lmp_prefs (void) lmp_module = prefs_register_protocol(proto_lmp, NULL); prefs_register_enum_preference( - lmp_module, "lmp_version", + lmp_module, "lmp_version", "Draft version of LMP", "Specifies the IETF CCAMP draft version of LMP to interpret", &lmp_draft_ver, lmp_ver, FALSE); @@ -1531,10 +1531,10 @@ register_lmp_prefs (void) void proto_register_lmp(void) -{ +{ static gint *ett[NUM_LMP_SUBTREES]; int i; - + for (i=0; i<NUM_LMP_SUBTREES; i++) { lmp_subtree[i] = -1; ett[i] = &lmp_subtree[i]; |