For proto_tree_add_item(..., proto_xxx, ...)use ENC_NA as the encoding arg.
[obnox/wireshark/wip.git] / epan / dissectors / packet-lmp.c
index b90b711c2a7ea6e90ecbf5ba194ad9ecf5f81744..ad2aadd47a70e76664575366d0c01b32667e09eb 100644 (file)
 # include "config.h"
 #endif
 
-#include <stdio.h>
-
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 
-#include <stdlib.h>
-#include <string.h>
-
 #include <glib.h>
 
-#include <epan/tvbuff.h>
 #include <epan/packet.h>
 #include <prefs.h>
 #include <epan/in_cksum.h>
@@ -72,6 +66,8 @@ static int proto_lmp = -1;
 static guint lmp_udp_port = UDP_PORT_LMP_DEFAULT;
 static guint lmp_udp_port_config = UDP_PORT_LMP_DEFAULT;
 
+static gboolean lmp_checksum_config = FALSE;
+
 static dissector_handle_t lmp_handle;
 
 /*----------------------------------------------------------------------
@@ -117,7 +113,7 @@ typedef enum {
     LMP_MSG_DISCOVERY_RESP_NACK
 } lmp_message_types;
 
-static value_string message_type_vals[] = {
+static const value_string message_type_vals[] = {
     {LMP_MSG_CONFIG,              "Config Message. "},
     {LMP_MSG_CONFIG_ACK,          "ConfigAck Message. "},
     {LMP_MSG_CONFIG_NACK,         "ConfigNack Message. "},
@@ -177,7 +173,7 @@ static value_string message_type_vals[] = {
 #define        LMP_CLASS_DATA_LINK                     12
 #define        LMP_CLASS_CHANNEL_STATUS                13
 #define        LMP_CLASS_CHANNEL_STATUS_REQUEST        14
-#define LMP_LAST_CONTIGUOUS_CLASS                      LMP_CLASS_CHANNEL_STATUS_REQUEST  
+#define LMP_LAST_CONTIGUOUS_CLASS                      LMP_CLASS_CHANNEL_STATUS_REQUEST
 #define        LMP_CLASS_ERROR                         20
 #define LMP_CLASS_TRACE                         21
 #define LMP_CLASS_TRACE_REQ                     22
@@ -186,7 +182,7 @@ static value_string message_type_vals[] = {
 #define LMP_CLASS_LOCAL_LAD_INFO               249
 #define        LMP_CLASS_MAX                          250
 
-static value_string lmp_class_vals[] = {
+static const value_string lmp_class_vals[] = {
 
     {LMP_CLASS_CCID, "CCID"},
     {LMP_CLASS_NODE_ID, "NODE_ID"},
@@ -278,7 +274,7 @@ static const value_string lmp_trace_type_str[] = {
     { 0, NULL}
 };
 
-/* 
+/*
  * These values are used by the code that handles the Service Discovery
  * Client Port-Level Service Attributes Object.
  */
@@ -289,7 +285,7 @@ static const value_string lmp_trace_type_str[] = {
  * LMP Filter values
  */
 
-enum lmp_filter_keys {
+enum hf_lmp_filter_keys {
 
   /* Message types ---------------- */
   LMPF_MSG,
@@ -473,7 +469,7 @@ enum lmp_filter_keys {
   LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_NODE,
   LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_LINK,
   LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_SRLG,
-  
+
   LMPF_VAL_LOCAL_DA_DCN_ADDR,
   LMPF_VAL_REMOTE_DA_DCN_ADDR,
 
@@ -497,665 +493,20 @@ enum lmp_filter_keys {
   LMPF_MAX
 };
 
-static int lmp_filter[LMPF_MAX];
-
-static hf_register_info lmpf_info[] = {
-
-    /* Message type number */
-    {&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],
-     { "Config Message", "lmp.msg.config", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_CONFIG_ACK],
-     { "ConfigAck Message", "lmp.msg.configack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_CONFIG_NACK],
-     { "ConfigNack Message", "lmp.msg.confignack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_HELLO],
-     { "HELLO Message", "lmp.msg.hello", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "BeginVerifyAck Message", "lmp.msg.beginverifyack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "EndVerify Message", "lmp.msg.endverify", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_END_VERIFY_ACK],
-     { "EndVerifyAck Message", "lmp.msg.endverifyack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_TEST],
-     { "Test Message", "lmp.msg.test", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "TestStatusFailure Message", "lmp.msg.teststatusfailure", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "LinkSummary Message", "lmp.msg.linksummary", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "LinkSummaryNack Message", "lmp.msg.linksummarynack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "ChannelStatusAck Message", "lmp.msg.channelstatusack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "ChannelStatusResponse Message", "lmp.msg.channelstatusresponse", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_TRACE_MONITOR],
-     { "TraceMonitor Message", "lmp.msg.tracemonitor", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_TRACE_MONITOR_ACK],
-     { "TraceMonitorAck Message", "lmp.msg.tracemonitorack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_TRACE_MONITOR_NACK],
-     { "TraceMonitorNack Message", "lmp.msg.tracemonitornack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_TRACE_MISMATCH],
-     { "TraceMismatch Message", "lmp.msg.tracemismatch", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_TRACE_MISMATCH_ACK],
-     { "TraceMismatchAck Message", "lmp.msg.tracemismatchack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_TRACE_REQUEST],
-     { "TraceRequest Message", "lmp.msg.tracerequest", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_TRACE_REPORT],
-     { "TraceReport Message", "lmp.msg.tracereport", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_TRACE_REQUEST_NACK],
-     { "TraceRequestNack Message", "lmp.msg.tracerequestnack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_INSERT_TRACE],
-     { "InsertTrace Message", "lmp.msg.inserttrace", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_INSERT_TRACE_ACK],
-     { "InsertTraceAck Message", "lmp.msg.inserttraceack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_INSERT_TRACE_NACK],
-     { "InsertTraceNack Message", "lmp.msg.inserttracenack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_SERVICE_CONFIG],
-     { "ServiceConfig Message", "lmp.msg.serviceconfig", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_SERVICE_CONFIG_ACK],
-     { "ServiceConfigAck Message", "lmp.msg.serviceconfigack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_SERVICE_CONFIG_NACK],
-     { "ServiceConfigNack Message", "lmp.msg.serviceconfignack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_DISCOVERY_RESP],
-     { "DiscoveryResponse Message", "lmp.msg.discoveryresp", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_DISCOVERY_RESP_ACK],
-     { "DiscoveryResponseAck Message", "lmp.msg.discoveryrespack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_MSG_DISCOVERY_RESP_NACK],
-     { "DiscoveryResponseNack Message", "lmp.msg.discoveryrespnack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    /* LMP Message Header Fields ------------------- */
-
-    {&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],
-     { "ControlChannelDown", "lmp.hdr.ccdown", FT_BOOLEAN, 8, NULL, 0x01,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_HDR_FLAGS_REBOOT],
-     { "Reboot", "lmp.hdr.reboot", FT_BOOLEAN, 8, NULL, 0x02,
-       "", HFILL }},
-
-    /* LMP object class filters ------------------------------- */
-
-    {&lmp_filter[LMPF_OBJECT],
-     { "LOCAL_CCID", "lmp.object", FT_UINT8, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_CLASS_CCID],
-     { "CCID", "lmp.obj.ccid", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_CLASS_NODE_ID],
-     { "NODE_ID", "lmp.obj.Nodeid", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_CLASS_LINK_ID],
-     { "LINK_ID", "lmp.obj.linkid", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_CLASS_INTERFACE_ID],
-     { "INTERFACE_ID", "lmp.obj.interfaceid", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_CLASS_MESSAGE_ID],
-     { "MESSAGE_ID", "lmp.obj.messageid", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_CLASS_CONFIG],
-     { "CONFIG", "lmp.obj.config", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_CLASS_HELLO],
-     { "HELLO", "lmp.obj.hello", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&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],
-     { "BEGIN_VERIFY_ACK", "lmp.obj.begin_verify_ack", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_CLASS_VERIFY_ID],
-     { "VERIFY_ID", "lmp.obj.verifyid", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "DATA_LINK", "lmp.obj.data_link", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "CHANNEL_STATUS_REQUEST", "lmp.obj.channel_status_request", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_CLASS_ERROR],
-     { "ERROR", "lmp.obj.error", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_CLASS_TRACE],
-     { "TRACE", "lmp.obj.trace", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_CLASS_TRACE_REQ],
-     { "TRACE REQ", "lmp.obj.trace_req", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_CLASS_SERVICE_CONFIG],
-     { "SERVICE_CONFIG", "lmp.obj.serviceconfig", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_CLASS_DA_DCN_ADDRESS],
-     { "DA_DCN_ADDRESS", "lmp.obj.dadcnaddr", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_CLASS_LOCAL_LAD_INFO],
-     { "LOCAL_LAD_INFO", "lmp.obj.localladinfo", FT_NONE, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    /* Other LMP Value Filters ------------------------------ */
-
-    {&lmp_filter[LMPF_VAL_CTYPE],
-     { "Object C-Type", "lmp.obj.ctype", FT_UINT8, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "Remote CCID Value", "lmp.remote_ccid", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "Remote Node ID Value", "lmp.remote_nodeid", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "Local Link ID - Unnumbered", "lmp.local_linkid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-    {&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],
-     { "Remote Link ID - Unnumbered", "lmp.remote_linkid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "Local Interface ID - Unnumbered", "lmp.local_interfaceid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-    {&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],
-     { "Remote Interface ID - Unnumbered", "lmp.remote_interfaceid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-
-    {&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],
-     { "Message-ID Ack Value", "lmp.messageid_ack", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_VAL_CONFIG_HELLO],
-     { "HelloInterval", "lmp.hellointerval", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_CONFIG_HELLO_DEAD],
-     { "HelloDeadInterval", "lmp.hellodeadinterval", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_VAL_HELLO_TXSEQ],
-     { "TxSeqNum", "lmp.txseqnum", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_HELLO_RXSEQ],
-     { "RxSeqNum", "lmp.rxseqnum", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-
-    {&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",
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }},
-    {&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],
-     { "Encoding Type", "lmp.begin_verify.enctype", FT_UINT8, BASE_DEC, VALS(gmpls_lsp_enc_str), 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_VERIFY_ID],
-     { "Verify-ID", "lmp.verifyid", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-
-    {&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",
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }},
-    {&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],
-     { "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],
-     { "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],
-     { "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],
-     { "TE-Link Remote ID - Unnumbered", "lmp.te_link.remote_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-
-    {&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",
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }},
-    {&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],
-     { "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],
-     { "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],
-     { "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],
-     { "Data-Link Remote ID - Unnumbered", "lmp.data_link.remote_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-    {&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,
-       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,
-       VALS(gmpls_lsp_enc_str), 0x0, "", HFILL }},
-
-    {&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",
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }},
-    {&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",
-       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",
-       FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }},
-
-    {&lmp_filter[LMPF_VAL_ERROR_VERIFY_UNKNOWN_CTYPE],
-     { "Verification - Unknown Object C-Type", "lmp.error.verify_unknown_ctype",
-       FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }},
-
-    {&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",
-       FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }},
-    {&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",
-       FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_UNKNOWN_TEL_CTYPE],
-     { "Summary - Bad TE Link C-Type", "lmp.error.summary_unknown_tel_ctype",
-       FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_UNKNOWN_DL_CTYPE],
-     { "Summary - Bad Data Link C-Type", "lmp.error.summary_unknown_dl_ctype",
-       FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_REMOTE_LINK_ID],
-     { "Summary - Bad Remote Link ID", "lmp.error.summary_bad_remote_link_id",
-       FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }},
-    {&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 Parameter", "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",
-       FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_TRACE_UNSUPPORTED_TYPE],
-     { "Trace - Unsupported trace type", "lmp.error.trace_unsupported_type",
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_TRACE_INVALID_MSG],
-     { "Trace - Invalid Trace Message", "lmp.error.trace_invalid_msg",
-       FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_TRACE_UNKNOWN_CTYPE],
-     { "Trace - Unknown Object C-Type", "lmp.error.trace_unknown_ctype",
-       FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_LAD_AREA_ID_MISMATCH],
-     { "LAD - Domain Routing Area ID Mismatch detected", "lmp.error.lad_area_id_mismatch",
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_LAD_TCP_ID_MISMATCH],
-     { "LAD - TCP ID Mismatch detected", "lmp.error.lad_tcp_id_mismatch",
-       FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_LAD_DA_DCN_MISMATCH],
-     { "LAD - DA DCN Mismatch detected", "lmp.error.lad_da_dcn_mismatch",
-       FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_LAD_CAPABILITY_MISMATCH],
-     { "LAD - Capability Mismatch detected", "lmp.error.lad_capability_mismatch",
-       FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_ERROR_LAD_UNKNOWN_CTYPE],
-     { "LAD - Unknown Object C-Type", "lmp.error.lad_unknown_ctype",
-       FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }},
-
-    {&lmp_filter[LMPF_VAL_TRACE_LOCAL_TYPE],
-     { "Local Trace Type", "lmp.trace.local_type", FT_UINT16, BASE_DEC,
-       VALS(lmp_trace_type_str), 0x0, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_TRACE_LOCAL_LEN],
-     { "Local Trace Length", "lmp.trace.local_length", FT_UINT16, BASE_DEC,
-       NULL, 0x0, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_TRACE_LOCAL_MSG],
-     { "Local Trace Message", "lmp.trace.local_msg", FT_STRING, BASE_NONE,
-       NULL, 0x0, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_TRACE_REMOTE_TYPE],
-     { "Remote Trace Type", "lmp.trace.remote_type", FT_UINT16, BASE_DEC,
-       VALS(lmp_trace_type_str), 0x0, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_TRACE_REMOTE_LEN],
-     { "Remote Trace Length", "lmp.trace.remote_length", FT_UINT16, BASE_DEC,
-       NULL, 0x0, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_TRACE_REMOTE_MSG],
-     { "Remote Trace Message", "lmp.trace.remote_msg", FT_STRING, BASE_NONE,
-       NULL, 0x0, "", HFILL }},
-
-    {&lmp_filter[LMPF_VAL_TRACE_REQ_TYPE],
-     { "Trace Type", "lmp.trace_req.type", FT_UINT16, BASE_DEC,
-       VALS(lmp_trace_type_str), 0x0, "", HFILL }},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS],
-     { "Service Config - Supported Signalling Protocols", 
-     "lmp.service_config.sp", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS_RSVP],
-    { " RSVP is supported", "lmp.service_config.sp.rsvp", 
-      FT_BOOLEAN, 8, NULL, 0x01, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS_LDP],
-     { "LDP is supported", "lmp.service_config.sp.ldp", 
-       FT_BOOLEAN, 8, NULL, 0x02, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS],
-     { "Client Port Service Attributes", "lmp.service_config.cpsa", 
-       FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_PATH_OVERHEAD],
-     { "Path/VC Overhead Transparency Supported", 
-       "lmp.service_config.cpsa.path_overhead", 
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_LINE_OVERHEAD],
-     { "Line/MS Overhead Transparency Supported", 
-       "lmp.service_config.cpsa.line_overhead", 
-       FT_BOOLEAN, 8, NULL, 0x02, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_SECTION_OVERHEAD],
-     { "Section/RS Overhead Transparency Supported", 
-       "lmp.service_config.cpsa.section_overhead", 
-       FT_BOOLEAN, 8, NULL, 0x04, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_CCT_FLAGS],
-     { "Contiguous Concatenation Types", "lmp.service_config.cct", 
-       FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_CCT_FLAGS_CC_SUPPORTED],
-     { "Contiguous Concatenation Types Supported", 
-       "lmp.service_config.cpsa.line_overhead", 
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MIN_NCC], 
-     { "Minimum Number of Contiguously Concatenated Components", 
-       "lmp.service_config.cpsa.min_ncc",
-       FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}}, 
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MAX_NCC], 
-     { "Maximum Number of Contiguously Concatenated Components", 
-       "lmp.service_config.cpsa.max_ncc",
-       FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}}, 
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MIN_NVC], 
-     { "Maximum Number of Contiguously Concatenated Components", 
-       "lmp.service_config.cpsa.min_nvc",
-       FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}}, 
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MAX_NVC], 
-     { "Minimum Number of Virtually Concatenated Components", 
-       "lmp.service_config.cpsa.max_nvc",
-       FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_INTERFACE_ID], 
-     { "Local interface id of the client interface referred to", 
-       "lmp.service_config.cpsa.local_ifid",
-       FT_IPv4, BASE_NONE, NULL, 0x0, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS],
-     { "Network Transparency Flags",
-       "lmp.service_config.nsa.transparency",
-       FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS_SOH],
-     { "Standard SOH/RSOH transparency supported",
-       "lmp.service_config.nsa.transparency.soh",
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS_LOH],
-     { "Standard LOH/MSOH transparency supported",
-       "lmp.service_config.nsa.transparency.loh",
-       FT_BOOLEAN, 8, NULL, 0x02, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TCM_FLAGS],
-     { "TCM Monitoring", 
-     "lmp.service_config.nsa.tcm", 
-       FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TCM_FLAGS_TCM_SUPPORTED],
-     { "TCM Monitoring Supported",
-       "lmp.service_config.nsa.transparency.tcm",
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS],
-     { "Network Diversity Flags", 
-     "lmp.service_config.nsa.diversity", 
-       FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL}},
-    
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_NODE],
-     { "Node diversity supported",
-       "lmp.service_config.nsa.diversity.node",
-       FT_BOOLEAN, 8, NULL, 0x01, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_LINK],
-     { "Link diversity supported",
-       "lmp.service_config.nsa.diversity.link",
-       FT_BOOLEAN, 8, NULL, 0x02, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_SRLG],
-     { "SRLG diversity supported",
-       "lmp.service_config.nsa.diversity.srlg",
-       FT_BOOLEAN, 8, NULL, 0x04, "", HFILL}},
-
-    {&lmp_filter[LMPF_VAL_LOCAL_DA_DCN_ADDR],
-     { "Local DA DCN Address", "lmp.local_da_dcn_addr", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_REMOTE_DA_DCN_ADDR],
-     { "Remote DA DCN Address", "lmp.remote_da_dcn_addr", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-
-    {&lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_NODE_ID],
-     { "Node ID", "lmp.local_lad_node_id", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_AREA_ID],
-     { "Area ID", "lmp.local_lad_area_id", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_TE_LINK_ID],
-     { "TE Link ID", "lmp.local_lad_telink_id", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_COMPONENT_ID],
-     { "Component Link ID", "lmp.local_lad_comp_id", FT_UINT32, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_SC_PC_ID],
-     { "SC PC ID", "lmp.local_lad_sc_pc_id", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_SC_PC_ADDR],
-     { "SC PC Address", "lmp.local_lad_sc_pc_addr", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ],
-     { "Subobject", "lmp.lad_info_subobj", FT_NONE, BASE_DEC, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_AREA_ID],
-     { "SC PC Address", "lmp.lad_pri_area_id", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_RC_PC_ID],
-     { "SC PC Address", "lmp.lad_pri_rc_pc_id", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_RC_PC_ADDR],
-     { "SC PC Address", "lmp.lad_pri_rc_pc_addr", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_AREA_ID],
-     { "SC PC Address", "lmp.lad_sec_area_id", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_RC_PC_ID],
-     { "SC PC Address", "lmp.lad_sec_rc_pc_id", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_RC_PC_ADDR],
-     { "SC PC Address", "lmp.lad_sec_rc_pc_addr", FT_IPv4, BASE_NONE, NULL, 0x0,
-       "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SWITCHING_TYPE],
-     { "Interface Switching Capability", "lmp.lad_switching", FT_UINT8, BASE_DEC,
-       VALS(gmpls_switching_type_str), 0x0, "", HFILL }},
-    {&lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_LSP_ENCODING],
-     { "LSP Encoding Type", "lmp.lad_encoding", FT_UINT8, BASE_DEC,
-       VALS(gmpls_lsp_enc_str), 0x0, "", HFILL }},
-};
+static int hf_lmp_filter[LMPF_MAX];
 
 static int
 lmp_valid_class(int class)
 {
     /* Contiguous classes */
-    if (class > LMP_CLASS_NULL && class <= LMP_LAST_CONTIGUOUS_CLASS) 
+    if (class > LMP_CLASS_NULL && class <= LMP_LAST_CONTIGUOUS_CLASS)
        return 1;
 
     /* Noncontiguous classes */
-    if (class == LMP_CLASS_ERROR || 
+    if (class == LMP_CLASS_ERROR ||
         class == LMP_CLASS_TRACE ||
         class == LMP_CLASS_TRACE_REQ ||
-       class == LMP_CLASS_SERVICE_CONFIG || 
+       class == LMP_CLASS_SERVICE_CONFIG ||
         class == LMP_CLASS_DA_DCN_ADDRESS ||
         class == LMP_CLASS_LOCAL_LAD_INFO)
        return 1;
@@ -1198,13 +549,13 @@ static int
 lmp_class_to_filter_num(int class)
 {
 
-    /* 
+    /*
      * The contiguous values can all be handled in the same way. The ERROR and
      * Service Config objects, whose C-Type values are not contiguously assigned,
      * must be handled separately.
      */
     switch (class) {
-       
+
     case LMP_CLASS_CCID:
     case LMP_CLASS_NODE_ID:
     case LMP_CLASS_LINK_ID:
@@ -1223,7 +574,7 @@ lmp_class_to_filter_num(int class)
 
     case LMP_CLASS_ERROR:
        return LMPF_CLASS_ERROR;
-       
+
     case LMP_CLASS_TRACE:
        return LMPF_CLASS_TRACE;
 
@@ -1332,23 +683,19 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
            return 0;
     }
 
-    if (check_col(pinfo->cinfo, COL_PROTOCOL))
-        col_set_str(pinfo->cinfo, COL_PROTOCOL, "LMP");
-    if (check_col(pinfo->cinfo, COL_INFO))
-        col_clear(pinfo->cinfo, COL_INFO);
+    col_set_str(pinfo->cinfo, COL_PROTOCOL, "LMP");
+    col_clear(pinfo->cinfo, COL_INFO);
 
     version = (tvb_get_guint8(tvb, offset+0)) >> 4;
     flags = tvb_get_guint8(tvb, offset+2);
     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). "));
-    }
+    col_add_str(pinfo->cinfo, COL_INFO,
+         val_to_str(message_type, message_type_vals, "Unknown (%u). "));
 
     if (tree) {
        msg_length = tvb_get_ntohs(tvb, offset+4);
        ti = proto_tree_add_item(tree, proto_lmp, tvb, offset, msg_length,
-           FALSE);
+           ENC_NA);
        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,
@@ -1359,11 +706,11 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        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]);
-       proto_tree_add_boolean(lmp_header_flags_tree, lmp_filter[LMPF_HDR_FLAGS_CC_DOWN],
+       proto_tree_add_boolean(lmp_header_flags_tree, hf_lmp_filter[LMPF_HDR_FLAGS_CC_DOWN],
                               tvb, offset+2, 1, flags);
-       proto_tree_add_boolean(lmp_header_flags_tree, lmp_filter[LMPF_HDR_FLAGS_REBOOT],
+       proto_tree_add_boolean(lmp_header_flags_tree, hf_lmp_filter[LMPF_HDR_FLAGS_REBOOT],
                               tvb, offset+2, 1, flags);
-       proto_tree_add_uint(lmp_header_tree, lmp_filter[LMPF_MSG], tvb,
+       proto_tree_add_uint(lmp_header_tree, hf_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);
@@ -1373,7 +720,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         (message_type >= LMP_MSG_SERVICE_CONFIG && message_type <= LMP_MSG_SERVICE_CONFIG_NACK) ||
         (message_type >= LMP_MSG_DISCOVERY_RESP && message_type <= LMP_MSG_DISCOVERY_RESP_NACK) ) {
            hidden_item = proto_tree_add_boolean(lmp_header_tree,
-                                          lmp_filter[lmp_msg_to_filter_num(message_type)],
+                                          hf_lmp_filter[lmp_msg_to_filter_num(message_type)],
                                           tvb, offset+3, 1, 1);
            PROTO_ITEM_SET_HIDDEN(hidden_item);
        } else {
@@ -1382,28 +729,32 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                return tvb_length(tvb);
        }
 
-       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
-              truncated, so we can checksum it. */
-           cksum_vec[0].ptr = tvb_get_ptr(tvb, 0, msg_length);
-           cksum_vec[0].len = msg_length;
-           computed_cksum = in_cksum(&cksum_vec[0], 1);
-
-           if (computed_cksum == 0) {
-               proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2,
-                                   "Message Checksum: 0x%04x [correct]",
-                                   cksum);
-           } else {
-               proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2,
-                                   "Message Checksum: 0x%04x [incorrect, should be 0x%04x]",
-                                   cksum,
-                                   in_cksum_shouldbe(cksum, computed_cksum));
-           }
+       if (lmp_checksum_config) {
+               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
+                      truncated, so we can checksum it. */
+                   cksum_vec[0].ptr = tvb_get_ptr(tvb, 0, msg_length);
+                   cksum_vec[0].len = msg_length;
+                   computed_cksum = in_cksum(&cksum_vec[0], 1);
+
+                   if (computed_cksum == 0) {
+                       proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2,
+                                           "Message Checksum: 0x%04x [correct]",
+                                           cksum);
+                   } else {
+                       proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2,
+                                           "Message Checksum: 0x%04x [incorrect, should be 0x%04x]",
+                                           cksum,
+                                           in_cksum_shouldbe(cksum, computed_cksum));
+                   }
+               } else {
+                   proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2,
+                                       "Message Checksum: 0x%04x",
+                                       cksum);
+               }
        } else {
-           proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2,
-                               "Message Checksum: 0x%04x",
-                               cksum);
+               proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2, "No checksum");
        }
 
        offset += 8;
@@ -1419,16 +770,16 @@ 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");
-         hidden_item = proto_tree_add_uint(lmp_tree, lmp_filter[LMPF_OBJECT], tvb,
+         hidden_item = proto_tree_add_uint(lmp_tree, hf_lmp_filter[LMPF_OBJECT], tvb,
                                     offset, 1, class);
          PROTO_ITEM_SET_HIDDEN(hidden_item);
          if (lmp_valid_class(class)) {
 
-             ti = proto_tree_add_item(lmp_tree, 
-                                      lmp_filter[lmp_class_to_filter_num(class)],
+             ti = proto_tree_add_item(lmp_tree,
+                                      hf_lmp_filter[lmp_class_to_filter_num(class)],
                                       tvb, offset, obj_length, FALSE);
          } else {
-             proto_tree_add_protocol_format(lmp_tree, proto_malformed, tvb, 
+             proto_tree_add_protocol_format(lmp_tree, proto_malformed, tvb,
                                             offset+1, 1,
                                             "Invalid class: %u", class);
              return tvb_length(tvb);
@@ -1440,7 +791,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                    class, type, obj_length,
                                    negotiable ? "Negotiable" : "Not Negotiable");
 
-         lmp_object_header_tree = 
+         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,
@@ -1450,11 +801,11 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
          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_uint(lmp_object_header_tree, hf_lmp_filter[LMPF_VAL_CTYPE],
                              tvb, offset, 1, type);
          offset2 = offset+4;
          mylen = obj_length - 4;
-         
+
          switch (class) {
 
          case LMP_CLASS_NULL:
@@ -1462,82 +813,79 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
          case LMP_CLASS_CCID:
              switch(type) {
-                 
+
              case 1:
                  l = LMPF_VAL_LOCAL_CCID;
                  proto_item_append_text(ti, ": %d", tvb_get_ntohl(tvb, offset2));
-                 proto_tree_add_uint(lmp_object_tree, lmp_filter[l], tvb, 
+                 proto_tree_add_uint(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, tvb_get_ntohl(tvb, offset2));
                  break;
-                 
+
              case 2:
                  l = 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, 
+                 proto_tree_add_uint(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, tvb_get_ntohl(tvb, offset2));
+                 break;
              default:
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen,
                                      "Data (%d bytes)", mylen);
                  break;
              }
              break;
-             
+
          case LMP_CLASS_NODE_ID:
              switch(type) {
-                 
+
              case 1:
                  l = LMPF_VAL_LOCAL_NODE_ID;
-                 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, 
+                 proto_item_append_text(ti, ": %s", tvb_ip_to_str(tvb, offset2));
+                 proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, FALSE);
                  break;
-                 
+
              case 2:
                  l = LMPF_VAL_REMOTE_NODE_ID;
-                 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, 
+                 proto_item_append_text(ti, ": %s", tvb_ip_to_str(tvb, offset2));
+                 proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, FALSE);
                  break;
-                 
+
              default:
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen,
                                      "Data (%d bytes)", mylen);
                  break;
              }
              break;
-             
+
          case LMP_CLASS_LINK_ID:
-             
+
              switch(type) {
-                 
+
              case 1:
              case 2:
                  l = (type == 1)? LMPF_VAL_LOCAL_LINK_ID_IPV4:
                      LMPF_VAL_REMOTE_LINK_ID_IPV4;
-                 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, 
+                 proto_item_append_text(ti, ": IPv4 %s", tvb_ip_to_str(tvb, offset2));
+                 proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, FALSE);
                  break;
-                 
+
              case 3:
              case 4:
                  l = (type == 3)? LMPF_VAL_LOCAL_LINK_ID_IPV6:
                      LMPF_VAL_REMOTE_LINK_ID_IPV6;
-                 proto_item_append_text(ti, ": IPv6 %s",
-                                        ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16)));
+                 proto_item_append_text(ti, ": IPv6 %s", tvb_ip6_to_str(tvb, offset2));
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, 16, "IPv6: %s",
-                                     ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16)));
+                                     tvb_ip6_to_str(tvb, offset2));
                  break;
              case 5:
              case 6:
                  l = (type == 5)? LMPF_VAL_LOCAL_LINK_ID_UNNUM:
                      LMPF_VAL_REMOTE_LINK_ID_UNNUM;
-                 proto_item_append_text(ti, ": Unnumbered %d", 
+                 proto_item_append_text(ti, ": Unnumbered %d",
                                         tvb_get_ntohl(tvb, offset2));
-                 proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, 
+                 proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, FALSE);
                  break;
 
@@ -1549,36 +897,34 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
              break;
 
          case LMP_CLASS_INTERFACE_ID:
-             
+
              switch(type) {
-                 
+
              case 1:
              case 2:
                  l = (type == 1)? LMPF_VAL_LOCAL_INTERFACE_ID_IPV4:
                      LMPF_VAL_REMOTE_INTERFACE_ID_IPV4;
-                 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, 
+                 proto_item_append_text(ti, ": IPv4 %s", tvb_ip_to_str(tvb, offset2));
+                 proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, FALSE);
                  break;
-  
+
              case 3:
              case 4:
                  l = (type == 3)? LMPF_VAL_LOCAL_INTERFACE_ID_IPV6:
                      LMPF_VAL_REMOTE_INTERFACE_ID_IPV6;
-                 proto_item_append_text(ti, ": IPv6 %s",
-                                        ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16)));
+                 proto_item_append_text(ti, ": IPv6 %s", tvb_ip6_to_str(tvb, offset2));
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, 16, "IPv6: %s",
-                                     ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16)));
+                                     tvb_ip6_to_str(tvb, offset2));
                  break;
 
              case 5:
              case 6:
                  l = (type == 5)? LMPF_VAL_LOCAL_INTERFACE_ID_UNNUM:
                      LMPF_VAL_REMOTE_INTERFACE_ID_UNNUM;
-                 proto_item_append_text(ti, ": Unnumbered %d", 
+                 proto_item_append_text(ti, ": Unnumbered %d",
                                         tvb_get_ntohl(tvb, offset2));
-                 proto_tree_add_item(lmp_object_tree, lmp_filter[l], tvb, 
+                 proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, FALSE);
                  break;
 
@@ -1590,24 +936,24 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
              break;
 
          case LMP_CLASS_MESSAGE_ID:
-             
+
              switch(type) {
-                 
+
              case 1:
-                 
+
                  l = LMPF_VAL_MESSAGE_ID;
                  proto_item_append_text(ti, ": %d", tvb_get_ntohl(tvb, offset2));
-                 proto_tree_add_uint(lmp_object_tree, lmp_filter[l], tvb, 
+                 proto_tree_add_uint(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, tvb_get_ntohl(tvb, offset2));
                  break;
-                 
+
              case 2:
                  l = 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, 
+                 proto_tree_add_uint(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, tvb_get_ntohl(tvb, offset2));
                  break;
-                 
+
              default:
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen,
                                        "Data (%d bytes)", mylen);
@@ -1618,42 +964,42 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
          case LMP_CLASS_CONFIG:
 
              switch(type) {
-                 
+
              case 1:
                  proto_item_append_text(ti, ": HelloInterval: %d, HelloDeadInterval: %d",
-                                        tvb_get_ntohs(tvb, offset2), 
+                                        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,
+                                     hf_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],
-                                     tvb, offset2+2, 2, 
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_CONFIG_HELLO_DEAD],
+                                     tvb, offset2+2, 2,
                                      tvb_get_ntohs(tvb, offset2+2));
                  break;
-                 
+
              default:
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen,
                                      "Data (%d bytes)", mylen);
                  break;
              }
              break;
-             
+
          case LMP_CLASS_HELLO:
 
              switch(type) {
-                 
+
              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],
-                                     tvb, offset2, 4, 
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_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],
-                                     tvb, offset2+4, 4, 
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_HELLO_RXSEQ],
+                                     tvb, offset2+4, 4,
                                      tvb_get_ntohl(tvb, offset2+4));
                  break;
 
@@ -1663,42 +1009,42 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                  break;
              }
              break;
-             
+
          case LMP_CLASS_BEGIN_VERIFY:
 
              switch(type) {
 
              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);
-                 
-                 lmp_flags_tree = proto_item_add_subtree(ti2, 
+                 ti2 = proto_tree_add_item(lmp_object_tree,
+                                           hf_lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS],
+                                           tvb, offset2, 2, ENC_BIG_ENDIAN);
+
+                 lmp_flags_tree = proto_item_add_subtree(ti2,
                                                          lmp_subtree[LMP_TREE_BEGIN_VERIFY_FLAGS]);
-                 proto_tree_add_boolean(lmp_flags_tree, 
-                                        lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_ALL_LINKS],
+                 proto_tree_add_boolean(lmp_flags_tree,
+                                        hf_lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_ALL_LINKS],
                                         tvb, offset2, 2, l);
-                 proto_tree_add_boolean(lmp_flags_tree, 
-                                        lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_LINK_TYPE],
+                 proto_tree_add_boolean(lmp_flags_tree,
+                                        hf_lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_LINK_TYPE],
                                         tvb, offset2, 2, l);
                  proto_tree_add_text(lmp_object_tree, tvb, offset2+2, 2,
-                                     "Verify Interval: %d ms", 
+                                     "Verify Interval: %d ms",
                                      tvb_get_ntohs(tvb, offset2+2));
                  proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 4,
-                                     "Number of Data Links: %d", 
+                                     "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],
-                                     tvb, offset2+8, 1, FALSE);
+                 proto_tree_add_item(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_BEGIN_VERIFY_ENCTYPE],
+                                     tvb, offset2+8, 1, ENC_BIG_ENDIAN);
                  proto_tree_add_text(lmp_object_tree, tvb, offset2+10, 2,
-                                     "Verify Transport Mechanism: 0x%0x", 
+                                     "Verify Transport Mechanism: 0x%0x",
                                      tvb_get_ntohs(tvb, offset2+10));
                  proto_tree_add_text(lmp_object_tree, tvb, offset2+12, 4,
-                                     "Transmission Rate: %.3f Mbps", 
+                                     "Transmission Rate: %.3f Mbps",
                                      tvb_get_ntohieee_float(tvb, offset2+12)*8/1000000);
                  proto_tree_add_text(lmp_object_tree, tvb, offset2+16, 4,
-                                     "Wavelength: %d", 
+                                     "Wavelength: %d",
                                      tvb_get_ntohl(tvb, offset2+16));
                  break;
 
@@ -1715,13 +1061,13 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
              case 1:
                  proto_item_append_text(ti, ": VerifyDeadInterval: %d, TransportResponse: 0x%0x",
-                                        tvb_get_ntohs(tvb, offset2), 
+                                        tvb_get_ntohs(tvb, offset2),
                                         tvb_get_ntohs(tvb, offset2+2));
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, 2,
-                                     "VerifyDeadInterval: %d ms", 
+                                     "VerifyDeadInterval: %d ms",
                                      tvb_get_ntohs(tvb, offset2));
                  proto_tree_add_text(lmp_object_tree, tvb, offset2+2, 2,
-                                     "Verify Transport Response: 0x%0x", 
+                                     "Verify Transport Response: 0x%0x",
                                      tvb_get_ntohs(tvb, offset2+2));
                  break;
 
@@ -1731,16 +1077,16 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                  break;
              }
              break;
-             
+
          case LMP_CLASS_VERIFY_ID:
 
              switch(type) {
 
              case 1:
-                 proto_item_append_text(ti, ": %d", 
+                 proto_item_append_text(ti, ": %d",
                                         tvb_get_ntohl(tvb, offset2));
-                 proto_tree_add_uint(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_VERIFY_ID], 
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_VERIFY_ID],
                                      tvb, offset2, 4,
                                      tvb_get_ntohl(tvb, offset2));
                  break;
@@ -1753,60 +1099,60 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
          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,
+                                       hf_lmp_filter[LMPF_VAL_TE_LINK_FLAGS],
                                        tvb, offset2, 1, l);
-             
+
              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_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],
+                                    hf_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],
+                                    hf_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",
-                                        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],
-                                     tvb, offset2+4, 4, FALSE);
-                 proto_tree_add_item(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_TE_LINK_REMOTE_IPV4],
-                                     tvb, offset2+8, 4, FALSE);
+                                        tvb_ip_to_str(tvb, offset2+4),
+                                        tvb_ip_to_str(tvb, offset2+8));
+                 proto_tree_add_item(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_TE_LINK_LOCAL_IPV4],
+                                     tvb, offset2+4, 4, ENC_BIG_ENDIAN);
+                 proto_tree_add_item(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_TE_LINK_REMOTE_IPV4],
+                                     tvb, offset2+8, 4, ENC_BIG_ENDIAN);
                  break;
-                 
+
              case 2:
                  proto_item_append_text(ti, ": IPv6: Local %s, Remote %s",
-                                        ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2+4, 16)),
-                                        ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2+8, 16)));
-                 proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 16, 
+                                        tvb_ip6_to_str(tvb, offset2+4),
+                                        tvb_ip6_to_str(tvb, offset2+8));
+                 proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 16,
                                      "TE-Link Local ID - IPv6: %s",
-                                     ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16)));
-                 proto_tree_add_text(lmp_object_tree, tvb, offset2+20,16, 
+                                     tvb_ip6_to_str(tvb, offset2));
+                 proto_tree_add_text(lmp_object_tree, tvb, offset2+20,16,
                                      "TE-Link Remote ID - IPv6: %s",
-                                     ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2+4, 16)));
+                                     tvb_ip6_to_str(tvb, offset2+4));
                  break;
 
              case 3:
                  proto_item_append_text(ti, ": Unnumbered: Local %d, Remote %d",
-                                        tvb_get_ntohl(tvb, offset2+4), 
+                                        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],
-                                     tvb, offset2+4, 4, FALSE);
-                 
-                 proto_tree_add_item(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_TE_LINK_REMOTE_UNNUM],
-                                     tvb, offset2+8, 4, FALSE);
+
+                 proto_tree_add_item(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_TE_LINK_LOCAL_UNNUM],
+                                     tvb, offset2+4, 4, ENC_BIG_ENDIAN);
+
+                 proto_tree_add_item(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_TE_LINK_REMOTE_UNNUM],
+                                     tvb, offset2+8, 4, ENC_BIG_ENDIAN);
                  break;
              default:
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen,
@@ -1814,64 +1160,64 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                  break;
              }
              break;
-             
+
          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,
+                                       hf_lmp_filter[LMPF_VAL_DATA_LINK_FLAGS],
                                        tvb, offset2, 1, l);
              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_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],
+                                    hf_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],
+                                    hf_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",
-                                        ip_to_str(tvb_get_ptr(tvb, offset2+4, 4)),
-                                        ip_to_str(tvb_get_ptr(tvb, offset2+8, 4)));
+                                        tvb_ip_to_str(tvb, offset2+4),
+                                        tvb_ip_to_str(tvb, offset2+8));
 
-                 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,
+                                     hf_lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_IPV4],
+                                     tvb, offset2+4, 4, ENC_BIG_ENDIAN);
 
-                 proto_tree_add_item(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_IPV4],
-                                     tvb, offset2+8, 4, FALSE);
+                 proto_tree_add_item(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_IPV4],
+                                     tvb, offset2+8, 4, ENC_BIG_ENDIAN);
                  l = 12;
                  break;
 
              case 2:
                  proto_item_append_text(ti, ": IPv6: Local %s, Remote %s",
-                                        ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2+4, 16)),
-                                        ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2+8, 16)));
+                                        tvb_ip6_to_str(tvb, offset2+4),
+                                        tvb_ip6_to_str(tvb, offset2+8));
                  proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 16,
                                      "Data-Link Local ID - IPv6: %s",
-                                     ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2, 16)));
+                                     tvb_ip6_to_str(tvb, offset2));
                  proto_tree_add_text(lmp_object_tree, tvb, offset2+20,16,
                                      "Data-Link Remote ID - IPv6: %s",
-                                     ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2+4, 16)));
+                                     tvb_ip6_to_str(tvb, offset2+4));
                  l = 36;
                  break;
 
              case 3:
                  proto_item_append_text(ti, ": Unnumbered: Local %d, Remote %d",
-                                        tvb_get_ntohl(tvb, offset2+4), 
+                                        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],
-                                     tvb, offset2+4, 4, FALSE);
-                 proto_tree_add_item(lmp_object_tree, lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_UNNUM],
-                                     tvb, offset2+8, 4, FALSE);
+                 proto_tree_add_item(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_UNNUM],
+                                     tvb, offset2+4, 4, ENC_BIG_ENDIAN);
+                 proto_tree_add_item(lmp_object_tree, hf_lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_UNNUM],
+                                     tvb, offset2+8, 4, ENC_BIG_ENDIAN);
                  l = 12;
                  break;
 
@@ -1880,16 +1226,16 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                      "Data (%d bytes)", mylen);
                  break;
              }
-             
+
              while (l < obj_length - 4) {
                  mylen = tvb_get_guint8(tvb, offset2+l+1);
-                 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, 
+                 ti2 = proto_tree_add_item(lmp_object_tree,
+                                           hf_lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ],
+                                           tvb, offset2+l, mylen, ENC_NA);
+                 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,
-                                     "Subobject Type: %d", 
+                                     "Subobject Type: %d",
                                      tvb_get_guint8(tvb, offset2+l));
 
                  proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+1, 1,
@@ -1901,18 +1247,18 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                      proto_item_set_text(ti2, "Interface Switching Capability: "
                                          "Switching Cap: %s, Encoding Type: %s, "
                                          "Min BW: %.3f Mbps, Max BW: %.3f Mbps",
-                                         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),
-                                                    gmpls_lsp_enc_str, "Unknown (%d)"),
+                                         rval_to_str(tvb_get_guint8(tvb, offset2+l+2),
+                                                    gmpls_switching_type_rvals, "Unknown (%d)"),
+                                         rval_to_str(tvb_get_guint8(tvb, offset2+l+3),
+                                                    gmpls_lsp_enc_rvals, "Unknown (%d)"),
                                          tvb_get_ntohieee_float(tvb, offset2+l+4)*8/1000000,
                                          tvb_get_ntohieee_float(tvb, offset2+l+8)*8/1000000);
                      proto_tree_add_item(lmp_subobj_tree,
-                                         lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_SWITCHING_TYPE],
-                                         tvb, offset2+l+2, 1, FALSE);
+                                         hf_lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_SWITCHING_TYPE],
+                                         tvb, offset2+l+2, 1, ENC_BIG_ENDIAN);
                      proto_tree_add_item(lmp_subobj_tree,
-                                         lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_LSP_ENCODING],
-                                         tvb, offset2+l+3, 1, FALSE);
+                                         hf_lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_LSP_ENCODING],
+                                         tvb, offset2+l+3, 1, ENC_BIG_ENDIAN);
                      proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+4, 4,
                                          "Minimum Reservable Bandwidth: %.3f Mbps",
                                          tvb_get_ntohieee_float(tvb, offset2+l+4)*8/1000000);
@@ -1920,7 +1266,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                          "Maximum Reservable Bandwidth: %.3f Mbps",
                                          tvb_get_ntohieee_float(tvb, offset2+l+8)*8/1000000);
                      break;
-                     
+
                  case 2:
                      proto_item_set_text(ti2, "Wavelength: %d",
                                          tvb_get_ntohl(tvb, offset2+l+2));
@@ -1928,7 +1274,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                          "Wavelength: %d",
                                          tvb_get_ntohl(tvb, offset2+l+4));
                      break;
-                     
+
                  default:
                      proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l,
                                          tvb_get_guint8(tvb, offset2+l+1),
@@ -1939,9 +1285,9 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                      THROW(ReportedBoundsError);
                  l += tvb_get_guint8(tvb, offset2+l+1);
              }
-             
+
              break;
-             
+
          case LMP_CLASS_CHANNEL_STATUS:
 
              k = 0; j = 0;
@@ -1963,38 +1309,36 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
                  ti2 = proto_tree_add_text(lmp_object_tree, tvb, offset2+l, k,
                                            "Interface-Id");
-                 lmp_subobj_tree = proto_item_add_subtree(ti2, 
+                 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",
-                                                ip_to_str(tvb_get_ptr(tvb, offset2+l, 4)));
+                                                tvb_ip_to_str(tvb, offset2+l));
                      proto_item_append_text(ti2, ": IPv4 %s",
-                                            ip_to_str(tvb_get_ptr(tvb, offset2+l, 4)));
+                                            tvb_ip_to_str(tvb, offset2+l));
                      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)));
+                                         tvb_ip_to_str(tvb, offset2+l));
                      l += 4;
                      break;
 
                  case 2:
                      if (j < 4)
-                         proto_item_append_text(ti, ": [IPv6-%s",
-                                                ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2+l, 16)));
-                     proto_item_append_text(ti2, ": IPv6 %s",
-                                            ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2+l, 16)));
+                         proto_item_append_text(ti, ": [IPv6-%s", tvb_ip6_to_str(tvb, offset2+l));
+                     proto_item_append_text(ti2, ": IPv6 %s", tvb_ip6_to_str(tvb, offset2+l));
                      proto_tree_add_text(lmp_subobj_tree, tvb, offset2, 16, "Interface ID: IPv6: %s",
-                                         ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2+l, 16)));
+                                         tvb_ip6_to_str(tvb, offset2+l));
                      l += 16;
                      break;
 
                  case 3:
                      if (j < 4)
-                         proto_item_append_text(ti, ": [Unnum-%d", 
+                         proto_item_append_text(ti, ": [Unnum-%d",
                                                 tvb_get_ntohl(tvb, offset2+l));
-                     proto_item_append_text(ti, ": Unnumbered %d", 
+                     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",
@@ -2009,7 +1353,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                      break;
                  }
                  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" :
@@ -2025,7 +1369,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                      "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, "%s", val_to_str(tvb_get_ntohl(tvb, offset2+l) & 0x7fffffff,
                                                         channel_status_str, "Unknown (%u). "));
                  j++;
                  l += 4;
@@ -2040,13 +1384,13 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                  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)));
+                                         tvb_ip_to_str(tvb, offset2+l));
                      l += 4;
                      break;
 
                  case 2:
                      proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 16, "Interface ID: IPv6: %s",
-                                         ip6_to_str((const struct e_in6_addr *)tvb_get_ptr(tvb, offset2+l,16)));
+                                         tvb_ip6_to_str(tvb, offset2+l));
                      l += 16;
                      break;
 
@@ -2058,7 +1402,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                      break;
 
                  default:
-                     proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 
+                     proto_tree_add_text(lmp_object_tree, tvb, offset2+l,
                                          obj_length-4-l,
                                          "Data (%d bytes)", obj_length-4-l);
                      l = obj_length - 4;
@@ -2066,10 +1410,10 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                  }
              }
              break;
-             
+
          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, hf_lmp_filter[LMPF_VAL_ERROR],
                                        tvb, offset2, 4, l);
 
              switch(type) {
@@ -2080,19 +1424,19 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                         (l&0x02) ? "Unwilling" : "",
                                         (l&0x04) ? "Unsupported-Transport" : "",
                                         (l&0x08) ? "TE-Link-ID" : "");
-                 lmp_flags_tree = proto_item_add_subtree(ti2, 
+                 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],
+                                        hf_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],
+                                        hf_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],
+                                        hf_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],
+                                        hf_lmp_filter[LMPF_VAL_ERROR_VERIFY_TE_LINK_ID],
                                         tvb, offset, 4, l);
                  break;
 
@@ -2104,43 +1448,43 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                           (l&0x08) ? "Bad-Data-Link" : "",
                                           (l&0x10) ? "Bad-TE-Link-CType" : "",
                                           (l&0x20) ? "Bad-Data-Link-CType" : "");
-                   lmp_flags_tree = proto_item_add_subtree(ti2, 
+                   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],
+                                          hf_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],
+                                          hf_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_TE_LINK],
+                                          hf_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],
+                                          hf_lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_DATA_LINK],
                                           tvb, offset, 4, l);
                    proto_tree_add_boolean(lmp_flags_tree,
-                                          lmp_filter[LMPF_VAL_ERROR_SUMMARY_UNKNOWN_TEL_CTYPE],
+                                          hf_lmp_filter[LMPF_VAL_ERROR_SUMMARY_UNKNOWN_TEL_CTYPE],
                                           tvb, offset, 4, l);
                    proto_tree_add_boolean(lmp_flags_tree,
-                                          lmp_filter[LMPF_VAL_ERROR_SUMMARY_UNKNOWN_DL_CTYPE],
+                                          hf_lmp_filter[LMPF_VAL_ERROR_SUMMARY_UNKNOWN_DL_CTYPE],
                                           tvb, offset, 4, l);
                    break;
-                   
+
              case 3:
                  proto_item_append_text(ti, ": TRACE_ERROR: %s%s%s",
                                         (l&0x01) ? "Unsupported Trace Type " : "",
                                         (l&0x02) ? "Invalid Trace Message" : "",
                                         (l&0x10) ? "Unknown Object C-Type" : "");
-                 lmp_flags_tree = proto_item_add_subtree(ti2, 
+                 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_TRACE_UNSUPPORTED_TYPE],
+                                        hf_lmp_filter[LMPF_VAL_ERROR_TRACE_UNSUPPORTED_TYPE],
                                         tvb, offset, 4, l);
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_ERROR_TRACE_INVALID_MSG],
+                                        hf_lmp_filter[LMPF_VAL_ERROR_TRACE_INVALID_MSG],
                                         tvb, offset, 4, l);
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_ERROR_TRACE_UNKNOWN_CTYPE],
+                                        hf_lmp_filter[LMPF_VAL_ERROR_TRACE_UNKNOWN_CTYPE],
                                         tvb, offset, 4, l);
                  break;
 
@@ -2151,22 +1495,22 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                         (l&0x04) ? "DA DCN mismatch" : "",
                                         (l&0x08) ? "Capability mismatch" : "",
                                         (l&0x10) ? "Unknown Object C-Type" : "");
-                 lmp_flags_tree = proto_item_add_subtree(ti2, 
+                 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_LAD_AREA_ID_MISMATCH],
+                                        hf_lmp_filter[LMPF_VAL_ERROR_LAD_AREA_ID_MISMATCH],
                                         tvb, offset, 4, l);
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_ERROR_LAD_TCP_ID_MISMATCH],
+                                        hf_lmp_filter[LMPF_VAL_ERROR_LAD_TCP_ID_MISMATCH],
                                         tvb, offset, 4, l);
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_ERROR_LAD_DA_DCN_MISMATCH],
+                                        hf_lmp_filter[LMPF_VAL_ERROR_LAD_DA_DCN_MISMATCH],
                                         tvb, offset, 4, l);
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_ERROR_LAD_CAPABILITY_MISMATCH],
+                                        hf_lmp_filter[LMPF_VAL_ERROR_LAD_CAPABILITY_MISMATCH],
                                         tvb, offset, 4, l);
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_ERROR_LAD_UNKNOWN_CTYPE],
+                                        hf_lmp_filter[LMPF_VAL_ERROR_LAD_UNKNOWN_CTYPE],
                                         tvb, offset, 4, l);
                  break;
 
@@ -2177,26 +1521,26 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                  break;
              }
              break;
-             
+
           case LMP_CLASS_TRACE:
              switch (type) {
              case 1:
                  l = tvb_get_ntohs(tvb, offset2);
-                 proto_tree_add_uint(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_TRACE_LOCAL_TYPE],
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_TRACE_LOCAL_TYPE],
                                      tvb, offset2, 2, l);
                  proto_item_append_text(lmp_object_tree, ": %s",
                                         val_to_str(l, lmp_trace_type_str, "Unknown (%d)"));
 
                  l = tvb_get_ntohs(tvb, offset2+2);
-                 proto_tree_add_uint(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_TRACE_LOCAL_LEN],
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_TRACE_LOCAL_LEN],
                                      tvb, offset2+2, 2, l);
                  if (l && l <= obj_length - 8) {
                    proto_item_append_text(lmp_object_tree, " = %s",
                                           tvb_format_text(tvb, offset2+4, l));
-                   proto_tree_add_string(lmp_object_tree, 
-                                         lmp_filter[LMPF_VAL_TRACE_LOCAL_MSG],
+                   proto_tree_add_string(lmp_object_tree,
+                                         hf_lmp_filter[LMPF_VAL_TRACE_LOCAL_MSG],
                                          tvb, offset2+4, l, tvb_format_text(tvb,
                                                                             offset2+4,l));
                  }
@@ -2207,20 +1551,20 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
              case 2:
                  l = tvb_get_ntohs(tvb, offset2);
-                 proto_tree_add_uint(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_TRACE_REMOTE_TYPE],
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_TRACE_REMOTE_TYPE],
                                      tvb, offset2, 2, l);
                  proto_item_append_text(lmp_object_tree, ": %s",
                                         val_to_str(l, lmp_trace_type_str, "Unknown (%d)"));
 
                  l = tvb_get_ntohs(tvb, offset2+2);
-                 proto_tree_add_uint(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_TRACE_REMOTE_LEN],
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_TRACE_REMOTE_LEN],
                                      tvb, offset2+2, 2, l);
                  proto_item_append_text(lmp_object_tree, " = %s",
                                         tvb_format_text(tvb, offset2+4, l));
-                 proto_tree_add_string(lmp_object_tree, 
-                                       lmp_filter[LMPF_VAL_TRACE_REMOTE_MSG],
+                 proto_tree_add_string(lmp_object_tree,
+                                       hf_lmp_filter[LMPF_VAL_TRACE_REMOTE_MSG],
                                        tvb, offset2+4, l, tvb_format_text(tvb, offset2+4,l));
                  break;
 
@@ -2228,7 +1572,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen,
                                      "Data (%d bytes)", mylen);
                  break;
-              
+
              }
              break;
 
@@ -2236,8 +1580,8 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
              switch (type) {
              case 1:
                  l = tvb_get_ntohs(tvb, offset2);
-                 proto_tree_add_uint(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_TRACE_REQ_TYPE],
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_TRACE_REQ_TYPE],
                                      tvb, offset2, 2, l);
                  proto_item_append_text(lmp_object_tree, ": %s",
                                         val_to_str(l, lmp_trace_type_str, "Unknown (%d)"));
@@ -2247,7 +1591,7 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen,
                                      "Data (%d bytes)", mylen);
                  break;
-              
+
              }
              break;
 
@@ -2258,49 +1602,49 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
              case 1:
                  /* Supported Signaling Protocols Object */
-                 
+
                  /* Signaling Protocols */
                  l = tvb_get_guint8(tvb, offset2);
-                 
-                 ti2 = proto_tree_add_uint(lmp_object_tree, 
-                                           lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS],
+
+                 ti2 = proto_tree_add_uint(lmp_object_tree,
+                                           hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS],
                                            tvb, offset2, 1, l);
                  proto_item_append_text(ti2, ": %s %s",
                                         (l & 0x01) ? "RSVP-based UNI signaling supported " : "",
                                         (l & 0x02) ? "LDP-based UNI signaling supported " : "");
-                 
-                 lmp_flags_tree = proto_item_add_subtree(ti2, 
+
+                 lmp_flags_tree = proto_item_add_subtree(ti2,
                                                          lmp_subtree[LMP_TREE_SERVICE_CONFIG_SP_FLAGS]);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS_RSVP],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS_RSVP],
                                         tvb, offset2, 1, l);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS_LDP],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS_LDP],
                                         tvb, offset2, 1, l);
-                 
+
                  /* UNI version */
-                 proto_tree_add_text(lmp_object_tree, tvb, offset2+1, 1, 
-                                     "UNI Version: %u", 
+                 proto_tree_add_text(lmp_object_tree, tvb, offset2+1, 1,
+                                     "UNI Version: %u",
                                      tvb_get_guint8(tvb, offset2+1));
                  break;
-                 
+
              case 2:
                  /* Client Port-Level Service Attributes Object */
-                 
+
                  /* Link Type */
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, 1,
                                      "Link Type: %s",
                                      val_to_str(tvb_get_guint8(tvb, offset2),
-                                                service_attribute_link_type_str, 
+                                                service_attribute_link_type_str,
                                                 "UNK (%u). "));
-                 
-                 proto_item_append_text(lmp_object_tree, 
+
+                 proto_item_append_text(lmp_object_tree, "%s",
                                         val_to_str(tvb_get_guint8(tvb, offset2),
                                                    service_attribute_link_type_str,
                                                    "Unknown (%u). "));
-                 
+
                  l = tvb_get_guint8(tvb, offset2+1);
                  /* Signal type for SDH */
                  if (l == LMP_CLASS_SERVICE_CONFIG_CPSA_SIGNAL_TYPES_SDH) {
@@ -2310,13 +1654,13 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                          val_to_str(tvb_get_guint8(tvb, offset2+1),
                                                     service_attribute_signal_types_sdh_str,
                                                     "Unknown (%u).  "));
-                     
-                     proto_item_append_text(lmp_object_tree,
+
+                     proto_item_append_text(lmp_object_tree, "%s",
                                             val_to_str(tvb_get_guint8(tvb, offset2+1),
                                                        service_attribute_signal_types_sdh_str,
                                                        "Unknown (%u).   "));
                  }
-                 
+
                  if (l == LMP_CLASS_SERVICE_CONFIG_CPSA_SIGNAL_TYPES_SONET) {
                      /* Signal types for a SONET link */
                      proto_tree_add_text(lmp_object_tree, tvb, offset2+1, 1,
@@ -2324,227 +1668,226 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                          val_to_str(tvb_get_guint8(tvb, offset2+1),
                                                     service_attribute_signal_types_sonet_str,
                                                     "Unknown (%u).  "));
-                     
-                     proto_item_append_text(lmp_object_tree,
+
+                     proto_item_append_text(lmp_object_tree, "%s",
                                             val_to_str(tvb_get_guint8(tvb, offset2+1),
                                                        service_attribute_signal_types_sonet_str,
                                                        "Unknown (%u).   "));
                  }
-                 
+
                  /* TP Transparency */
                  l = tvb_get_guint8(tvb, offset2+2);
-                 ti2 = proto_tree_add_uint(lmp_object_tree, 
-                                           lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS],
+                 ti2 = proto_tree_add_uint(lmp_object_tree,
+                                           hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS],
                                            tvb, offset2+2, 1, l);
-                 
+
                  proto_item_append_text(ti2, ": %s%s%s",
                                         (l & 0x01) ? "Path/VC Overhead Transparency " : "",
                                         (l & 0x02) ? "Line/MS Overhead Transparency " : "",
                                         (l & 0x04) ? "Section/RS Overhead Transparency " : "");
-                 
-                 lmp_flags_tree = proto_item_add_subtree(ti2, 
+
+                 lmp_flags_tree = proto_item_add_subtree(ti2,
                                                          lmp_subtree[LMP_TREE_SERVICE_CONFIG_CPSA_TP_FLAGS]);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_PATH_OVERHEAD],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_PATH_OVERHEAD],
                                         tvb, offset2+2, 1, l);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_LINE_OVERHEAD],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_LINE_OVERHEAD],
                                         tvb, offset2+2, 1, l);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_SECTION_OVERHEAD],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_SECTION_OVERHEAD],
                                         tvb, offset2+2, 1, l);
-                 
+
                  /* Contiguous Concatentation Types */
                  l = tvb_get_guint8(tvb, offset2+3);
-                 ti2 = proto_tree_add_uint(lmp_object_tree, 
-                                           lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_CCT_FLAGS],
+                 ti2 = proto_tree_add_uint(lmp_object_tree,
+                                           hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_CCT_FLAGS],
                                            tvb, offset2+3, 1, l);
-                 
-                 lmp_flags_tree = proto_item_add_subtree(ti2, 
+
+                 lmp_flags_tree = proto_item_add_subtree(ti2,
                                                          lmp_subtree[LMP_TREE_SERVICE_CONFIG_CPSA_CCT_FLAGS]);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_CCT_FLAGS_CC_SUPPORTED],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_CCT_FLAGS_CC_SUPPORTED],
                                         tvb, offset2+3, 1, l);
-                 
+
                  /* Min and Max NCC */
                  proto_item_append_text(ti, ": Minimum NCC: %d, Maximum NCC: %d",
-                                        tvb_get_ntohs(tvb, offset2+4), 
+                                        tvb_get_ntohs(tvb, offset2+4),
                                         tvb_get_ntohs(tvb, offset2+6));
-                 
-                 proto_tree_add_uint(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MIN_NCC],
-                                     tvb, offset2+4, 2, 
+
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MIN_NCC],
+                                     tvb, offset2+4, 2,
                                      tvb_get_ntohs(tvb, offset2+4));
-                 
-                 proto_tree_add_uint(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MAX_NCC],
-                                     tvb, offset2+6, 2, 
+
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MAX_NCC],
+                                     tvb, offset2+6, 2,
                                      tvb_get_ntohs(tvb, offset2+6));
-                 
+
                  /* Min and Max NVC */
                  proto_item_append_text(ti, ": Minimum NVC: %d, Maximum NVC: %d",
-                                        tvb_get_ntohs(tvb, offset2+8), 
+                                        tvb_get_ntohs(tvb, offset2+8),
                                         tvb_get_ntohs(tvb, offset2+10));
-                 
-                 proto_tree_add_uint(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MIN_NVC],
-                                     tvb, offset2+8, 2, 
+
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MIN_NVC],
+                                     tvb, offset2+8, 2,
                                      tvb_get_ntohs(tvb, offset2+8));
-                 
-                 proto_tree_add_uint(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MAX_NVC],
-                                     tvb, offset2+10, 2, 
+
+                 proto_tree_add_uint(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MAX_NVC],
+                                     tvb, offset2+10, 2,
                                      tvb_get_ntohs(tvb, offset2+10));
-                 
+
                  /* Local interface ID */
                  proto_item_append_text(ti, ": Local Interface ID %s",
-                                        ip_to_str(tvb_get_ptr(tvb, offset2+12, 4)));
-                 
-                 proto_tree_add_item(lmp_object_tree, 
-                                     lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_INTERFACE_ID],
-                                     tvb, offset2+12, 4, FALSE);
-                 
+                                        tvb_ip_to_str(tvb, offset2+12));
+
+                 proto_tree_add_item(lmp_object_tree,
+                                     hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_INTERFACE_ID],
+                                     tvb, offset2+12, 4, ENC_BIG_ENDIAN);
+
                  break;
-                 
+
              case 3:
 
                  /* Network Transparency Support and TCM Monitoring Object */
-                 
+
                  /* Transparency */
                  l = tvb_get_ntohl(tvb, offset2);
-                 ti2 = proto_tree_add_uint(lmp_object_tree, 
-                                           lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS],
+                 ti2 = proto_tree_add_uint(lmp_object_tree,
+                                           hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS],
                                            tvb, offset2, 4, l);
-                 
+
                  proto_item_append_text(ti2, ": %s %s",
                                         (l & 0x01) ? "Standard SOH/RSOH transparency supported " : "",
                                         (l & 0x02) ? "Standard LOH/MSOH transparency supported " : "");
-                 
-                 lmp_flags_tree = proto_item_add_subtree(ti2, 
+
+                 lmp_flags_tree = proto_item_add_subtree(ti2,
                                                          lmp_subtree[LMP_TREE_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS]);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS_SOH],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS_SOH],
                                         tvb, offset2, 4, l);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS_LOH],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS_LOH],
                                         tvb, offset2, 4, l);
-                 
+
                  /* TCM Monitoring */
                  l = tvb_get_guint8(tvb, offset2+7);
-                 
+
                  ti2 = proto_tree_add_uint(lmp_object_tree,
-                                           lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TCM_FLAGS],
+                                           hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TCM_FLAGS],
                                            tvb, offset2+7, 1, l);
-                 
+
                  proto_item_append_text(ti2, ": %s",
                                         (l & 0x01) ? "Transparent Support of TCM available " :  "");
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TCM_FLAGS_TCM_SUPPORTED],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TCM_FLAGS_TCM_SUPPORTED],
                                         tvb, offset2+7, 1, l);
-                 
+
                  break;
-                 
+
              case 4:
-                 
+
                  /* Network Diversity Object */
                  l = tvb_get_guint8(tvb,offset2+3);
-                 
-                 ti2 = proto_tree_add_uint(lmp_object_tree, 
-                                           lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS],
+
+                 ti2 = proto_tree_add_uint(lmp_object_tree,
+                                           hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS],
                                            tvb, offset2+3, 1, l);
-                 
+
                  proto_item_append_text(ti2, ": %s%s%s",
                                         (l & 0x01) ? "Node Diversity is supported " :  "",
                                         (l & 0x02) ? "Link Diversity is supported " : "",
                                         (l & 0x04) ? "SRLG Diversity is supported " : "");
-                 
-                 
-                 lmp_flags_tree = proto_item_add_subtree(ti2, 
+
+
+                 lmp_flags_tree = proto_item_add_subtree(ti2,
                                                          lmp_subtree[LMP_TREE_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS]);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_NODE],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_NODE],
                                         tvb, offset2+3, 1, l);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_LINK],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_LINK],
                                         tvb, offset2+3, 1, l);
-                 
+
                  proto_tree_add_boolean(lmp_flags_tree,
-                                        lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_SRLG],
+                                        hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_SRLG],
                                         tvb, offset2+3, 1, l);
                  break;
-                 
+
              default:
                  /* Unknown type in Service Config object */
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen,
                                      "Data (%d bytes)", mylen);
                  break;
              }
-             
+             break;
+
          case LMP_CLASS_DA_DCN_ADDRESS:
              switch(type) {
-                 
+
              case 1:
                  l = LMPF_VAL_LOCAL_DA_DCN_ADDR;
-                 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, 
+                 proto_item_append_text(ti, ": %s", tvb_ip_to_str(tvb, offset2));
+                 proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, FALSE);
                  break;
-                 
+
              case 2:
                  l = LMPF_VAL_REMOTE_DA_DCN_ADDR;
-                 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, 
+                 proto_item_append_text(ti, ": %s", tvb_ip_to_str(tvb, offset2));
+                 proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
                                      offset2, 4, FALSE);
                  break;
-                 
+
              default:
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen,
                                      "Data (%d bytes)", mylen);
                  break;
              }
              break;
-             
+
 
          case LMP_CLASS_LOCAL_LAD_INFO:
              switch(type) {
                case 1:
                  proto_item_append_text(ti, ": IPv4");
                  proto_tree_add_item(lmp_object_tree,
-                                     lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_NODE_ID],
-                                     tvb, offset2, 4, FALSE);
+                                     hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_NODE_ID],
+                                     tvb, offset2, 4, ENC_BIG_ENDIAN);
                  proto_tree_add_item(lmp_object_tree,
-                                     lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_AREA_ID],
-                                     tvb, offset2+4, 4, FALSE);
+                                     hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_AREA_ID],
+                                     tvb, offset2+4, 4, ENC_BIG_ENDIAN);
                  proto_tree_add_item(lmp_object_tree,
-                                     lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_TE_LINK_ID],
-                                     tvb, offset2+8, 4, FALSE);
+                                     hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_TE_LINK_ID],
+                                     tvb, offset2+8, 4, ENC_BIG_ENDIAN);
                  proto_tree_add_item(lmp_object_tree,
-                                     lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_COMPONENT_ID],
-                                     tvb, offset2+12, 4, FALSE);
+                                     hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_COMPONENT_ID],
+                                     tvb, offset2+12, 4, ENC_BIG_ENDIAN);
                  proto_tree_add_item(lmp_object_tree,
-                                     lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_SC_PC_ID],
-                                     tvb, offset2+16, 4, FALSE);
+                                     hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_SC_PC_ID],
+                                     tvb, offset2+16, 4, ENC_BIG_ENDIAN);
                  proto_tree_add_item(lmp_object_tree,
-                                     lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_SC_PC_ADDR],
-                                     tvb, offset2+20, 4, FALSE);
+                                     hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_SC_PC_ADDR],
+                                     tvb, offset2+20, 4, ENC_BIG_ENDIAN);
                  l = 24;
                  while (l < obj_length - 4) {
                    mylen = tvb_get_guint8(tvb, offset2+l+1);
-                   ti2 = proto_tree_add_item(lmp_object_tree, 
-                                           lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ],
-                                           tvb, offset2+l, mylen, FALSE);
-                   lmp_subobj_tree = proto_item_add_subtree(ti2, 
+                   ti2 = proto_tree_add_item(lmp_object_tree,
+                                           hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ],
+                                           tvb, offset2+l, mylen, ENC_NA);
+                   lmp_subobj_tree = proto_item_add_subtree(ti2,
                                                             lmp_subtree[LMP_TREE_LAD_INFO_SUBOBJ]);
                    proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l, 1,
                                        "Subobject Type: %d", tvb_get_guint8(tvb, offset2+l));
@@ -2564,51 +1907,51 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                        proto_item_set_text(ti2, "Primary Routing Controller: "
                                            "Area ID: %s, RC PC ID: %s, "
                                            "RC PC Addr: %s",
-                                           ip_to_str(tvb_get_ptr(tvb, offset2+l+4, 4)),
-                                           ip_to_str(tvb_get_ptr(tvb, offset2+l+8, 4)),
-                                           ip_to_str(tvb_get_ptr(tvb, offset2+l+12, 4)));
+                                           tvb_ip_to_str(tvb, offset2+l+4),
+                                           tvb_ip_to_str(tvb, offset2+l+8),
+                                           tvb_ip_to_str(tvb, offset2+l+12));
                        proto_tree_add_item(lmp_subobj_tree,
-                                           lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_AREA_ID],
-                                           tvb, offset2+l+4, 4, FALSE);
+                                           hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_AREA_ID],
+                                           tvb, offset2+l+4, 4, ENC_BIG_ENDIAN);
                        proto_tree_add_item(lmp_subobj_tree,
-                                           lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_RC_PC_ID],
-                                           tvb, offset2+l+8, 4, FALSE);
+                                           hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_RC_PC_ID],
+                                           tvb, offset2+l+8, 4, ENC_BIG_ENDIAN);
                        proto_tree_add_item(lmp_subobj_tree,
-                                           lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_RC_PC_ADDR],
-                                           tvb, offset2+l+12, 4, FALSE);
+                                           hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_RC_PC_ADDR],
+                                           tvb, offset2+l+12, 4, ENC_BIG_ENDIAN);
                        break;
-                     
+
                      case 251:
                        proto_item_set_text(ti2, "Secondary Routing Controller: "
                                            "Area ID: %s, RC PC ID: %s, "
                                            "RC PC Addr: %s",
-                                           ip_to_str(tvb_get_ptr(tvb, offset2+l+4, 4)),
-                                           ip_to_str(tvb_get_ptr(tvb, offset2+l+8, 4)),
-                                           ip_to_str(tvb_get_ptr(tvb, offset2+l+12, 4)));
+                                           tvb_ip_to_str(tvb, offset2+l+4),
+                                           tvb_ip_to_str(tvb, offset2+l+8),
+                                           tvb_ip_to_str(tvb, offset2+l+12));
                        proto_tree_add_item(lmp_subobj_tree,
-                                           lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_AREA_ID],
-                                           tvb, offset2+l+4, 4, FALSE);
+                                           hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_AREA_ID],
+                                           tvb, offset2+l+4, 4, ENC_BIG_ENDIAN);
                        proto_tree_add_item(lmp_subobj_tree,
-                                           lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_RC_PC_ID],
-                                           tvb, offset2+l+8, 4, FALSE);
+                                           hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_RC_PC_ID],
+                                           tvb, offset2+l+8, 4, ENC_BIG_ENDIAN);
                        proto_tree_add_item(lmp_subobj_tree,
-                                           lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_RC_PC_ADDR],
-                                           tvb, offset2+l+12, 4, FALSE);
+                                           hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_RC_PC_ADDR],
+                                           tvb, offset2+l+12, 4, ENC_BIG_ENDIAN);
                        break;
-                     
+
                      case 252:
                        proto_item_set_text(ti2, "SONET/SDH Layer Capability: "
                                            "Switching Cap: %s, Encoding Type: %s",
-                                           val_to_str(tvb_get_guint8(tvb, offset2+l+4),
-                                                      gmpls_switching_type_str, "Unknown (%d)"),
-                                           val_to_str(tvb_get_guint8(tvb, offset2+l+5),
-                                                      gmpls_lsp_enc_str, "Unknown (%d)"));
+                                           rval_to_str(tvb_get_guint8(tvb, offset2+l+4),
+                                                      gmpls_switching_type_rvals, "Unknown (%d)"),
+                                           rval_to_str(tvb_get_guint8(tvb, offset2+l+5),
+                                                      gmpls_lsp_enc_rvals, "Unknown (%d)"));
                        proto_tree_add_item(lmp_subobj_tree,
-                                           lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SWITCHING_TYPE],
-                                           tvb, offset2+l+4, 1, FALSE);
+                                           hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SWITCHING_TYPE],
+                                           tvb, offset2+l+4, 1, ENC_BIG_ENDIAN);
                        proto_tree_add_item(lmp_subobj_tree,
-                                           lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_LSP_ENCODING],
-                                           tvb, offset2+l+5, 1, FALSE);
+                                           hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_LSP_ENCODING],
+                                           tvb, offset2+l+5, 1, ENC_BIG_ENDIAN);
 
                        for (j = 0; j < (mylen - 8) / 4; j++) {
                          proto_tree_add_text(lmp_subobj_tree, tvb, offset2+l+8+(j*4), 4,
@@ -2631,16 +1974,16 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                      THROW(ReportedBoundsError);
                  l += tvb_get_guint8(tvb, offset2+l+1);
              }
-             
+
                  break;
-                 
+
              default:
                  proto_tree_add_text(lmp_object_tree, tvb, offset2, mylen,
                                      "Data (%d bytes)", mylen);
                  break;
              }
              break;
-             
+
 
 
          default:
@@ -2648,24 +1991,24 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                  "Data (%d bytes)", mylen);
              break;
          }
-         
+
          if (obj_length < 1)
              THROW(ReportedBoundsError);
          offset += obj_length;
          len += obj_length;
-         
+
        } /* while */
     } /* tree */
-    
+
     return tvb_length(tvb);
 }
 static void
 lmp_prefs_applied (void)
 {
     if (lmp_udp_port != lmp_udp_port_config) {
-       dissector_delete("udp.port", lmp_udp_port, lmp_handle);
+       dissector_delete_uint("udp.port", lmp_udp_port, lmp_handle);
        lmp_udp_port = lmp_udp_port_config;
-       dissector_add("udp.port", lmp_udp_port, lmp_handle);
+       dissector_add_uint("udp.port", lmp_udp_port, lmp_handle);
     }
 }
 
@@ -2679,6 +2022,9 @@ register_lmp_prefs (void)
     prefs_register_uint_preference(
        lmp_module, "udp_port", "LMP UDP Port",
        "UDP port number to use for LMP", 10, &lmp_udp_port_config);
+    prefs_register_bool_preference(
+       lmp_module, "checksum", "LMP checksum field",
+       "Whether LMP contains a checksum which can be checked", &lmp_checksum_config);
     prefs_register_obsolete_preference(
         lmp_module, "version");
 }
@@ -2688,12 +2034,658 @@ proto_register_lmp(void)
 {
     static gint *ett[NUM_LMP_SUBTREES];
     int i;
-    
+
+       static hf_register_info lmpf_info[] = {
+
+          /* Message type number */
+          {&hf_lmp_filter[LMPF_MSG],
+               { "Message Type", "lmp.msg", FT_UINT8, BASE_DEC, VALS(message_type_vals), 0x0,
+                       NULL, HFILL }},
+
+          /* Message type shorthands */
+          {&hf_lmp_filter[LMPF_MSG_CONFIG],
+               { "Config Message", "lmp.msg.config", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_CONFIG_ACK],
+               { "ConfigAck Message", "lmp.msg.configack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_CONFIG_NACK],
+               { "ConfigNack Message", "lmp.msg.confignack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_HELLO],
+               { "HELLO Message", "lmp.msg.hello", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_BEGIN_VERIFY],
+               { "BeginVerify Message", "lmp.msg.beginverify", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_BEGIN_VERIFY_ACK],
+               { "BeginVerifyAck Message", "lmp.msg.beginverifyack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_BEGIN_VERIFY_NACK],
+               { "BeginVerifyNack Message", "lmp.msg.beginverifynack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_END_VERIFY],
+               { "EndVerify Message", "lmp.msg.endverify", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_END_VERIFY_ACK],
+               { "EndVerifyAck Message", "lmp.msg.endverifyack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TEST],
+               { "Test Message", "lmp.msg.test", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TEST_STATUS_SUCCESS],
+               { "TestStatusSuccess Message", "lmp.msg.teststatussuccess", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TEST_STATUS_FAILURE],
+               { "TestStatusFailure Message", "lmp.msg.teststatusfailure", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TEST_STATUS_ACK],
+               { "TestStatusAck Message", "lmp.msg.teststatusack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_LINK_SUMMARY],
+               { "LinkSummary Message", "lmp.msg.linksummary", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_LINK_SUMMARY_ACK],
+               { "LinkSummaryAck Message", "lmp.msg.linksummaryack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_LINK_SUMMARY_NACK],
+               { "LinkSummaryNack Message", "lmp.msg.linksummarynack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_CHANNEL_STATUS],
+               { "ChannelStatus Message", "lmp.msg.channelstatus", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_CHANNEL_STATUS_ACK],
+               { "ChannelStatusAck Message", "lmp.msg.channelstatusack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_CHANNEL_STATUS_REQ],
+               { "ChannelStatusRequest Message", "lmp.msg.channelstatusrequest", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_CHANNEL_STATUS_RESP],
+               { "ChannelStatusResponse Message", "lmp.msg.channelstatusresponse", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TRACE_MONITOR],
+               { "TraceMonitor Message", "lmp.msg.tracemonitor", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TRACE_MONITOR_ACK],
+               { "TraceMonitorAck Message", "lmp.msg.tracemonitorack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TRACE_MONITOR_NACK],
+               { "TraceMonitorNack Message", "lmp.msg.tracemonitornack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TRACE_MISMATCH],
+               { "TraceMismatch Message", "lmp.msg.tracemismatch", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TRACE_MISMATCH_ACK],
+               { "TraceMismatchAck Message", "lmp.msg.tracemismatchack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TRACE_REQUEST],
+               { "TraceRequest Message", "lmp.msg.tracerequest", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TRACE_REPORT],
+               { "TraceReport Message", "lmp.msg.tracereport", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_TRACE_REQUEST_NACK],
+               { "TraceRequestNack Message", "lmp.msg.tracerequestnack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_INSERT_TRACE],
+               { "InsertTrace Message", "lmp.msg.inserttrace", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_INSERT_TRACE_ACK],
+               { "InsertTraceAck Message", "lmp.msg.inserttraceack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_INSERT_TRACE_NACK],
+               { "InsertTraceNack Message", "lmp.msg.inserttracenack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_SERVICE_CONFIG],
+               { "ServiceConfig Message", "lmp.msg.serviceconfig", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_SERVICE_CONFIG_ACK],
+               { "ServiceConfigAck Message", "lmp.msg.serviceconfigack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_SERVICE_CONFIG_NACK],
+               { "ServiceConfigNack Message", "lmp.msg.serviceconfignack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_DISCOVERY_RESP],
+               { "DiscoveryResponse Message", "lmp.msg.discoveryresp", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_DISCOVERY_RESP_ACK],
+               { "DiscoveryResponseAck Message", "lmp.msg.discoveryrespack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_MSG_DISCOVERY_RESP_NACK],
+               { "DiscoveryResponseNack Message", "lmp.msg.discoveryrespnack", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          /* LMP Message Header Fields ------------------- */
+
+          {&hf_lmp_filter[LMPF_HDR_FLAGS],
+               { "LMP Header - Flags", "lmp.hdr.flags", FT_UINT8, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_HDR_FLAGS_CC_DOWN],
+               { "ControlChannelDown", "lmp.hdr.ccdown", FT_BOOLEAN, 8, NULL, 0x01,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_HDR_FLAGS_REBOOT],
+               { "Reboot", "lmp.hdr.reboot", FT_BOOLEAN, 8, NULL, 0x02,
+                       NULL, HFILL }},
+
+          /* LMP object class filters ------------------------------- */
+
+          {&hf_lmp_filter[LMPF_OBJECT],
+               { "LOCAL_CCID", "lmp.object", FT_UINT8, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_CLASS_CCID],
+               { "CCID", "lmp.obj.ccid", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_CLASS_NODE_ID],
+               { "NODE_ID", "lmp.obj.Nodeid", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_CLASS_LINK_ID],
+               { "LINK_ID", "lmp.obj.linkid", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_CLASS_INTERFACE_ID],
+               { "INTERFACE_ID", "lmp.obj.interfaceid", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_CLASS_MESSAGE_ID],
+               { "MESSAGE_ID", "lmp.obj.messageid", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_CLASS_CONFIG],
+               { "CONFIG", "lmp.obj.config", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_CLASS_HELLO],
+               { "HELLO", "lmp.obj.hello", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_CLASS_BEGIN_VERIFY],
+               { "BEGIN_VERIFY", "lmp.obj.begin_verify", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_CLASS_BEGIN_VERIFY_ACK],
+               { "BEGIN_VERIFY_ACK", "lmp.obj.begin_verify_ack", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_CLASS_VERIFY_ID],
+               { "VERIFY_ID", "lmp.obj.verifyid", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_CLASS_TE_LINK],
+               { "TE_LINK", "lmp.obj.te_link", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_CLASS_DATA_LINK],
+               { "DATA_LINK", "lmp.obj.data_link", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_CLASS_CHANNEL_STATUS],
+               { "CHANNEL_STATUS", "lmp.obj.channel_status", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_CLASS_CHANNEL_STATUS_REQUEST],
+               { "CHANNEL_STATUS_REQUEST", "lmp.obj.channel_status_request", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_CLASS_ERROR],
+               { "ERROR", "lmp.obj.error", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_CLASS_TRACE],
+               { "TRACE", "lmp.obj.trace", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_CLASS_TRACE_REQ],
+               { "TRACE REQ", "lmp.obj.trace_req", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_CLASS_SERVICE_CONFIG],
+               { "SERVICE_CONFIG", "lmp.obj.serviceconfig", FT_NONE, BASE_NONE, NULL, 0x0,
+                 NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_CLASS_DA_DCN_ADDRESS],
+               { "DA_DCN_ADDRESS", "lmp.obj.dadcnaddr", FT_NONE, BASE_NONE, NULL, 0x0,
+                 NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_CLASS_LOCAL_LAD_INFO],
+               { "LOCAL_LAD_INFO", "lmp.obj.localladinfo", FT_NONE, BASE_NONE, NULL, 0x0,
+                 NULL, HFILL }},
+
+          /* Other LMP Value Filters ------------------------------ */
+
+          {&hf_lmp_filter[LMPF_VAL_CTYPE],
+               { "Object C-Type", "lmp.obj.ctype", FT_UINT8, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_CCID],
+               { "Local CCID Value", "lmp.local_ccid", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_REMOTE_CCID],
+               { "Remote CCID Value", "lmp.remote_ccid", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_NODE_ID],
+               { "Local Node ID Value", "lmp.local_nodeid", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_REMOTE_NODE_ID],
+               { "Remote Node ID Value", "lmp.remote_nodeid", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_LINK_ID_IPV4],
+               { "Local Link ID - IPv4", "lmp.local_linkid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_LINK_ID_UNNUM],
+               { "Local Link ID - Unnumbered", "lmp.local_linkid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_REMOTE_LINK_ID_IPV4],
+               { "Remote Link ID - IPv4", "lmp.remote_linkid_ipv4", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_REMOTE_LINK_ID_UNNUM],
+               { "Remote Link ID - Unnumbered", "lmp.remote_linkid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_INTERFACE_ID_IPV4],
+               { "Local Interface ID - IPv4", "lmp.local_interfaceid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_INTERFACE_ID_UNNUM],
+               { "Local Interface ID - Unnumbered", "lmp.local_interfaceid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_REMOTE_INTERFACE_ID_IPV4],
+               { "Remote Interface ID - IPv4", "lmp.remote_interfaceid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_REMOTE_INTERFACE_ID_UNNUM],
+               { "Remote Interface ID - Unnumbered", "lmp.remote_interfaceid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_MESSAGE_ID],
+               { "Message-ID Value", "lmp.messageid", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_MESSAGE_ID_ACK],
+               { "Message-ID Ack Value", "lmp.messageid_ack", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_CONFIG_HELLO],
+               { "HelloInterval", "lmp.hellointerval", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_CONFIG_HELLO_DEAD],
+               { "HelloDeadInterval", "lmp.hellodeadinterval", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_HELLO_TXSEQ],
+               { "TxSeqNum", "lmp.txseqnum", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_HELLO_RXSEQ],
+               { "RxSeqNum", "lmp.rxseqnum", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS],
+               { "Flags", "lmp.begin_verify.flags", FT_UINT16, BASE_HEX, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_ALL_LINKS],
+               { "Verify All Links", "lmp.begin_verify.all_links",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_BEGIN_VERIFY_FLAGS_LINK_TYPE],
+               { "Data Link Type", "lmp.begin_verify.link_type",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_BEGIN_VERIFY_ENCTYPE],
+               { "Encoding Type", "lmp.begin_verify.enctype",
+                 FT_UINT8, BASE_DEC|BASE_RANGE_STRING, RVALS(&gmpls_lsp_enc_rvals), 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_VERIFY_ID],
+               { "Verify-ID", "lmp.verifyid", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_TE_LINK_FLAGS],
+               { "TE-Link Flags", "lmp.te_link_flags", FT_UINT8, BASE_HEX, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TE_LINK_FLAGS_FAULT_MGMT],
+               { "Fault Management Supported", "lmp.te_link.fault_mgmt",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TE_LINK_FLAGS_LINK_VERIFY],
+               { "Link Verification Supported", "lmp.te_link.link_verify",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TE_LINK_LOCAL_IPV4],
+               { "TE-Link Local ID - IPv4", "lmp.te_link.local_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TE_LINK_LOCAL_UNNUM],
+               { "TE-Link Local ID - Unnumbered", "lmp.te_link.local_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TE_LINK_REMOTE_IPV4],
+               { "TE-Link Remote ID - IPv4", "lmp.te_link.remote_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TE_LINK_REMOTE_UNNUM],
+               { "TE-Link Remote ID - Unnumbered", "lmp.te_link.remote_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_DATA_LINK_FLAGS],
+               { "Data-Link Flags", "lmp.data_link_flags", FT_UINT8, BASE_HEX, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_DATA_LINK_FLAGS_PORT],
+               { "Data-Link is Individual Port", "lmp.data_link.port",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_DATA_LINK_FLAGS_ALLOCATED],
+               { "Data-Link is Allocated", "lmp.data_link.link_verify",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_IPV4],
+               { "Data-Link Local ID - IPv4", "lmp.data_link.local_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_DATA_LINK_LOCAL_UNNUM],
+               { "Data-Link Local ID - Unnumbered", "lmp.data_link.local_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_IPV4],
+               { "Data-Link Remote ID - IPv4", "lmp.data_link.remote_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_DATA_LINK_REMOTE_UNNUM],
+               { "Data-Link Remote ID - Unnumbered", "lmp.data_link.remote_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ],
+               { "Subobject", "lmp.data_link_subobj", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_SWITCHING_TYPE],
+               { "Interface Switching Capability", "lmp.data_link_switching", FT_UINT8, BASE_DEC|BASE_RANGE_STRING,
+                 RVALS(&gmpls_switching_type_rvals), 0x0, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_DATA_LINK_SUBOBJ_LSP_ENCODING],
+               { "LSP Encoding Type", "lmp.data_link_encoding", FT_UINT8, BASE_DEC|BASE_RANGE_STRING,
+                 RVALS(&gmpls_lsp_enc_rvals), 0x0, NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_ERROR],
+               { "Error Code", "lmp.error", FT_UINT32, BASE_HEX, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_ERROR_VERIFY_UNSUPPORTED_LINK],
+               { "Verification - Unsupported for this TE-Link", "lmp.error.verify_unsupported_link",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_VERIFY_UNWILLING],
+               { "Verification - Unwilling to Verify at this time", "lmp.error.verify_unwilling",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_VERIFY_TRANSPORT],
+               { "Verification - Transport Unsupported", "lmp.error.verify_unsupported_transport",
+                 FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }},
+          {&hf_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, NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_ERROR_VERIFY_UNKNOWN_CTYPE],
+               { "Verification - Unknown Object C-Type", "lmp.error.verify_unknown_ctype",
+                 FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_PARAMETERS],
+               { "Summary - Unacceptable non-negotiable parameters", "lmp.error.summary_bad_params",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_SUMMARY_RENEGOTIATE],
+               { "Summary - Renegotiate Parametere", "lmp.error.summary_renegotiate",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }},
+          {&hf_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, NULL, HFILL }},
+          {&hf_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, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_SUMMARY_UNKNOWN_TEL_CTYPE],
+               { "Summary - Bad TE Link C-Type", "lmp.error.summary_unknown_tel_ctype",
+                 FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_SUMMARY_UNKNOWN_DL_CTYPE],
+               { "Summary - Bad Data Link C-Type", "lmp.error.summary_unknown_dl_ctype",
+                 FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_SUMMARY_BAD_REMOTE_LINK_ID],
+               { "Summary - Bad Remote Link ID", "lmp.error.summary_bad_remote_link_id",
+                 FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_CONFIG_BAD_PARAMETERS],
+               { "Config - Unacceptable non-negotiable parameters", "lmp.error.config_bad_params",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_CONFIG_RENEGOTIATE],
+               { "Config - Renegotiate Parameter", "lmp.error.config_renegotiate",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_CONFIG_BAD_CCID],
+               { "Config - Bad CC ID", "lmp.error.config_bad_ccid",
+                 FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_TRACE_UNSUPPORTED_TYPE],
+               { "Trace - Unsupported trace type", "lmp.error.trace_unsupported_type",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_TRACE_INVALID_MSG],
+               { "Trace - Invalid Trace Message", "lmp.error.trace_invalid_msg",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_TRACE_UNKNOWN_CTYPE],
+               { "Trace - Unknown Object C-Type", "lmp.error.trace_unknown_ctype",
+                 FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_LAD_AREA_ID_MISMATCH],
+               { "LAD - Domain Routing Area ID Mismatch detected", "lmp.error.lad_area_id_mismatch",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_LAD_TCP_ID_MISMATCH],
+               { "LAD - TCP ID Mismatch detected", "lmp.error.lad_tcp_id_mismatch",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_LAD_DA_DCN_MISMATCH],
+               { "LAD - DA DCN Mismatch detected", "lmp.error.lad_da_dcn_mismatch",
+                 FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_LAD_CAPABILITY_MISMATCH],
+               { "LAD - Capability Mismatch detected", "lmp.error.lad_capability_mismatch",
+                 FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_ERROR_LAD_UNKNOWN_CTYPE],
+               { "LAD - Unknown Object C-Type", "lmp.error.lad_unknown_ctype",
+                 FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_TRACE_LOCAL_TYPE],
+               { "Local Trace Type", "lmp.trace.local_type", FT_UINT16, BASE_DEC,
+                 VALS(lmp_trace_type_str), 0x0, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TRACE_LOCAL_LEN],
+               { "Local Trace Length", "lmp.trace.local_length", FT_UINT16, BASE_DEC,
+                 NULL, 0x0, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TRACE_LOCAL_MSG],
+               { "Local Trace Message", "lmp.trace.local_msg", FT_STRING, BASE_NONE,
+                 NULL, 0x0, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TRACE_REMOTE_TYPE],
+               { "Remote Trace Type", "lmp.trace.remote_type", FT_UINT16, BASE_DEC,
+                 VALS(lmp_trace_type_str), 0x0, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TRACE_REMOTE_LEN],
+               { "Remote Trace Length", "lmp.trace.remote_length", FT_UINT16, BASE_DEC,
+                 NULL, 0x0, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_TRACE_REMOTE_MSG],
+               { "Remote Trace Message", "lmp.trace.remote_msg", FT_STRING, BASE_NONE,
+                 NULL, 0x0, NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_TRACE_REQ_TYPE],
+               { "Trace Type", "lmp.trace_req.type", FT_UINT16, BASE_DEC,
+                 VALS(lmp_trace_type_str), 0x0, NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS],
+               { "Service Config - Supported Signalling Protocols",
+               "lmp.service_config.sp", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS_RSVP],
+          { "RSVP is supported", "lmp.service_config.sp.rsvp",
+                FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_SP_FLAGS_LDP],
+               { "LDP is supported", "lmp.service_config.sp.ldp",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS],
+               { "Client Port Service Attributes", "lmp.service_config.cpsa",
+                 FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_PATH_OVERHEAD],
+               { "Path/VC Overhead Transparency Supported",
+                 "lmp.service_config.cpsa.path_overhead",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_LINE_OVERHEAD],
+               { "Line/MS Overhead Transparency Supported",
+                 "lmp.service_config.cpsa.line_overhead",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_TP_FLAGS_SECTION_OVERHEAD],
+               { "Section/RS Overhead Transparency Supported",
+                 "lmp.service_config.cpsa.section_overhead",
+                 FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_CCT_FLAGS],
+               { "Contiguous Concatenation Types", "lmp.service_config.cct",
+                 FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_CCT_FLAGS_CC_SUPPORTED],
+               { "Contiguous Concatenation Types Supported",
+                 "lmp.service_config.cpsa.line_overhead",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MIN_NCC],
+               { "Minimum Number of Contiguously Concatenated Components",
+                 "lmp.service_config.cpsa.min_ncc",
+                 FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MAX_NCC],
+               { "Maximum Number of Contiguously Concatenated Components",
+                 "lmp.service_config.cpsa.max_ncc",
+                 FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MIN_NVC],
+               { "Maximum Number of Contiguously Concatenated Components",
+                 "lmp.service_config.cpsa.min_nvc",
+                 FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MAX_NVC],
+               { "Minimum Number of Virtually Concatenated Components",
+                 "lmp.service_config.cpsa.max_nvc",
+                 FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_INTERFACE_ID],
+               { "Local interface id of the client interface referred to",
+                 "lmp.service_config.cpsa.local_ifid",
+                 FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS],
+               { "Network Transparency Flags",
+                 "lmp.service_config.nsa.transparency",
+                 FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS_SOH],
+               { "Standard SOH/RSOH transparency supported",
+                 "lmp.service_config.nsa.transparency.soh",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TRANSPARENCY_FLAGS_LOH],
+               { "Standard LOH/MSOH transparency supported",
+                 "lmp.service_config.nsa.transparency.loh",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TCM_FLAGS],
+               { "TCM Monitoring",
+               "lmp.service_config.nsa.tcm",
+                 FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_TCM_FLAGS_TCM_SUPPORTED],
+               { "TCM Monitoring Supported",
+                 "lmp.service_config.nsa.transparency.tcm",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS],
+               { "Network Diversity Flags",
+               "lmp.service_config.nsa.diversity",
+                 FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_NODE],
+               { "Node diversity supported",
+                 "lmp.service_config.nsa.diversity.node",
+                 FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_LINK],
+               { "Link diversity supported",
+                 "lmp.service_config.nsa.diversity.link",
+                 FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_NSA_NETWORK_DIVERSITY_FLAGS_SRLG],
+               { "SRLG diversity supported",
+                 "lmp.service_config.nsa.diversity.srlg",
+                 FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL}},
+
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_DA_DCN_ADDR],
+               { "Local DA DCN Address", "lmp.local_da_dcn_addr", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_REMOTE_DA_DCN_ADDR],
+               { "Remote DA DCN Address", "lmp.remote_da_dcn_addr", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_NODE_ID],
+               { "Node ID", "lmp.local_lad_node_id", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_AREA_ID],
+               { "Area ID", "lmp.local_lad_area_id", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_TE_LINK_ID],
+               { "TE Link ID", "lmp.local_lad_telink_id", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_COMPONENT_ID],
+               { "Component Link ID", "lmp.local_lad_comp_id", FT_UINT32, BASE_DEC, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_SC_PC_ID],
+               { "SC PC ID", "lmp.local_lad_sc_pc_id", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LOCAL_LAD_INFO_SC_PC_ADDR],
+               { "SC PC Address", "lmp.local_lad_sc_pc_addr", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ],
+               { "Subobject", "lmp.lad_info_subobj", FT_NONE, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_AREA_ID],
+               { "SC PC Address", "lmp.lad_pri_area_id", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_RC_PC_ID],
+               { "SC PC Address", "lmp.lad_pri_rc_pc_id", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_PRI_RC_PC_ADDR],
+               { "SC PC Address", "lmp.lad_pri_rc_pc_addr", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_AREA_ID],
+               { "SC PC Address", "lmp.lad_sec_area_id", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_RC_PC_ID],
+               { "SC PC Address", "lmp.lad_sec_rc_pc_id", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SEC_RC_PC_ADDR],
+               { "SC PC Address", "lmp.lad_sec_rc_pc_addr", FT_IPv4, BASE_NONE, NULL, 0x0,
+                       NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_SWITCHING_TYPE],
+               { "Interface Switching Capability", "lmp.lad_switching", FT_UINT8, BASE_DEC|BASE_RANGE_STRING,
+                 RVALS(&gmpls_switching_type_rvals), 0x0, NULL, HFILL }},
+          {&hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_LSP_ENCODING],
+               { "LSP Encoding Type", "lmp.lad_encoding", FT_UINT8, BASE_DEC|BASE_RANGE_STRING,
+                 RVALS(&gmpls_lsp_enc_rvals), 0x0, NULL, HFILL }},
+       };
+
     for (i=0; i<NUM_LMP_SUBTREES; i++) {
        lmp_subtree[i] = -1;
        ett[i] = &lmp_subtree[i];
     }
-    
+
     proto_lmp = proto_register_protocol("Link Management Protocol (LMP)",
                                        "LMP", "lmp");
     proto_register_field_array(proto_lmp, lmpf_info, array_length(lmpf_info));
@@ -2706,5 +2698,5 @@ void
 proto_reg_handoff_lmp(void)
 {
     lmp_handle = new_create_dissector_handle(dissect_lmp, proto_lmp);
-    dissector_add("udp.port", lmp_udp_port, lmp_handle);
+    dissector_add_uint("udp.port", lmp_udp_port, lmp_handle);
 }