forked from osmocom/wireshark
![Alexis La Goutte](/assets/img/avatar_default.png)
Change-Id: I5dacce44941ac132172df6d7f343fddd114bd888 Reviewed-on: https://code.wireshark.org/review/8792 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
14214 lines
856 KiB
C
14214 lines
856 KiB
C
/* packet-lbmc.c
|
|
* Routines for LBMC Packet dissection
|
|
*
|
|
* Copyright (c) 2005-2014 Informatica Corporation. All Rights Reserved.
|
|
*
|
|
* Wireshark - Network traffic analyzer
|
|
* By Gerald Combs <gerald@wireshark.org>
|
|
* Copyright 1998 Gerald Combs
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
|
|
#include "config.h"
|
|
#include <epan/packet.h>
|
|
#include <epan/prefs.h>
|
|
#include <epan/expert.h>
|
|
#include <epan/tap.h>
|
|
#include "packet-lbm.h"
|
|
#include "packet-lbttcp.h"
|
|
|
|
|
|
void proto_register_lbmc(void);
|
|
void proto_reg_handoff_lbmc(void);
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Stream management. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
/* Instance stream structures. */
|
|
struct lbm_istream_entry_t_stct;
|
|
typedef struct lbm_istream_entry_t_stct lbm_istream_entry_t;
|
|
struct lbm_istream_substream_entry_t_stct;
|
|
typedef struct lbm_istream_substream_entry_t_stct lbm_istream_substream_entry_t;
|
|
|
|
struct lbm_istream_substream_entry_t_stct
|
|
{
|
|
address src_addr;
|
|
guint16 src_port;
|
|
address dst_addr;
|
|
guint16 dst_port;
|
|
guint32 lbm_stream_id;
|
|
lbm_istream_entry_t * parent;
|
|
guint32 substream_id;
|
|
guint32 first_frame;
|
|
guint32 last_frame;
|
|
guint32 messages;
|
|
guint32 bytes;
|
|
};
|
|
|
|
struct lbm_istream_entry_t_stct
|
|
{
|
|
guint8 ctxinst_1[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
guint8 ctxinst_2[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
guint64 channel;
|
|
guint32 next_substream_id;
|
|
guint32 first_frame;
|
|
guint32 last_frame;
|
|
guint32 messages;
|
|
guint32 bytes;
|
|
wmem_tree_t * substream_list;
|
|
};
|
|
|
|
/* Domain stream structures */
|
|
struct lbm_dstream_entry_t_stct;
|
|
typedef struct lbm_dstream_entry_t_stct lbm_dstream_entry_t;
|
|
struct lbm_dstream_substream_entry_t_stct;
|
|
typedef struct lbm_dstream_substream_entry_t_stct lbm_dstream_substream_entry_t;
|
|
|
|
struct lbm_dstream_substream_entry_t_stct
|
|
{
|
|
address src_addr;
|
|
guint16 src_port;
|
|
address dst_addr;
|
|
guint16 dst_port;
|
|
guint32 lbm_stream_id;
|
|
lbm_dstream_entry_t * parent;
|
|
guint32 substream_id;
|
|
guint32 first_frame;
|
|
guint32 last_frame;
|
|
guint32 messages;
|
|
guint32 bytes;
|
|
};
|
|
|
|
struct lbm_dstream_entry_t_stct
|
|
{
|
|
guint32 domain_1;
|
|
address addr_1;
|
|
guint32 domain_2;
|
|
address addr_2;
|
|
guint16 port_1;
|
|
guint16 port_2;
|
|
guint64 channel;
|
|
guint32 next_substream_id;
|
|
guint32 first_frame;
|
|
guint32 last_frame;
|
|
guint32 messages;
|
|
guint32 bytes;
|
|
wmem_tree_t * substream_list;
|
|
};
|
|
|
|
/* Instance stream variables */
|
|
#define LBM_ISTREAM_STREAM_KEY_ELEMENT_COUNT 4
|
|
#define LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST1_HIGH 0
|
|
#define LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST1_LOW 1
|
|
#define LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST2_HIGH 2
|
|
#define LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST2_LOW 3
|
|
|
|
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_COUNT 5
|
|
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_SRC_ADDR 0
|
|
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_SRC_PORT 1
|
|
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_DST_ADDR 2
|
|
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_DST_PORT 3
|
|
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_LBM_STREAM_ID 4
|
|
|
|
static wmem_tree_t * instance_stream_table = NULL;
|
|
|
|
/* Domain stream variables */
|
|
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_COUNT 6
|
|
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_DOMAIN_1 0
|
|
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_ADDR_1 1
|
|
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_DOMAIN_2 2
|
|
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_ADDR_2 3
|
|
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_PORT_1 4
|
|
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_PORT_2 5
|
|
|
|
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_COUNT 5
|
|
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_SRC_ADDR 0
|
|
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_SRC_PORT 1
|
|
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_DST_ADDR 2
|
|
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_DST_PORT 3
|
|
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_LBM_STREAM_ID 4
|
|
|
|
static wmem_tree_t * domain_stream_table = NULL;
|
|
|
|
static void lbm_stream_init(void)
|
|
{
|
|
instance_stream_table = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
|
|
domain_stream_table = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
|
|
}
|
|
|
|
static void lbm_istream_stream_build_key(guint32 * key_value, wmem_tree_key_t * key, const lbm_istream_entry_t * stream)
|
|
{
|
|
guint32 val;
|
|
|
|
/* Note: ctxinst_1 and ctxinst_2 are 8-byte blocks, not guaranteed to be aligned. So we memcpy them 4 bytes
|
|
at a time to an intermediate variable, to prevent any alignment issues with assigning to a 32-bit unsigned int
|
|
on certain platforms.
|
|
*/
|
|
memcpy((void *) &val, (const void *) stream->ctxinst_1, sizeof(guint32));
|
|
key_value[LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST1_HIGH] = val;
|
|
memcpy((void *) &val, (const void *) (stream->ctxinst_1 + sizeof(guint32)), sizeof(guint32));
|
|
key_value[LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST1_LOW] = val;
|
|
memcpy((void *) &val, (const void *) stream->ctxinst_2, sizeof(guint32));
|
|
key_value[LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST2_HIGH] = val;
|
|
memcpy((void *) &val, (const void *) (stream->ctxinst_2 + sizeof(guint32)), sizeof(guint32));
|
|
key_value[LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST2_LOW] = val;
|
|
key[0].length = LBM_ISTREAM_STREAM_KEY_ELEMENT_COUNT;
|
|
key[0].key = key_value;
|
|
key[1].length = 0;
|
|
key[1].key = NULL;
|
|
}
|
|
|
|
static void lbm_stream_order_istream_key(lbm_istream_entry_t * stream)
|
|
{
|
|
guint8 ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
|
|
if (memcmp((void *)stream->ctxinst_1, (void *)stream->ctxinst_2, LBM_CONTEXT_INSTANCE_BLOCK_SZ) > 0)
|
|
{
|
|
memcpy((void *)ctxinst, (const void *)stream->ctxinst_1, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
memcpy((void *)stream->ctxinst_1, (const void *)stream->ctxinst_2, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
memcpy((void *)stream->ctxinst_2, (const void *)ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
}
|
|
}
|
|
|
|
static lbm_istream_entry_t * lbm_stream_istream_find(const guint8 * instance1, const guint8 * instance2)
|
|
{
|
|
lbm_istream_entry_t key;
|
|
lbm_istream_entry_t * entry = NULL;
|
|
guint32 keyval[LBM_ISTREAM_STREAM_KEY_ELEMENT_COUNT];
|
|
wmem_tree_key_t tkey[2];
|
|
|
|
memset((void *)&key, 0, sizeof(lbm_istream_entry_t));
|
|
memcpy((void *)key.ctxinst_1, (const void *)instance1, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
memcpy((void *)key.ctxinst_2, (const void *)instance2, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
lbm_stream_order_istream_key(&key);
|
|
lbm_istream_stream_build_key(keyval, tkey, &key);
|
|
entry = (lbm_istream_entry_t *) wmem_tree_lookup32_array(instance_stream_table, tkey);
|
|
return (entry);
|
|
}
|
|
|
|
static lbm_istream_entry_t * lbm_stream_istream_add(const guint8 * instance1, const guint8 * instance2)
|
|
{
|
|
lbm_istream_entry_t * entry;
|
|
guint32 keyval[LBM_ISTREAM_STREAM_KEY_ELEMENT_COUNT];
|
|
wmem_tree_key_t tkey[2];
|
|
|
|
entry = lbm_stream_istream_find(instance1, instance2);
|
|
if (entry != NULL)
|
|
{
|
|
return (entry);
|
|
}
|
|
entry = wmem_new(wmem_file_scope(), lbm_istream_entry_t);
|
|
memcpy((void *)entry->ctxinst_1, (const void *)instance1, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
memcpy((void *)entry->ctxinst_2, (const void *)instance2, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
lbm_stream_order_istream_key(entry);
|
|
entry->channel = lbm_channel_assign(LBM_CHANNEL_STREAM_TCP);
|
|
entry->next_substream_id = 1;
|
|
entry->first_frame = ~((guint32)0);
|
|
entry->last_frame = 0;
|
|
entry->messages = 0;
|
|
entry->bytes = 0;
|
|
entry->substream_list = wmem_tree_new(wmem_file_scope());
|
|
lbm_istream_stream_build_key(keyval, tkey, entry);
|
|
wmem_tree_insert32_array(instance_stream_table, tkey, (void *) entry);
|
|
return (entry);
|
|
}
|
|
|
|
static void lbm_istream_substream_build_key(guint32 * key_value, wmem_tree_key_t * key, const lbm_istream_substream_entry_t * substream)
|
|
{
|
|
guint32 val;
|
|
|
|
/* Note: for the time being we only support IPv4 addresses (currently enforced in the dissectors), so
|
|
assume it's an IPv4 address. memcpy to an intermediate value (don't know for sure the address.data field
|
|
has any particular alignment) to prevent any alignment issues with assigning to a 32-bit unsigned int
|
|
on certain platforms.
|
|
*/
|
|
memcpy((void *) &val, (const void *) substream->src_addr.data, sizeof(guint32));
|
|
key_value[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_SRC_ADDR] = val;
|
|
key_value[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_SRC_PORT] = (guint32) substream->src_port;
|
|
memcpy((void *) &val, (const void *) substream->dst_addr.data, sizeof(guint32));
|
|
key_value[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_DST_ADDR] = val;
|
|
key_value[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_DST_PORT] = (guint32) substream->dst_port;
|
|
key_value[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_LBM_STREAM_ID] = substream->lbm_stream_id;
|
|
key[0].length = LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_COUNT;
|
|
key[0].key = key_value;
|
|
key[1].length = 0;
|
|
key[1].key = NULL;
|
|
}
|
|
|
|
static lbm_istream_substream_entry_t * lbm_stream_istream_substream_find(lbm_istream_entry_t * stream, const address * src_addr, guint16 src_port, const address * dst_addr, guint16 dst_port, guint32 stream_id)
|
|
{
|
|
lbm_istream_substream_entry_t key;
|
|
lbm_istream_substream_entry_t * entry = NULL;
|
|
guint32 keyval[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_COUNT];
|
|
wmem_tree_key_t tkey[2];
|
|
|
|
memset((void *)&key, 0, sizeof(lbm_istream_substream_entry_t));
|
|
COPY_ADDRESS_SHALLOW(&(key.src_addr), src_addr);
|
|
key.src_port = src_port;
|
|
COPY_ADDRESS_SHALLOW(&(key.dst_addr), dst_addr);
|
|
key.dst_port = dst_port;
|
|
key.lbm_stream_id = stream_id;
|
|
lbm_istream_substream_build_key(keyval, tkey, &key);
|
|
entry = (lbm_istream_substream_entry_t *) wmem_tree_lookup32_array(stream->substream_list, tkey);
|
|
return (entry);
|
|
}
|
|
|
|
static lbm_istream_substream_entry_t * lbm_stream_istream_substream_add(lbm_istream_entry_t * stream, const address * src_addr, guint16 src_port, const address * dst_addr, guint16 dst_port, guint32 stream_id)
|
|
{
|
|
lbm_istream_substream_entry_t * entry;
|
|
guint32 keyval[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_COUNT];
|
|
wmem_tree_key_t tkey[2];
|
|
|
|
entry = lbm_stream_istream_substream_find(stream, src_addr, src_port, dst_addr, dst_port, stream_id);
|
|
if (entry != NULL)
|
|
{
|
|
return (entry);
|
|
}
|
|
entry = wmem_new(wmem_file_scope(), lbm_istream_substream_entry_t);
|
|
WMEM_COPY_ADDRESS(wmem_file_scope(), &(entry->src_addr), src_addr);
|
|
entry->src_port = src_port;
|
|
WMEM_COPY_ADDRESS(wmem_file_scope(), &(entry->dst_addr), dst_addr);
|
|
entry->dst_port = dst_port;
|
|
entry->lbm_stream_id = stream_id;
|
|
entry->parent = stream;
|
|
entry->substream_id = stream->next_substream_id++;
|
|
entry->first_frame = ~((guint32)0);
|
|
entry->last_frame = 0;
|
|
entry->messages = 0;
|
|
entry->bytes = 0;
|
|
lbm_istream_substream_build_key(keyval, tkey, entry);
|
|
wmem_tree_insert32_array(stream->substream_list, tkey, (void *) entry);
|
|
return (entry);
|
|
}
|
|
|
|
static void lbm_stream_istream_substream_update(lbm_istream_substream_entry_t * substream, guint16 length, guint32 frame)
|
|
{
|
|
substream->messages++;
|
|
substream->parent->messages++;
|
|
substream->bytes += (guint32)length;
|
|
substream->parent->bytes += (guint32)length;
|
|
if (frame < substream->first_frame)
|
|
{
|
|
substream->first_frame = frame;
|
|
}
|
|
if (frame < substream->parent->first_frame)
|
|
{
|
|
substream->parent->first_frame = frame;
|
|
}
|
|
if (frame > substream->last_frame)
|
|
{
|
|
substream->last_frame = frame;
|
|
}
|
|
if (frame > substream->parent->last_frame)
|
|
{
|
|
substream->parent->last_frame = frame;
|
|
}
|
|
}
|
|
|
|
static void lbm_dstream_stream_build_key(guint32 * key_value, wmem_tree_key_t * key, const lbm_dstream_entry_t * stream)
|
|
{
|
|
guint32 val;
|
|
|
|
/* Note: for the time being we only support IPv4 addresses (currently enforced in the dissectors), so
|
|
assume it's an IPv4 address. memcpy to an intermediate value (don't know for sure the address.data field
|
|
has any particular alignment) to prevent any alignment issues with assigning to a 32-bit unsigned int
|
|
on certain platforms.
|
|
*/
|
|
key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_DOMAIN_1] = stream->domain_1;
|
|
memcpy((void *) &val, (const void *) (stream->addr_1.data), sizeof(guint32));
|
|
key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_ADDR_1] = val;
|
|
key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_DOMAIN_2] = stream->domain_2;
|
|
memcpy((void *) &val, (const void *) (stream->addr_2.data), sizeof(guint32));
|
|
key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_ADDR_2] = val;
|
|
key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_PORT_1] = (guint32) stream->port_1;
|
|
key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_PORT_2] = (guint32) stream->port_2;
|
|
key[0].length = LBM_DSTREAM_STREAM_KEY_ELEMENT_COUNT;
|
|
key[0].key = key_value;
|
|
key[1].length = 0;
|
|
key[1].key = NULL;
|
|
}
|
|
|
|
static void lbm_stream_order_dstream_key(lbm_dstream_entry_t * stream)
|
|
{
|
|
gboolean swap_items = FALSE;
|
|
address addr;
|
|
guint32 domain;
|
|
guint16 port;
|
|
|
|
if (stream->domain_1 > stream->domain_2)
|
|
{
|
|
swap_items = TRUE;
|
|
}
|
|
else if (stream->domain_1 == stream->domain_2)
|
|
{
|
|
int compare;
|
|
|
|
compare = CMP_ADDRESS(&(stream->addr_1), &(stream->addr_2));
|
|
if (compare > 0)
|
|
{
|
|
swap_items = TRUE;
|
|
}
|
|
else if (compare == 0)
|
|
{
|
|
if (stream->port_1 > stream->port_2)
|
|
{
|
|
swap_items = TRUE;
|
|
}
|
|
}
|
|
}
|
|
if (swap_items)
|
|
{
|
|
domain = stream->domain_1;
|
|
COPY_ADDRESS_SHALLOW(&addr, &(stream->addr_1));
|
|
port = stream->port_1;
|
|
|
|
stream->domain_1 = stream->domain_2;
|
|
COPY_ADDRESS_SHALLOW(&(stream->addr_1), &(stream->addr_2));
|
|
stream->port_1 = stream->port_2;
|
|
|
|
stream->domain_2 = domain;
|
|
COPY_ADDRESS_SHALLOW(&(stream->addr_2), &addr);
|
|
stream->port_2 = port;
|
|
}
|
|
}
|
|
|
|
static lbm_dstream_entry_t * lbm_stream_dstream_find(const lbm_uim_stream_destination_t * endpoint_a, const lbm_uim_stream_destination_t * endpoint_b)
|
|
{
|
|
lbm_dstream_entry_t key;
|
|
lbm_dstream_entry_t * entry = NULL;
|
|
guint32 keyval[LBM_DSTREAM_STREAM_KEY_ELEMENT_COUNT];
|
|
wmem_tree_key_t tkey[2];
|
|
|
|
key.domain_1 = endpoint_a->domain;
|
|
COPY_ADDRESS_SHALLOW(&(key.addr_1), &(endpoint_a->addr));
|
|
key.port_1 = endpoint_a->port;
|
|
key.domain_2 = endpoint_b->domain;
|
|
COPY_ADDRESS_SHALLOW(&(key.addr_2), &(endpoint_b->addr));
|
|
key.port_2 = endpoint_b->port;
|
|
lbm_stream_order_dstream_key(&key);
|
|
lbm_dstream_stream_build_key(keyval, tkey, &key);
|
|
entry = (lbm_dstream_entry_t *) wmem_tree_lookup32_array(domain_stream_table, tkey);
|
|
return (entry);
|
|
}
|
|
|
|
static lbm_dstream_entry_t * lbm_stream_dstream_add(const lbm_uim_stream_destination_t * endpoint_a, const lbm_uim_stream_destination_t * endpoint_b)
|
|
{
|
|
lbm_dstream_entry_t * entry;
|
|
guint32 keyval[LBM_DSTREAM_STREAM_KEY_ELEMENT_COUNT];
|
|
wmem_tree_key_t tkey[2];
|
|
|
|
entry = lbm_stream_dstream_find(endpoint_a, endpoint_b);
|
|
if (entry != NULL)
|
|
{
|
|
return (entry);
|
|
}
|
|
entry = wmem_new(wmem_file_scope(), lbm_dstream_entry_t);
|
|
entry->domain_1 = endpoint_a->domain;
|
|
WMEM_COPY_ADDRESS(wmem_file_scope(), &(entry->addr_1), &(endpoint_a->addr));
|
|
entry->port_1 = endpoint_a->port;
|
|
entry->domain_2 = endpoint_b->domain;
|
|
WMEM_COPY_ADDRESS(wmem_file_scope(), &(entry->addr_2), &(endpoint_b->addr));
|
|
entry->port_2 = endpoint_b->port;
|
|
lbm_stream_order_dstream_key(entry);
|
|
entry->channel = lbm_channel_assign(LBM_CHANNEL_STREAM_TCP);
|
|
entry->next_substream_id = 1;
|
|
entry->first_frame = ~((guint32)0);
|
|
entry->last_frame = 0;
|
|
entry->messages = 0;
|
|
entry->bytes = 0;
|
|
entry->substream_list = wmem_tree_new(wmem_file_scope());
|
|
lbm_dstream_stream_build_key(keyval, tkey, entry);
|
|
wmem_tree_insert32_array(domain_stream_table, tkey, (void *) entry);
|
|
return (entry);
|
|
}
|
|
|
|
static void lbm_dstream_substream_build_key(guint32 * key_value, wmem_tree_key_t * key, const lbm_dstream_substream_entry_t * substream)
|
|
{
|
|
guint32 val;
|
|
|
|
/* Note: for the time being we only support IPv4 addresses (currently enforced in the dissectors), so
|
|
assume it's an IPv4 address. memcpy to an intermediate value (don't know for sure the address.data field
|
|
has any particular alignment) to prevent any alignment issues with assigning to a 32-bit unsigned int
|
|
on certain platforms.
|
|
*/
|
|
memcpy((void *) &val, (const void *) substream->src_addr.data, sizeof(guint32));
|
|
key_value[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_SRC_ADDR] = val;
|
|
key_value[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_SRC_PORT] = (guint32) substream->src_port;
|
|
memcpy((void *) &val, (const void *) substream->dst_addr.data, sizeof(guint32));
|
|
key_value[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_DST_ADDR] = val;
|
|
key_value[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_DST_PORT] = (guint32) substream->dst_port;
|
|
key_value[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_LBM_STREAM_ID] = substream->lbm_stream_id;
|
|
key[0].length = LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_COUNT;
|
|
key[0].key = key_value;
|
|
key[1].length = 0;
|
|
key[1].key = NULL;
|
|
}
|
|
|
|
static lbm_dstream_substream_entry_t * lbm_stream_dstream_substream_find(lbm_dstream_entry_t * stream, const address * src_addr, guint16 src_port, const address * dst_addr, guint16 dst_port, guint32 stream_id)
|
|
{
|
|
lbm_dstream_substream_entry_t key;
|
|
lbm_dstream_substream_entry_t * entry = NULL;
|
|
guint32 keyval[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_COUNT];
|
|
wmem_tree_key_t tkey[2];
|
|
|
|
memset((void *)&key, 0, sizeof(lbm_dstream_substream_entry_t));
|
|
COPY_ADDRESS_SHALLOW(&(key.src_addr), src_addr);
|
|
key.src_port = src_port;
|
|
COPY_ADDRESS_SHALLOW(&(key.dst_addr), dst_addr);
|
|
key.dst_port = dst_port;
|
|
key.lbm_stream_id = stream_id;
|
|
lbm_dstream_substream_build_key(keyval, tkey, &key);
|
|
entry = (lbm_dstream_substream_entry_t *) wmem_tree_lookup32_array(stream->substream_list, tkey);
|
|
return (entry);
|
|
}
|
|
|
|
static lbm_dstream_substream_entry_t * lbm_stream_dstream_substream_add(lbm_dstream_entry_t * stream, const address * src_addr, guint16 src_port, const address * dst_addr, guint16 dst_port, guint32 stream_id)
|
|
{
|
|
lbm_dstream_substream_entry_t * entry;
|
|
guint32 keyval[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_COUNT];
|
|
wmem_tree_key_t tkey[2];
|
|
|
|
entry = lbm_stream_dstream_substream_find(stream, src_addr, src_port, dst_addr, dst_port, stream_id);
|
|
if (entry != NULL)
|
|
{
|
|
return (entry);
|
|
}
|
|
entry = wmem_new(wmem_file_scope(), lbm_dstream_substream_entry_t);
|
|
WMEM_COPY_ADDRESS(wmem_file_scope(), &(entry->src_addr), src_addr);
|
|
entry->src_port = src_port;
|
|
WMEM_COPY_ADDRESS(wmem_file_scope(), &(entry->dst_addr), dst_addr);
|
|
entry->dst_port = dst_port;
|
|
entry->lbm_stream_id = stream_id;
|
|
entry->parent = stream;
|
|
entry->substream_id = stream->next_substream_id++;
|
|
entry->first_frame = ~((guint32)0);
|
|
entry->last_frame = 0;
|
|
entry->messages = 0;
|
|
entry->bytes = 0;
|
|
lbm_dstream_substream_build_key(keyval, tkey, entry);
|
|
wmem_tree_insert32_array(stream->substream_list, tkey, (void *) entry);
|
|
return (entry);
|
|
}
|
|
|
|
static void lbm_stream_dstream_substream_update(lbm_dstream_substream_entry_t * substream, guint16 length, guint32 frame)
|
|
{
|
|
substream->messages++;
|
|
substream->parent->messages++;
|
|
substream->bytes += (guint32)length;
|
|
substream->parent->bytes += (guint32)length;
|
|
if (frame < substream->first_frame)
|
|
{
|
|
substream->first_frame = frame;
|
|
}
|
|
if (frame < substream->parent->first_frame)
|
|
{
|
|
substream->parent->first_frame = frame;
|
|
}
|
|
if (frame > substream->last_frame)
|
|
{
|
|
substream->last_frame = frame;
|
|
}
|
|
if (frame > substream->parent->last_frame)
|
|
{
|
|
substream->parent->last_frame = frame;
|
|
}
|
|
}
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Packet layouts. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
/* LBMC header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t ver_type;
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint16_t msglen;
|
|
lbm_uint32_t tidx;
|
|
lbm_uint32_t sqn;
|
|
} lbmc_hdr_t;
|
|
#define O_LBMC_HDR_T_VER_TYPE OFFSETOF(lbmc_hdr_t, ver_type)
|
|
#define L_LBMC_HDR_T_VER_TYPE SIZEOF(lbmc_hdr_t, ver_type)
|
|
#define O_LBMC_HDR_T_NEXT_HDR OFFSETOF(lbmc_hdr_t, next_hdr)
|
|
#define L_LBMC_HDR_T_NEXT_HDR SIZEOF(lbmc_hdr_t, next_hdr)
|
|
#define O_LBMC_HDR_T_MSGLEN OFFSETOF(lbmc_hdr_t, msglen)
|
|
#define L_LBMC_HDR_T_MSGLEN SIZEOF(lbmc_hdr_t, msglen)
|
|
#define O_LBMC_HDR_T_TIDX OFFSETOF(lbmc_hdr_t, tidx)
|
|
#define L_LBMC_HDR_T_TIDX SIZEOF(lbmc_hdr_t, tidx)
|
|
#define O_LBMC_HDR_T_SQN OFFSETOF(lbmc_hdr_t, sqn)
|
|
#define L_LBMC_HDR_T_SQN SIZEOF(lbmc_hdr_t, sqn)
|
|
#define L_LBMC_HDR_T (gint) sizeof(lbmc_hdr_t)
|
|
|
|
/* LBMC control header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t ver_type;
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint16_t msglen;
|
|
} lbmc_cntl_hdr_t;
|
|
#define O_LBMC_CNTL_HDR_T_VER_TYPE OFFSETOF(lbmc_cntl_hdr_t, ver_type)
|
|
#define L_LBMC_CNTL_HDR_T_VER_TYPE SIZEOF(lbmc_cntl_hdr_t, ver_type)
|
|
#define O_LBMC_CNTL_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_HDR_T_MSGLEN OFFSETOF(lbmc_cntl_hdr_t, msglen)
|
|
#define L_LBMC_CNTL_HDR_T_MSGLEN SIZEOF(lbmc_cntl_hdr_t, msglen)
|
|
#define L_LBMC_CNTL_HDR_T (gint) sizeof(lbmc_cntl_hdr_t)
|
|
|
|
#define LBMC_HDR_VER_TYPE_VER_MASK 0xF0
|
|
#define LBMC_HDR_VER_TYPE_TYPE_MASK 0x0F
|
|
|
|
/* Minimal LBMC header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t ver_type;
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint16_t msglen;
|
|
} lbmc_minimal_hdr_t;
|
|
#define O_LBMC_MINIMAL_HDR_T_VER_TYPE OFFSETOF(lbmc_minimal_hdr_t, ver_type)
|
|
#define L_LBMC_MINIMAL_HDR_T_VER_TYPE SIZEOF(lbmc_minimal_hdr_t, ver_type)
|
|
#define O_LBMC_MINIMAL_HDR_T_NEXT_HDR OFFSETOF(lbmc_minimal_hdr_t, next_hdr)
|
|
#define L_LBMC_MINIMAL_HDR_T_NEXT_HDR SIZEOF(lbmc_minimal_hdr_t, next_hdr)
|
|
#define O_LBMC_MINIMAL_HDR_T_MSGLEN OFFSETOF(lbmc_minimal_hdr_t, msglen)
|
|
#define L_LBMC_MINIMAL_HDR_T_MSGLEN SIZEOF(lbmc_minimal_hdr_t, msglen)
|
|
#define L_LBMC_MINIMAL_HDR_T (gint) sizeof(lbmc_minimal_hdr_t)
|
|
|
|
#define LBMC_HDR_VER(x) (x >> 4)
|
|
#define LBMC_HDR_TYPE(x) (x & 0xF)
|
|
|
|
/* LBMC basic header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t res;
|
|
} lbmc_basic_hdr_t;
|
|
#define O_LBMC_BASIC_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define L_LBMC_BASIC_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define O_LBMC_BASIC_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define L_LBMC_BASIC_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define O_LBMC_BASIC_HDR_T_RES OFFSETOF(lbmc_basic_hdr_t, res)
|
|
#define L_LBMC_BASIC_HDR_T_RES SIZEOF(lbmc_basic_hdr_t, res)
|
|
#define L_LBMC_BASIC_HDR_T (gint) sizeof(lbmc_basic_hdr_t)
|
|
|
|
/* LBMC fragment header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t first_sqn;
|
|
lbm_uint32_t offset;
|
|
lbm_uint32_t len;
|
|
} lbmc_frag_hdr_t;
|
|
#define O_LBMC_FRAG_HDR_T_NEXT_HDR OFFSETOF(lbmc_frag_hdr_t, next_hdr)
|
|
#define L_LBMC_FRAG_HDR_T_NEXT_HDR SIZEOF(lbmc_frag_hdr_t, next_hdr)
|
|
#define O_LBMC_FRAG_HDR_T_HDR_LEN OFFSETOF(lbmc_frag_hdr_t, hdr_len)
|
|
#define L_LBMC_FRAG_HDR_T_HDR_LEN SIZEOF(lbmc_frag_hdr_t, hdr_len)
|
|
#define O_LBMC_FRAG_HDR_T_FLAGS OFFSETOF(lbmc_frag_hdr_t, flags)
|
|
#define L_LBMC_FRAG_HDR_T_FLAGS SIZEOF(lbmc_frag_hdr_t, flags)
|
|
#define O_LBMC_FRAG_HDR_T_FIRST_SQN OFFSETOF(lbmc_frag_hdr_t, first_sqn)
|
|
#define L_LBMC_FRAG_HDR_T_FIRST_SQN SIZEOF(lbmc_frag_hdr_t, first_sqn)
|
|
#define O_LBMC_FRAG_HDR_T_OFFSET OFFSETOF(lbmc_frag_hdr_t, offset)
|
|
#define L_LBMC_FRAG_HDR_T_OFFSET SIZEOF(lbmc_frag_hdr_t, offset)
|
|
#define O_LBMC_FRAG_HDR_T_LEN OFFSETOF(lbmc_frag_hdr_t, len)
|
|
#define L_LBMC_FRAG_HDR_T_LEN SIZEOF(lbmc_frag_hdr_t, len)
|
|
#define L_LBMC_FRAG_HDR_T (gint) sizeof(lbmc_frag_hdr_t)
|
|
|
|
/* LBMC batch header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
} lbmc_batch_hdr_t;
|
|
#define O_LBMC_BATCH_HDR_T_NEXT_HDR OFFSETOF(lbmc_batch_hdr_t, next_hdr)
|
|
#define L_LBMC_BATCH_HDR_T_NEXT_HDR SIZEOF(lbmc_batch_hdr_t, next_hdr)
|
|
#define O_LBMC_BATCH_HDR_T_HDR_LEN OFFSETOF(lbmc_batch_hdr_t, hdr_len)
|
|
#define L_LBMC_BATCH_HDR_T_HDR_LEN SIZEOF(lbmc_batch_hdr_t, hdr_len)
|
|
#define O_LBMC_BATCH_HDR_T_FLAGS OFFSETOF(lbmc_batch_hdr_t, flags)
|
|
#define L_LBMC_BATCH_HDR_T_FLAGS SIZEOF(lbmc_batch_hdr_t, flags)
|
|
#define L_LBMC_BATCH_HDR_T (gint) sizeof(lbmc_batch_hdr_t)
|
|
|
|
/* LBMC TCP request header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t res;
|
|
lbm_uint8_t transport;
|
|
lbm_uint32_t qidx;
|
|
lbm_uint16_t port;
|
|
lbm_uint16_t reserved;
|
|
lbm_uint32_t ipaddr;
|
|
} lbmc_tcp_request_hdr_t;
|
|
#define O_LBMC_TCP_REQUEST_HDR_T_NEXT_HDR OFFSETOF(lbmc_tcp_request_hdr_t, next_hdr)
|
|
#define L_LBMC_TCP_REQUEST_HDR_T_NEXT_HDR SIZEOF(lbmc_tcp_request_hdr_t, next_hdr)
|
|
#define O_LBMC_TCP_REQUEST_HDR_T_HDR_LEN OFFSETOF(lbmc_tcp_request_hdr_t, hdr_len)
|
|
#define L_LBMC_TCP_REQUEST_HDR_T_HDR_LEN SIZEOF(lbmc_tcp_request_hdr_t, hdr_len)
|
|
#define O_LBMC_TCP_REQUEST_HDR_T_FLAGS OFFSETOF(lbmc_tcp_request_hdr_t, res)
|
|
#define L_LBMC_TCP_REQUEST_HDR_T_FLAGS SIZEOF(lbmc_tcp_request_hdr_t, res)
|
|
#define O_LBMC_TCP_REQUEST_HDR_T_TRANSPORT OFFSETOF(lbmc_tcp_request_hdr_t, transport)
|
|
#define L_LBMC_TCP_REQUEST_HDR_T_TRANSPORT SIZEOF(lbmc_tcp_request_hdr_t, transport)
|
|
#define O_LBMC_TCP_REQUEST_HDR_T_QIDX OFFSETOF(lbmc_tcp_request_hdr_t, qidx)
|
|
#define L_LBMC_TCP_REQUEST_HDR_T_QIDX SIZEOF(lbmc_tcp_request_hdr_t, qidx)
|
|
#define O_LBMC_TCP_REQUEST_HDR_T_PORT OFFSETOF(lbmc_tcp_request_hdr_t, port)
|
|
#define L_LBMC_TCP_REQUEST_HDR_T_PORT SIZEOF(lbmc_tcp_request_hdr_t, port)
|
|
#define O_LBMC_TCP_REQUEST_HDR_T_RESERVED OFFSETOF(lbmc_tcp_request_hdr_t, reserved)
|
|
#define L_LBMC_TCP_REQUEST_HDR_T_RESERVED SIZEOF(lbmc_tcp_request_hdr_t, reserved)
|
|
#define O_LBMC_TCP_REQUEST_HDR_T_IPADDR OFFSETOF(lbmc_tcp_request_hdr_t, ipaddr)
|
|
#define L_LBMC_TCP_REQUEST_HDR_T_IPADDR SIZEOF(lbmc_tcp_request_hdr_t, ipaddr)
|
|
#define L_LBMC_TCP_REQUEST_HDR_T (gint) sizeof(lbmc_tcp_request_hdr_t)
|
|
|
|
/* LBMC topicname header (an extension to lbmc_basic_hdr_t) */
|
|
#define O_LBMC_TOPICNAME_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define L_LBMC_TOPICNAME_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define O_LBMC_TOPICNAME_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define L_LBMC_TOPICNAME_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define O_LBMC_TOPICNAME_HDR_T_FLAGS OFFSETOF(lbmc_basic_hdr_t, res)
|
|
#define L_LBMC_TOPICNAME_HDR_T_FLAGS SIZEOF(lbmc_basic_hdr_t, res)
|
|
#define O_LBMC_TOPICNAME_HDR_T_TOPIC (OFFSETOF(lbmc_basic_hdr_t, res) + SIZEOF(lbmc_basic_hdr_t, res))
|
|
|
|
/* LBMC appheader header. */
|
|
#define O_LBMC_APPHDR_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define L_LBMC_APPHDR_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define O_LBMC_APPHDR_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define L_LBMC_APPHDR_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define O_LBMC_APPHDR_HDR_T_CODE OFFSETOF(lbmc_basic_hdr_t, res)
|
|
#define L_LBMC_APPHDR_HDR_T_CODE SIZEOF(lbmc_basic_hdr_t, res)
|
|
#define O_LBMC_APPHDR_HDR_T_DATA (OFFSETOF(lbmc_basic_hdr_t, res) + SIZEOF(lbmc_basic_hdr_t, res))
|
|
|
|
#define LBMC_APPHDR_CODE_MASK 0x7fff
|
|
|
|
/* LBMC appheader chain element */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t res;
|
|
} lbmc_apphdr_chain_element_t;
|
|
#define O_LBMC_APPHDR_CHAIN_ELEMENT_T_NEXT_HDR OFFSETOF(lbmc_apphdr_chain_element_t, next_hdr)
|
|
#define L_LBMC_APPHDR_CHAIN_ELEMENT_T_NEXT_HDR SIZEOF(lbmc_apphdr_chain_element_t, next_hdr)
|
|
#define O_LBMC_APPHDR_CHAIN_ELEMENT_T_HDR_LEN OFFSETOF(lbmc_apphdr_chain_element_t, hdr_len)
|
|
#define L_LBMC_APPHDR_CHAIN_ELEMENT_T_HDR_LEN SIZEOF(lbmc_apphdr_chain_element_t, hdr_len)
|
|
#define O_LBMC_APPHDR_CHAIN_ELEMENT_T_RES OFFSETOF(lbmc_apphdr_chain_element_t, res)
|
|
#define L_LBMC_APPHDR_CHAIN_ELEMENT_T_RES SIZEOF(lbmc_apphdr_chain_element_t, res)
|
|
#define L_LBMC_APPHDR_CHAIN_ELEMENT_T_MIN (gint) sizeof(lbmc_apphdr_chain_element_t)
|
|
|
|
/* LBMC appheader chain message properties element */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t res;
|
|
lbm_uint32_t len;
|
|
} lbmc_apphdr_chain_msgprop_element_t;
|
|
#define O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_NEXT_HDR OFFSETOF(lbmc_apphdr_chain_msgprop_element_t, next_hdr)
|
|
#define L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_NEXT_HDR SIZEOF(lbmc_apphdr_chain_msgprop_element_t, next_hdr)
|
|
#define O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_HDR_LEN OFFSETOF(lbmc_apphdr_chain_msgprop_element_t, hdr_len)
|
|
#define L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_HDR_LEN SIZEOF(lbmc_apphdr_chain_msgprop_element_t, hdr_len)
|
|
#define O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_RES OFFSETOF(lbmc_apphdr_chain_msgprop_element_t, res)
|
|
#define L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_RES SIZEOF(lbmc_apphdr_chain_msgprop_element_t, res)
|
|
#define O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_LEN OFFSETOF(lbmc_apphdr_chain_msgprop_element_t, len)
|
|
#define L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_LEN SIZEOF(lbmc_apphdr_chain_msgprop_element_t, len)
|
|
#define L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T (gint) sizeof(lbmc_apphdr_chain_msgprop_element_t)
|
|
|
|
/* LBMC appheader chain header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t res;
|
|
lbm_uint8_t first_chain_hdr;
|
|
} lbmc_apphdr_chain_hdr_t;
|
|
#define O_LBMC_APPHDR_CHAIN_HDR_T_NEXT_HDR OFFSETOF(lbmc_apphdr_chain_hdr_t, next_hdr)
|
|
#define L_LBMC_APPHDR_CHAIN_HDR_T_NEXT_HDR SIZEOF(lbmc_apphdr_chain_hdr_t, next_hdr)
|
|
#define O_LBMC_APPHDR_CHAIN_HDR_T_HDR_LEN OFFSETOF(lbmc_apphdr_chain_hdr_t, hdr_len)
|
|
#define L_LBMC_APPHDR_CHAIN_HDR_T_HDR_LEN SIZEOF(lbmc_apphdr_chain_hdr_t, hdr_len)
|
|
#define O_LBMC_APPHDR_CHAIN_HDR_T_RES OFFSETOF(lbmc_apphdr_chain_hdr_t, res)
|
|
#define L_LBMC_APPHDR_CHAIN_HDR_T_RES SIZEOF(lbmc_apphdr_chain_hdr_t, res)
|
|
#define O_LBMC_APPHDR_CHAIN_HDR_T_FIRST_CHAIN_HDR OFFSETOF(lbmc_apphdr_chain_hdr_t, first_chain_hdr)
|
|
#define L_LBMC_APPHDR_CHAIN_HDR_T_FIRST_CHAIN_HDR SIZEOF(lbmc_apphdr_chain_hdr_t, first_chain_hdr)
|
|
#define L_LBMC_APPHDR_CHAIN_HDR_T (gint) sizeof(lbmc_apphdr_chain_hdr_t)
|
|
|
|
/* LBMC UMQ Message ID header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint8_t msgid_regid[8];
|
|
lbm_uint8_t msgid_stamp[8];
|
|
} lbmc_umq_msgid_hdr_t;
|
|
#define O_LBMC_UMQ_MSGID_HDR_T_NEXT_HDR OFFSETOF(lbmc_umq_msgid_hdr_t, next_hdr)
|
|
#define L_LBMC_UMQ_MSGID_HDR_T_NEXT_HDR SIZEOF(lbmc_umq_msgid_hdr_t, next_hdr)
|
|
#define O_LBMC_UMQ_MSGID_HDR_T_HDR_LEN OFFSETOF(lbmc_umq_msgid_hdr_t, hdr_len)
|
|
#define L_LBMC_UMQ_MSGID_HDR_T_HDR_LEN SIZEOF(lbmc_umq_msgid_hdr_t, hdr_len)
|
|
#define O_LBMC_UMQ_MSGID_HDR_T_FLAGS OFFSETOF(lbmc_umq_msgid_hdr_t, flags)
|
|
#define L_LBMC_UMQ_MSGID_HDR_T_FLAGS SIZEOF(lbmc_umq_msgid_hdr_t, flags)
|
|
#define O_LBMC_UMQ_MSGID_HDR_T_MSGID_REGID OFFSETOF(lbmc_umq_msgid_hdr_t, msgid_regid)
|
|
#define L_LBMC_UMQ_MSGID_HDR_T_MSGID_REGID SIZEOF(lbmc_umq_msgid_hdr_t, msgid_regid)
|
|
#define O_LBMC_UMQ_MSGID_HDR_T_MSGID_STAMP OFFSETOF(lbmc_umq_msgid_hdr_t, msgid_stamp)
|
|
#define L_LBMC_UMQ_MSGID_HDR_T_MSGID_STAMP SIZEOF(lbmc_umq_msgid_hdr_t, msgid_stamp)
|
|
#define L_LBMC_UMQ_MSGID_HDR_T (gint) sizeof(lbmc_umq_msgid_hdr_t)
|
|
|
|
/* LBMC UMQ SQD receive header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint32_t queue_ver;
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_umq_sqd_rcv_hdr_t;
|
|
#define O_LBMC_UMQ_SQD_RCV_HDR_T_NEXT_HDR OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, next_hdr)
|
|
#define L_LBMC_UMQ_SQD_RCV_HDR_T_NEXT_HDR SIZEOF(lbmc_umq_sqd_rcv_hdr_t, next_hdr)
|
|
#define O_LBMC_UMQ_SQD_RCV_HDR_T_HDR_LEN OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, hdr_len)
|
|
#define L_LBMC_UMQ_SQD_RCV_HDR_T_HDR_LEN SIZEOF(lbmc_umq_sqd_rcv_hdr_t, hdr_len)
|
|
#define O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, flags)
|
|
#define L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS SIZEOF(lbmc_umq_sqd_rcv_hdr_t, flags)
|
|
#define O_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_ID OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, queue_id)
|
|
#define L_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_ID SIZEOF(lbmc_umq_sqd_rcv_hdr_t, queue_id)
|
|
#define O_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_VER OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, queue_ver)
|
|
#define L_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_VER SIZEOF(lbmc_umq_sqd_rcv_hdr_t, queue_ver)
|
|
#define O_LBMC_UMQ_SQD_RCV_HDR_T_RCR_IDX OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, rcr_idx)
|
|
#define L_LBMC_UMQ_SQD_RCV_HDR_T_RCR_IDX SIZEOF(lbmc_umq_sqd_rcv_hdr_t, rcr_idx)
|
|
#define O_LBMC_UMQ_SQD_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_UMQ_SQD_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_umq_sqd_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_UMQ_SQD_RCV_HDR_T (gint) sizeof(lbmc_umq_sqd_rcv_hdr_t)
|
|
|
|
/* LBMC UMQ resubmission header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t resp_ip;
|
|
lbm_uint16_t resp_port;
|
|
lbm_uint16_t appset_idx;
|
|
} lbmc_umq_resub_hdr_t;
|
|
#define O_LBMC_UMQ_RESUB_HDR_T_NEXT_HDR OFFSETOF(lbmc_umq_resub_hdr_t, next_hdr)
|
|
#define L_LBMC_UMQ_RESUB_HDR_T_NEXT_HDR SIZEOF(lbmc_umq_resub_hdr_t, next_hdr)
|
|
#define O_LBMC_UMQ_RESUB_HDR_T_HDR_LEN OFFSETOF(lbmc_umq_resub_hdr_t, hdr_len)
|
|
#define L_LBMC_UMQ_RESUB_HDR_T_HDR_LEN SIZEOF(lbmc_umq_resub_hdr_t, hdr_len)
|
|
#define O_LBMC_UMQ_RESUB_HDR_T_FLAGS OFFSETOF(lbmc_umq_resub_hdr_t, flags)
|
|
#define L_LBMC_UMQ_RESUB_HDR_T_FLAGS SIZEOF(lbmc_umq_resub_hdr_t, flags)
|
|
#define O_LBMC_UMQ_RESUB_HDR_T_RCR_IDX OFFSETOF(lbmc_umq_resub_hdr_t, rcr_idx)
|
|
#define L_LBMC_UMQ_RESUB_HDR_T_RCR_IDX SIZEOF(lbmc_umq_resub_hdr_t, rcr_idx)
|
|
#define O_LBMC_UMQ_RESUB_HDR_T_RESP_IP OFFSETOF(lbmc_umq_resub_hdr_t, resp_ip)
|
|
#define L_LBMC_UMQ_RESUB_HDR_T_RESP_IP SIZEOF(lbmc_umq_resub_hdr_t, resp_ip)
|
|
#define O_LBMC_UMQ_RESUB_HDR_T_RESP_PORT OFFSETOF(lbmc_umq_resub_hdr_t, resp_port)
|
|
#define L_LBMC_UMQ_RESUB_HDR_T_RESP_PORT SIZEOF(lbmc_umq_resub_hdr_t, resp_port)
|
|
#define O_LBMC_UMQ_RESUB_HDR_T_APPSET_IDX OFFSETOF(lbmc_umq_resub_hdr_t, appset_idx)
|
|
#define L_LBMC_UMQ_RESUB_HDR_T_APPSET_IDX SIZEOF(lbmc_umq_resub_hdr_t, appset_idx)
|
|
#define L_LBMC_UMQ_RESUB_HDR_T (gint) sizeof(lbmc_umq_resub_hdr_t)
|
|
|
|
/* LBMC originating transport ID header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint8_t otid[LBM_OTID_BLOCK_SZ];
|
|
} lbmc_otid_hdr_t;
|
|
#define O_LBMC_OTID_HDR_T_NEXT_HDR OFFSETOF(lbmc_otid_hdr_t, next_hdr)
|
|
#define L_LBMC_OTID_HDR_T_NEXT_HDR SIZEOF(lbmc_otid_hdr_t, next_hdr)
|
|
#define O_LBMC_OTID_HDR_T_HDR_LEN OFFSETOF(lbmc_otid_hdr_t, hdr_len)
|
|
#define L_LBMC_OTID_HDR_T_HDR_LEN SIZEOF(lbmc_otid_hdr_t, hdr_len)
|
|
#define O_LBMC_OTID_HDR_T_FLAGS OFFSETOF(lbmc_otid_hdr_t, flags)
|
|
#define L_LBMC_OTID_HDR_T_FLAGS SIZEOF(lbmc_otid_hdr_t, flags)
|
|
#define O_LBMC_OTID_HDR_T_OTID OFFSETOF(lbmc_otid_hdr_t, otid)
|
|
#define L_LBMC_OTID_HDR_T_OTID SIZEOF(lbmc_otid_hdr_t, otid)
|
|
#define L_LBMC_OTID_HDR_T (gint) sizeof(lbmc_otid_hdr_t)
|
|
|
|
/* LBMC context instance header(s) */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
} lbmc_ctxinst_hdr_t;
|
|
#define O_LBMC_CTXINST_HDR_T_NEXT_HDR OFFSETOF(lbmc_ctxinst_hdr_t, next_hdr)
|
|
#define L_LBMC_CTXINST_HDR_T_NEXT_HDR SIZEOF(lbmc_ctxinst_hdr_t, next_hdr)
|
|
#define O_LBMC_CTXINST_HDR_T_HDR_LEN OFFSETOF(lbmc_ctxinst_hdr_t, hdr_len)
|
|
#define L_LBMC_CTXINST_HDR_T_HDR_LEN SIZEOF(lbmc_ctxinst_hdr_t, hdr_len)
|
|
#define O_LBMC_CTXINST_HDR_T_FLAGS OFFSETOF(lbmc_ctxinst_hdr_t, flags)
|
|
#define L_LBMC_CTXINST_HDR_T_FLAGS SIZEOF(lbmc_ctxinst_hdr_t, flags)
|
|
#define O_LBMC_CTXINST_HDR_T_CTXINST OFFSETOF(lbmc_ctxinst_hdr_t, ctxinst)
|
|
#define L_LBMC_CTXINST_HDR_T_CTXINST SIZEOF(lbmc_ctxinst_hdr_t, ctxinst)
|
|
#define L_LBMC_CTXINST_HDR_T (gint) sizeof(lbmc_ctxinst_hdr_t)
|
|
|
|
/* LBMC source index header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
char srcidx[8];
|
|
} lbmc_srcidx_hdr_t;
|
|
#define O_LBMC_SRCIDX_HDR_T_NEXT_HDR OFFSETOF(lbmc_srcidx_hdr_t, next_hdr)
|
|
#define L_LBMC_SRCIDX_HDR_T_NEXT_HDR SIZEOF(lbmc_srcidx_hdr_t, next_hdr)
|
|
#define O_LBMC_SRCIDX_HDR_T_HDR_LEN OFFSETOF(lbmc_srcidx_hdr_t, hdr_len)
|
|
#define L_LBMC_SRCIDX_HDR_T_HDR_LEN SIZEOF(lbmc_srcidx_hdr_t, hdr_len)
|
|
#define O_LBMC_SRCIDX_HDR_T_FLAGS OFFSETOF(lbmc_srcidx_hdr_t, flags)
|
|
#define L_LBMC_SRCIDX_HDR_T_FLAGS SIZEOF(lbmc_srcidx_hdr_t, flags)
|
|
#define O_LBMC_SRCIDX_HDR_T_SRCIDX OFFSETOF(lbmc_srcidx_hdr_t, srcidx)
|
|
#define L_LBMC_SRCIDX_HDR_T_SRCIDX SIZEOF(lbmc_srcidx_hdr_t, srcidx)
|
|
#define L_LBMC_SRCIDX_HDR_T (gint) sizeof(lbmc_srcidx_hdr_t)
|
|
|
|
/* LBMC UMQ ULB message header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t num_ras;
|
|
} lbmc_umq_ulb_msg_hdr_t;
|
|
#define O_LBMC_UMQ_ULB_MSG_HDR_T_NEXT_HDR OFFSETOF(lbmc_umq_ulb_msg_hdr_t, next_hdr)
|
|
#define L_LBMC_UMQ_ULB_MSG_HDR_T_NEXT_HDR SIZEOF(lbmc_umq_ulb_msg_hdr_t, next_hdr)
|
|
#define O_LBMC_UMQ_ULB_MSG_HDR_T_HDR_LEN OFFSETOF(lbmc_umq_ulb_msg_hdr_t, hdr_len)
|
|
#define L_LBMC_UMQ_ULB_MSG_HDR_T_HDR_LEN SIZEOF(lbmc_umq_ulb_msg_hdr_t, hdr_len)
|
|
#define O_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS OFFSETOF(lbmc_umq_ulb_msg_hdr_t, flags)
|
|
#define L_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS SIZEOF(lbmc_umq_ulb_msg_hdr_t, flags)
|
|
#define O_LBMC_UMQ_ULB_MSG_HDR_T_QUEUE_ID OFFSETOF(lbmc_umq_ulb_msg_hdr_t, queue_id)
|
|
#define L_LBMC_UMQ_ULB_MSG_HDR_T_QUEUE_ID SIZEOF(lbmc_umq_ulb_msg_hdr_t, queue_id)
|
|
#define O_LBMC_UMQ_ULB_MSG_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_umq_ulb_msg_hdr_t, ulb_src_id)
|
|
#define L_LBMC_UMQ_ULB_MSG_HDR_T_ULB_SRC_ID SIZEOF(lbmc_umq_ulb_msg_hdr_t, ulb_src_id)
|
|
#define O_LBMC_UMQ_ULB_MSG_HDR_T_ASSIGN_ID OFFSETOF(lbmc_umq_ulb_msg_hdr_t, assign_id)
|
|
#define L_LBMC_UMQ_ULB_MSG_HDR_T_ASSIGN_ID SIZEOF(lbmc_umq_ulb_msg_hdr_t, assign_id)
|
|
#define O_LBMC_UMQ_ULB_MSG_HDR_T_APPSET_IDX OFFSETOF(lbmc_umq_ulb_msg_hdr_t, appset_idx)
|
|
#define L_LBMC_UMQ_ULB_MSG_HDR_T_APPSET_IDX SIZEOF(lbmc_umq_ulb_msg_hdr_t, appset_idx)
|
|
#define O_LBMC_UMQ_ULB_MSG_HDR_T_NUM_RAS OFFSETOF(lbmc_umq_ulb_msg_hdr_t, num_ras)
|
|
#define L_LBMC_UMQ_ULB_MSG_HDR_T_NUM_RAS SIZEOF(lbmc_umq_ulb_msg_hdr_t, num_ras)
|
|
#define L_LBMC_UMQ_ULB_MSG_HDR_T (gint) sizeof(lbmc_umq_ulb_msg_hdr_t)
|
|
|
|
/* LBMC control source-side filtering initialization header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t transport;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t client_idx;
|
|
lbm_uint16_t ssf_port;
|
|
lbm_uint16_t res;
|
|
lbm_uint32_t ssf_ip;
|
|
} lbmc_cntl_ssf_init_hdr_t;
|
|
#define O_LBMC_CNTL_SSF_INIT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ssf_init_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_SSF_INIT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ssf_init_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_SSF_INIT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ssf_init_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_SSF_INIT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ssf_init_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ssf_init_hdr_t, flags)
|
|
#define L_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS SIZEOF(lbmc_cntl_ssf_init_hdr_t, flags)
|
|
#define O_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT OFFSETOF(lbmc_cntl_ssf_init_hdr_t, transport)
|
|
#define L_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT SIZEOF(lbmc_cntl_ssf_init_hdr_t, transport)
|
|
#define O_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ssf_init_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ssf_init_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_SSF_INIT_HDR_T_CLIENT_IDX OFFSETOF(lbmc_cntl_ssf_init_hdr_t, client_idx)
|
|
#define L_LBMC_CNTL_SSF_INIT_HDR_T_CLIENT_IDX SIZEOF(lbmc_cntl_ssf_init_hdr_t, client_idx)
|
|
#define O_LBMC_CNTL_SSF_INIT_HDR_T_SSF_PORT OFFSETOF(lbmc_cntl_ssf_init_hdr_t, ssf_port)
|
|
#define L_LBMC_CNTL_SSF_INIT_HDR_T_SSF_PORT SIZEOF(lbmc_cntl_ssf_init_hdr_t, ssf_port)
|
|
#define O_LBMC_CNTL_SSF_INIT_HDR_T_RES OFFSETOF(lbmc_cntl_ssf_init_hdr_t, res)
|
|
#define L_LBMC_CNTL_SSF_INIT_HDR_T_RES SIZEOF(lbmc_cntl_ssf_init_hdr_t, res)
|
|
#define O_LBMC_CNTL_SSF_INIT_HDR_T_SSF_IP OFFSETOF(lbmc_cntl_ssf_init_hdr_t, ssf_ip)
|
|
#define L_LBMC_CNTL_SSF_INIT_HDR_T_SSF_IP SIZEOF(lbmc_cntl_ssf_init_hdr_t, ssf_ip)
|
|
#define L_LBMC_CNTL_SSF_INIT_HDR_T (gint) sizeof(lbmc_cntl_ssf_init_hdr_t)
|
|
|
|
/* LBMC control source-side filtering control request header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t res;
|
|
lbm_uint8_t mode;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t topic_idx;
|
|
lbm_uint32_t client_idx;
|
|
} lbmc_cntl_ssf_creq_hdr_t;
|
|
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ssf_creq_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ssf_creq_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, res)
|
|
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_ssf_creq_hdr_t, res)
|
|
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_MODE OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, mode)
|
|
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_MODE SIZEOF(lbmc_cntl_ssf_creq_hdr_t, mode)
|
|
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ssf_creq_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_ssf_creq_hdr_t, topic_idx)
|
|
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_CLIENT_IDX OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, client_idx)
|
|
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_CLIENT_IDX SIZEOF(lbmc_cntl_ssf_creq_hdr_t, client_idx)
|
|
#define L_LBMC_CNTL_SSF_CREQ_HDR_T (gint) sizeof(lbmc_cntl_ssf_creq_hdr_t)
|
|
|
|
/* LBMC control UME presistent registration header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t marker;
|
|
lbm_uint32_t reg_id;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t topic_idx;
|
|
lbm_uint32_t src_reg_id;
|
|
lbm_uint16_t resp_port;
|
|
lbm_uint16_t res2;
|
|
lbm_uint32_t resp_ip;
|
|
} lbmc_cntl_ume_preg_hdr_t;
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_preg_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_preg_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_preg_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_preg_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_preg_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_preg_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_MARKER OFFSETOF(lbmc_cntl_ume_preg_hdr_t, marker)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_MARKER SIZEOF(lbmc_cntl_ume_preg_hdr_t, marker)
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_REG_ID OFFSETOF(lbmc_cntl_ume_preg_hdr_t, reg_id)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_REG_ID SIZEOF(lbmc_cntl_ume_preg_hdr_t, reg_id)
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_preg_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_preg_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_ume_preg_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_ume_preg_hdr_t, topic_idx)
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_SRC_REG_ID OFFSETOF(lbmc_cntl_ume_preg_hdr_t, src_reg_id)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_SRC_REG_ID SIZEOF(lbmc_cntl_ume_preg_hdr_t, src_reg_id)
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_RESP_PORT OFFSETOF(lbmc_cntl_ume_preg_hdr_t, resp_port)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_RESP_PORT SIZEOF(lbmc_cntl_ume_preg_hdr_t, resp_port)
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_RES2 OFFSETOF(lbmc_cntl_ume_preg_hdr_t, res2)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_RES2 SIZEOF(lbmc_cntl_ume_preg_hdr_t, res2)
|
|
#define O_LBMC_CNTL_UME_PREG_HDR_T_RESP_IP OFFSETOF(lbmc_cntl_ume_preg_hdr_t, resp_ip)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T_RESP_IP SIZEOF(lbmc_cntl_ume_preg_hdr_t, resp_ip)
|
|
#define L_LBMC_CNTL_UME_PREG_HDR_T (gint) sizeof(lbmc_cntl_ume_preg_hdr_t)
|
|
|
|
#define LBMC_CNTL_UME_PREG_MARKER(x) (x & 0x7F)
|
|
#define LBMC_CNTL_UME_PREG_MARKER_MASK 0x7F
|
|
|
|
/* LBMC control UME persistent registration response header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t code;
|
|
lbm_uint8_t marker;
|
|
lbm_uint32_t reg_id;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t topic_idx;
|
|
lbm_uint32_t low_seqnum;
|
|
lbm_uint32_t high_seqnum;
|
|
} lbmc_cntl_ume_preg_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, code)
|
|
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, code)
|
|
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, marker)
|
|
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, marker)
|
|
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_REG_ID OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, reg_id)
|
|
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_REG_ID SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, reg_id)
|
|
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, topic_idx)
|
|
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_LOW_SEQNUM OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, low_seqnum)
|
|
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_LOW_SEQNUM SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, low_seqnum)
|
|
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_HIGH_SEQNUM OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, high_seqnum)
|
|
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_HIGH_SEQNUM SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, high_seqnum)
|
|
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T (gint) sizeof(lbmc_cntl_ume_preg_resp_hdr_t)
|
|
|
|
#define LBMC_CNTL_UME_PREG_RESP_CODE(x) (x & 0x0F)
|
|
#define LBMC_CNTL_UME_PREG_RESP_CODE_MASK 0x0F
|
|
|
|
/* LBMC control UME acknowledgement header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t type;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t id_2;
|
|
lbm_uint32_t rcv_reg_id;
|
|
lbm_uint32_t seqnum;
|
|
} lbmc_cntl_ume_ack_hdr_t;
|
|
#define O_LBMC_CNTL_UME_ACK_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_ack_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_ACK_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_ack_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_ACK_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_ack_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_ACK_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_ack_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_ack_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_ack_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_ACK_HDR_T_TYPE OFFSETOF(lbmc_cntl_ume_ack_hdr_t, type)
|
|
#define L_LBMC_CNTL_UME_ACK_HDR_T_TYPE SIZEOF(lbmc_cntl_ume_ack_hdr_t, type)
|
|
#define O_LBMC_CNTL_UME_ACK_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_ack_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_UME_ACK_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_ack_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_UME_ACK_HDR_T_ID_2 OFFSETOF(lbmc_cntl_ume_ack_hdr_t, id_2)
|
|
#define L_LBMC_CNTL_UME_ACK_HDR_T_ID_2 SIZEOF(lbmc_cntl_ume_ack_hdr_t, id_2)
|
|
#define O_LBMC_CNTL_UME_ACK_HDR_T_RCV_REG_ID OFFSETOF(lbmc_cntl_ume_ack_hdr_t, rcv_reg_id)
|
|
#define L_LBMC_CNTL_UME_ACK_HDR_T_RCV_REG_ID SIZEOF(lbmc_cntl_ume_ack_hdr_t, rcv_reg_id)
|
|
#define O_LBMC_CNTL_UME_ACK_HDR_T_SEQNUM OFFSETOF(lbmc_cntl_ume_ack_hdr_t, seqnum)
|
|
#define L_LBMC_CNTL_UME_ACK_HDR_T_SEQNUM SIZEOF(lbmc_cntl_ume_ack_hdr_t, seqnum)
|
|
#define L_LBMC_CNTL_UME_ACK_HDR_T (gint) sizeof(lbmc_cntl_ume_ack_hdr_t)
|
|
|
|
/* LBMC control UME ranged acknowledgement header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t first_seqnum;
|
|
lbm_uint32_t last_seqnum;
|
|
} lbmc_cntl_ume_ranged_ack_hdr_t;
|
|
#define O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_ranged_ack_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_ranged_ack_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_ranged_ack_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_ranged_ack_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_ranged_ack_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_ranged_ack_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FIRST_SEQNUM OFFSETOF(lbmc_cntl_ume_ranged_ack_hdr_t, first_seqnum)
|
|
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FIRST_SEQNUM SIZEOF(lbmc_cntl_ume_ranged_ack_hdr_t, first_seqnum)
|
|
#define O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_LAST_SEQNUM OFFSETOF(lbmc_cntl_ume_ranged_ack_hdr_t, last_seqnum)
|
|
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_LAST_SEQNUM SIZEOF(lbmc_cntl_ume_ranged_ack_hdr_t, last_seqnum)
|
|
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T (gint) sizeof(lbmc_cntl_ume_ranged_ack_hdr_t)
|
|
|
|
/* LBMC control UME acknowledgement ID header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t id;
|
|
} lbmc_cntl_ume_ack_id_hdr_t;
|
|
#define O_LBMC_CNTL_UME_ACK_ID_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_ack_id_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_ACK_ID_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_ack_id_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_ACK_ID_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_ack_id_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_ACK_ID_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_ack_id_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_ack_id_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_ack_id_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_ACK_ID_HDR_T_ID OFFSETOF(lbmc_cntl_ume_ack_id_hdr_t, id)
|
|
#define L_LBMC_CNTL_UME_ACK_ID_HDR_T_ID SIZEOF(lbmc_cntl_ume_ack_id_hdr_t, id)
|
|
#define L_LBMC_CNTL_UME_ACK_ID_HDR_T (gint) sizeof(lbmc_cntl_ume_ack_id_hdr_t)
|
|
|
|
/* LBMC control UME retransmision request header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t request_idx;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t id_2;
|
|
lbm_uint32_t seqnum;
|
|
lbm_uint16_t rx_port;
|
|
lbm_uint16_t res;
|
|
lbm_uint32_t rx_ip;
|
|
} lbmc_cntl_ume_rxreq_hdr_t;
|
|
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_REQUEST_IDX OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, request_idx)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_REQUEST_IDX SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, request_idx)
|
|
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_ID_2 OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, id_2)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_ID_2 SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, id_2)
|
|
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_SEQNUM OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, seqnum)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_SEQNUM SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, seqnum)
|
|
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_RX_PORT OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, rx_port)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_RX_PORT SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, rx_port)
|
|
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_RES OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, res)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_RES SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, res)
|
|
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_RX_IP OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, rx_ip)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_RX_IP SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, rx_ip)
|
|
#define L_LBMC_CNTL_UME_RXREQ_HDR_T (gint) sizeof(lbmc_cntl_ume_rxreq_hdr_t)
|
|
|
|
/* LBMC control late join initiation request */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t request_idx;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t topic_idx;
|
|
lbm_uint32_t req_ip;
|
|
lbm_uint16_t req_port;
|
|
lbm_uint16_t res;
|
|
lbm_uint32_t tx_low_sqn;
|
|
lbm_uint32_t rx_req_max;
|
|
lbm_uint32_t rx_req_outstanding_max;
|
|
} lbmc_cntl_lji_req_hdr_t;
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_lji_req_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_lji_req_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_lji_req_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_lji_req_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_lji_req_hdr_t, flags)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_lji_req_hdr_t, flags)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_REQUEST_IDX OFFSETOF(lbmc_cntl_lji_req_hdr_t, request_idx)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_REQUEST_IDX SIZEOF(lbmc_cntl_lji_req_hdr_t, request_idx)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_lji_req_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_lji_req_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_lji_req_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_lji_req_hdr_t, topic_idx)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_REQ_IP OFFSETOF(lbmc_cntl_lji_req_hdr_t, req_ip)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_REQ_IP SIZEOF(lbmc_cntl_lji_req_hdr_t, req_ip)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_REQ_PORT OFFSETOF(lbmc_cntl_lji_req_hdr_t, req_port)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_REQ_PORT SIZEOF(lbmc_cntl_lji_req_hdr_t, req_port)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_RES OFFSETOF(lbmc_cntl_lji_req_hdr_t, res)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_RES SIZEOF(lbmc_cntl_lji_req_hdr_t, res)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_TX_LOW_SQN OFFSETOF(lbmc_cntl_lji_req_hdr_t, tx_low_sqn)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_TX_LOW_SQN SIZEOF(lbmc_cntl_lji_req_hdr_t, tx_low_sqn)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_MAX OFFSETOF(lbmc_cntl_lji_req_hdr_t, rx_req_max)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_MAX SIZEOF(lbmc_cntl_lji_req_hdr_t, rx_req_max)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_OUTSTANDING_MAX OFFSETOF(lbmc_cntl_lji_req_hdr_t, rx_req_outstanding_max)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_OUTSTANDING_MAX SIZEOF(lbmc_cntl_lji_req_hdr_t, rx_req_outstanding_max)
|
|
#define O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_lji_req_hdr_t, flags)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_lji_req_hdr_t, flags)
|
|
#define L_LBMC_CNTL_LJI_REQ_HDR_T (gint) sizeof(lbmc_cntl_lji_req_hdr_t)
|
|
|
|
/* LBMC control UME keepalive header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t type;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t topic_idx;
|
|
lbm_uint32_t reg_id;
|
|
} lbmc_cntl_ume_keepalive_hdr_t;
|
|
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TYPE OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, type)
|
|
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TYPE SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, type)
|
|
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, topic_idx)
|
|
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_REG_ID OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, reg_id)
|
|
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_REG_ID SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, reg_id)
|
|
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T (gint) sizeof(lbmc_cntl_ume_keepalive_hdr_t)
|
|
|
|
/* LBMC control UME store ID header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t store_id;
|
|
} lbmc_cntl_ume_storeid_hdr_t;
|
|
#define O_LBMC_CNTL_UME_STOREID_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_storeid_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_STOREID_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_storeid_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_STOREID_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_storeid_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_STOREID_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_storeid_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID OFFSETOF(lbmc_cntl_ume_storeid_hdr_t, store_id)
|
|
#define L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID SIZEOF(lbmc_cntl_ume_storeid_hdr_t, store_id)
|
|
#define L_LBMC_CNTL_UME_STOREID_HDR_T (gint) sizeof(lbmc_cntl_ume_storeid_hdr_t)
|
|
|
|
#define LBMC_CNTL_UME_STOREID_STOREID(x) (x & 0x7FFF)
|
|
#define LBMC_CNTL_UME_STOREID_STOREID_MASK 0x7FFF
|
|
|
|
/* LBMC control UME capability header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
} lbmc_cntl_ume_capability_hdr_t;
|
|
#define O_LBMC_CNTL_UME_CAPABILITY_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_capability_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_CAPABILITY_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_capability_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_CAPABILITY_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_capability_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_CAPABILITY_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_capability_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_capability_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_capability_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_CAPABILITY_HDR_T (gint) sizeof(lbmc_cntl_ume_capability_hdr_t)
|
|
|
|
/* LBMC control UME Proxy Source header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
} lbmc_cntl_ume_proxy_src_hdr_t;
|
|
#define O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_proxy_src_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_proxy_src_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_proxy_src_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_proxy_src_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_proxy_src_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_proxy_src_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_PROXY_SRC_HDR_T (gint) sizeof(lbmc_cntl_ume_proxy_src_hdr_t)
|
|
|
|
/* LBMC control UME Store header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t grp_idx;
|
|
lbm_uint16_t store_tcp_port;
|
|
lbm_uint16_t store_idx;
|
|
lbm_uint32_t store_ip_addr;
|
|
lbm_uint32_t src_reg_id;
|
|
} lbmc_cntl_ume_store_hdr_t;
|
|
#define O_LBMC_CNTL_UME_STORE_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_store_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_STORE_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_store_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_STORE_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_store_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_STORE_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_store_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_STORE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_store_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_STORE_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_store_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_STORE_HDR_T_GRP_IDX OFFSETOF(lbmc_cntl_ume_store_hdr_t, grp_idx)
|
|
#define L_LBMC_CNTL_UME_STORE_HDR_T_GRP_IDX SIZEOF(lbmc_cntl_ume_store_hdr_t, grp_idx)
|
|
#define O_LBMC_CNTL_UME_STORE_HDR_T_STORE_TCP_PORT OFFSETOF(lbmc_cntl_ume_store_hdr_t, store_tcp_port)
|
|
#define L_LBMC_CNTL_UME_STORE_HDR_T_STORE_TCP_PORT SIZEOF(lbmc_cntl_ume_store_hdr_t, store_tcp_port)
|
|
#define O_LBMC_CNTL_UME_STORE_HDR_T_STORE_IDX OFFSETOF(lbmc_cntl_ume_store_hdr_t, store_idx)
|
|
#define L_LBMC_CNTL_UME_STORE_HDR_T_STORE_IDX SIZEOF(lbmc_cntl_ume_store_hdr_t, store_idx)
|
|
#define O_LBMC_CNTL_UME_STORE_HDR_T_STORE_IP_ADDR OFFSETOF(lbmc_cntl_ume_store_hdr_t, store_ip_addr)
|
|
#define L_LBMC_CNTL_UME_STORE_HDR_T_STORE_IP_ADDR SIZEOF(lbmc_cntl_ume_store_hdr_t, store_ip_addr)
|
|
#define O_LBMC_CNTL_UME_STORE_HDR_T_SRC_REG_ID OFFSETOF(lbmc_cntl_ume_store_hdr_t, src_reg_id)
|
|
#define L_LBMC_CNTL_UME_STORE_HDR_T_SRC_REG_ID SIZEOF(lbmc_cntl_ume_store_hdr_t, src_reg_id)
|
|
#define L_LBMC_CNTL_UME_STORE_HDR_T (gint) sizeof(lbmc_cntl_ume_store_hdr_t)
|
|
|
|
/* LBMC control UME Store Extended header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t grp_idx;
|
|
lbm_uint16_t store_tcp_port;
|
|
lbm_uint16_t store_idx;
|
|
lbm_uint32_t store_ip_addr;
|
|
lbm_uint32_t src_reg_id;
|
|
lbm_uint32_t domain_id;
|
|
lbm_uint32_t version;
|
|
} lbmc_cntl_ume_store_ext_hdr_t;
|
|
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_GRP_IDX OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, grp_idx)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_GRP_IDX SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, grp_idx)
|
|
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_TCP_PORT OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, store_tcp_port)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_TCP_PORT SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, store_tcp_port)
|
|
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IDX OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, store_idx)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IDX SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, store_idx)
|
|
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IP_ADDR OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, store_ip_addr)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IP_ADDR SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, store_ip_addr)
|
|
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_SRC_REG_ID OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, src_reg_id)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_SRC_REG_ID SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, src_reg_id)
|
|
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, domain_id)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, domain_id)
|
|
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_VERSION OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, version)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_VERSION SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, version)
|
|
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T (gint) sizeof(lbmc_cntl_ume_store_ext_hdr_t)
|
|
|
|
/* LBMC control UME Late Join info header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t low_seqnum;
|
|
lbm_uint32_t high_seqnum;
|
|
lbm_uint32_t qidx;
|
|
} lbmc_cntl_ume_lj_info_hdr_t;
|
|
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_LOW_SEQNUM OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, low_seqnum)
|
|
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_LOW_SEQNUM SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, low_seqnum)
|
|
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_HIGH_SEQNUM OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, high_seqnum)
|
|
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_HIGH_SEQNUM SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, high_seqnum)
|
|
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_QIDX OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, qidx)
|
|
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_QIDX SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, qidx)
|
|
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T (gint) sizeof(lbmc_cntl_ume_lj_info_hdr_t)
|
|
|
|
/* LBMC control UME Store Group header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t grp_idx;
|
|
lbm_uint16_t grp_sz;
|
|
lbm_uint16_t res1;
|
|
} lbmc_cntl_ume_store_group_hdr_t;
|
|
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_store_group_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_store_group_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_store_group_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_IDX OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, grp_idx)
|
|
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_IDX SIZEOF(lbmc_cntl_ume_store_group_hdr_t, grp_idx)
|
|
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_SZ OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, grp_sz)
|
|
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_SZ SIZEOF(lbmc_cntl_ume_store_group_hdr_t, grp_sz)
|
|
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_RES1 OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, res1)
|
|
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_RES1 SIZEOF(lbmc_cntl_ume_store_group_hdr_t, res1)
|
|
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T (gint) sizeof(lbmc_cntl_ume_store_group_hdr_t)
|
|
|
|
/* LBMC control TSNI header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t num_recs;
|
|
} lbmc_cntl_tsni_hdr_t;
|
|
#define O_LBMC_CNTL_TSNI_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_tsni_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_TSNI_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_tsni_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_TSNI_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_tsni_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_TSNI_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_tsni_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_TSNI_HDR_T_NUM_RECS OFFSETOF(lbmc_cntl_tsni_hdr_t, num_recs)
|
|
#define L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS SIZEOF(lbmc_cntl_tsni_hdr_t, num_recs)
|
|
#define L_LBMC_CNTL_TSNI_HDR_T (gint) sizeof(lbmc_cntl_tsni_hdr_t)
|
|
|
|
#define LBMC_CNTL_TSNI_NUM_RECS_MASK 0x7fff
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t tidx;
|
|
lbm_uint32_t sqn;
|
|
} lbmc_cntl_tsni_rec_hdr_t;
|
|
#define O_LBMC_CNTL_TSNI_REC_HDR_T_TIDX OFFSETOF(lbmc_cntl_tsni_rec_hdr_t, tidx)
|
|
#define L_LBMC_CNTL_TSNI_REC_HDR_T_TIDX SIZEOF(lbmc_cntl_tsni_rec_hdr_t, tidx)
|
|
#define O_LBMC_CNTL_TSNI_REC_HDR_T_SQN OFFSETOF(lbmc_cntl_tsni_rec_hdr_t, sqn)
|
|
#define L_LBMC_CNTL_TSNI_REC_HDR_T_SQN SIZEOF(lbmc_cntl_tsni_rec_hdr_t, sqn)
|
|
#define L_LBMC_CNTL_TSNI_REC_HDR_T (gint) sizeof(lbmc_cntl_tsni_rec_hdr_t)
|
|
|
|
/* LBMC control UMQ registration header(s) */
|
|
typedef struct
|
|
{
|
|
lbm_uint16_t port;
|
|
lbm_uint16_t reserved;
|
|
lbm_uint32_t ip;
|
|
lbm_uint32_t capabilities;
|
|
} lbmc_cntl_umq_reg_ctx_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_PORT OFFSETOF(lbmc_cntl_umq_reg_ctx_hdr_t, port)
|
|
#define L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_PORT SIZEOF(lbmc_cntl_umq_reg_ctx_hdr_t, port)
|
|
#define O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_ctx_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_ctx_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_IP OFFSETOF(lbmc_cntl_umq_reg_ctx_hdr_t, ip)
|
|
#define L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_IP SIZEOF(lbmc_cntl_umq_reg_ctx_hdr_t, ip)
|
|
#define O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_CAPABILITIES OFFSETOF(lbmc_cntl_umq_reg_ctx_hdr_t, capabilities)
|
|
#define L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_CAPABILITIES SIZEOF(lbmc_cntl_umq_reg_ctx_hdr_t, capabilities)
|
|
#define L_LBMC_CNTL_UMQ_REG_CTX_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_ctx_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t topic_idx;
|
|
} lbmc_cntl_umq_reg_src_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_umq_reg_src_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_umq_reg_src_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_umq_reg_src_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_umq_reg_src_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_SRC_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_src_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t rcv_type_id;
|
|
lbm_uint32_t last_topic_rcr_tsp;
|
|
} lbmc_cntl_umq_reg_rcv_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_reg_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_reg_rcv_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_RCV_HDR_T_RCV_TYPE_ID OFFSETOF(lbmc_cntl_umq_reg_rcv_hdr_t, rcv_type_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_RCV_HDR_T_RCV_TYPE_ID SIZEOF(lbmc_cntl_umq_reg_rcv_hdr_t, rcv_type_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_RCV_HDR_T_LAST_TOPIC_RCR_TSP OFFSETOF(lbmc_cntl_umq_reg_rcv_hdr_t, last_topic_rcr_tsp)
|
|
#define L_LBMC_CNTL_UMQ_REG_RCV_HDR_T_LAST_TOPIC_RCR_TSP SIZEOF(lbmc_cntl_umq_reg_rcv_hdr_t, last_topic_rcr_tsp)
|
|
#define L_LBMC_CNTL_UMQ_REG_RCV_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_rcv_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_rcv_dereg_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcv_dereg_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcv_dereg_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcv_dereg_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcv_dereg_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T (gint) sizeof(lbmc_cntl_umq_rcv_dereg_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t rcv_type_id;
|
|
lbm_uint16_t port;
|
|
lbm_uint16_t reserved;
|
|
lbm_uint32_t ip;
|
|
lbm_uint32_t capabilities;
|
|
} lbmc_cntl_umq_reg_ulb_rcv_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_RCV_TYPE_ID OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, rcv_type_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_RCV_TYPE_ID SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, rcv_type_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_PORT OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, port)
|
|
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_PORT SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, port)
|
|
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_IP OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, ip)
|
|
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_IP SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, ip)
|
|
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_CAPABILITIES OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, capabilities)
|
|
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_CAPABILITIES SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, capabilities)
|
|
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_ulb_rcv_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_ulb_rcv_dereg_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_ulb_rcv_dereg_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_ulb_rcv_dereg_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ulb_rcv_dereg_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ulb_rcv_dereg_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T (gint) sizeof(lbmc_cntl_umq_ulb_rcv_dereg_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t rcv_type_id;
|
|
lbm_uint32_t last_topic_rcr_tsp;
|
|
} lbmc_cntl_umq_reg_observer_rcv_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_reg_observer_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_reg_observer_rcv_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_RCV_TYPE_ID OFFSETOF(lbmc_cntl_umq_reg_observer_rcv_hdr_t, rcv_type_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_RCV_TYPE_ID SIZEOF(lbmc_cntl_umq_reg_observer_rcv_hdr_t, rcv_type_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_LAST_TOPIC_RCR_TSP OFFSETOF(lbmc_cntl_umq_reg_observer_rcv_hdr_t, last_topic_rcr_tsp)
|
|
#define L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_LAST_TOPIC_RCR_TSP SIZEOF(lbmc_cntl_umq_reg_observer_rcv_hdr_t, last_topic_rcr_tsp)
|
|
#define L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_observer_rcv_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_observer_rcv_dereg_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_observer_rcv_dereg_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_observer_rcv_dereg_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_observer_rcv_dereg_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_observer_rcv_dereg_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T (gint) sizeof(lbmc_cntl_umq_observer_rcv_dereg_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t reg_type;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint16_t cmd_id;
|
|
lbm_uint16_t inst_idx;
|
|
lbm_uint8_t regid[8];
|
|
} lbmc_cntl_umq_reg_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_reg_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_REG_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_reg_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_reg_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_reg_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_reg_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_reg_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_REG_HDR_T_REG_TYPE OFFSETOF(lbmc_cntl_umq_reg_hdr_t, reg_type)
|
|
#define L_LBMC_CNTL_UMQ_REG_HDR_T_REG_TYPE SIZEOF(lbmc_cntl_umq_reg_hdr_t, reg_type)
|
|
#define O_LBMC_CNTL_UMQ_REG_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_reg_hdr_t, queue_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_reg_hdr_t, queue_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_reg_hdr_t, cmd_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_reg_hdr_t, cmd_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_reg_hdr_t, inst_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_reg_hdr_t, inst_idx)
|
|
#define O_LBMC_CNTL_UMQ_REG_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_reg_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_REG_HDR_T_REGID SIZEOF(lbmc_cntl_umq_reg_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_REG_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_hdr_t)
|
|
|
|
/* LBMC control UMQ registration response header(s) */
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t capabilities;
|
|
} lbmc_cntl_umq_reg_resp_ctx_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T_CAPABILITIES OFFSETOF(lbmc_cntl_umq_reg_resp_ctx_hdr_t, capabilities)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T_CAPABILITIES SIZEOF(lbmc_cntl_umq_reg_resp_ctx_hdr_t, capabilities)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_resp_ctx_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t capabilities;
|
|
lbm_uint16_t reserved;
|
|
lbm_uint16_t flags;
|
|
lbm_uint8_t stamp[8];
|
|
} lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_CAPABILITIES OFFSETOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, capabilities)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_CAPABILITIES SIZEOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, capabilities)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_STAMP OFFSETOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, stamp)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_STAMP SIZEOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, stamp)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint16_t reserved;
|
|
lbm_uint16_t code;
|
|
} lbmc_cntl_umq_reg_resp_err_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_resp_err_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_resp_err_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_CODE OFFSETOF(lbmc_cntl_umq_reg_resp_err_hdr_t, code)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_CODE SIZEOF(lbmc_cntl_umq_reg_resp_err_hdr_t, code)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_resp_err_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
} lbmc_cntl_umq_reg_resp_src_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_src_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_reg_resp_src_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_resp_src_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_reg_resp_rcv_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_resp_rcv_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_rcv_dereg_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcv_dereg_resp_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcv_dereg_resp_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcv_dereg_resp_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcv_dereg_resp_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T (gint) sizeof(lbmc_cntl_umq_rcv_dereg_resp_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
lbm_uint32_t capabilities;
|
|
} lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_CAPABILITIES OFFSETOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, capabilities)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_CAPABILITIES SIZEOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, capabilities)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_ulb_rcv_dereg_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_ulb_rcv_dereg_resp_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_ulb_rcv_dereg_resp_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ulb_rcv_dereg_resp_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ulb_rcv_dereg_resp_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T (gint) sizeof(lbmc_cntl_umq_ulb_rcv_dereg_resp_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_observer_rcv_dereg_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_observer_rcv_dereg_resp_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_observer_rcv_dereg_resp_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_observer_rcv_dereg_resp_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_observer_rcv_dereg_resp_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T (gint) sizeof(lbmc_cntl_umq_observer_rcv_dereg_resp_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t resp_type;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint16_t cmd_id;
|
|
lbm_uint16_t inst_idx;
|
|
lbm_uint8_t regid[8];
|
|
} lbmc_cntl_umq_reg_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESP_TYPE OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, resp_type)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESP_TYPE SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, resp_type)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, queue_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, queue_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, cmd_id)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, cmd_id)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, inst_idx)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, inst_idx)
|
|
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESPID OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESPID SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T (gint) sizeof(lbmc_cntl_umq_reg_resp_hdr_t)
|
|
|
|
/* LBMC control UMQ ACK header(s) */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t regid[8];
|
|
lbm_uint8_t stamp[8];
|
|
} lbmc_cntl_umq_ack_msgid_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_ack_msgid_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_REGID SIZEOF(lbmc_cntl_umq_ack_msgid_hdr_t, regid)
|
|
#define O_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_STAMP OFFSETOF(lbmc_cntl_umq_ack_msgid_hdr_t, stamp)
|
|
#define L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_STAMP SIZEOF(lbmc_cntl_umq_ack_msgid_hdr_t, stamp)
|
|
#define L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T (gint) sizeof(lbmc_cntl_umq_ack_msgid_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint16_t inst_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_ack_stable_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_ack_stable_hdr_t, queue_id)
|
|
#define L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_ack_stable_hdr_t, queue_id)
|
|
#define O_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_ack_stable_hdr_t, inst_idx)
|
|
#define L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_ack_stable_hdr_t, inst_idx)
|
|
#define O_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ack_stable_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ack_stable_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T (gint) sizeof(lbmc_cntl_umq_ack_stable_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_ack_cr_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_ack_cr_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_ack_cr_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ack_cr_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ack_cr_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ack_cr_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ack_cr_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ack_cr_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ack_cr_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ACK_CR_HDR_T (gint) sizeof(lbmc_cntl_umq_ack_cr_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_ack_ulb_cr_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T (gint) sizeof(lbmc_cntl_umq_ack_ulb_cr_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t msgs;
|
|
lbm_uint8_t ack_type;
|
|
} lbmc_cntl_umq_ack_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ACK_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_ack_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_ACK_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_ack_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_ACK_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_ack_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_ACK_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_ack_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS OFFSETOF(lbmc_cntl_umq_ack_hdr_t, msgs)
|
|
#define L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS SIZEOF(lbmc_cntl_umq_ack_hdr_t, msgs)
|
|
#define O_LBMC_CNTL_UMQ_ACK_HDR_T_ACK_TYPE OFFSETOF(lbmc_cntl_umq_ack_hdr_t, ack_type)
|
|
#define L_LBMC_CNTL_UMQ_ACK_HDR_T_ACK_TYPE SIZEOF(lbmc_cntl_umq_ack_hdr_t, ack_type)
|
|
#define L_LBMC_CNTL_UMQ_ACK_HDR_T (gint) sizeof(lbmc_cntl_umq_ack_hdr_t)
|
|
|
|
/* UMQ control receiver control record header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint8_t msgid_regid[8];
|
|
lbm_uint8_t msgid_stamp[8];
|
|
lbm_uint32_t topic_tsp;
|
|
lbm_uint32_t q_tsp;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t num_ras;
|
|
lbm_uint32_t queue_ver;
|
|
} lbmc_cntl_umq_rcr_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_rcr_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_rcr_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_rcr_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, queue_id)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_rcr_hdr_t, queue_id)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcr_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, msgid_regid)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_rcr_hdr_t, msgid_regid)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, msgid_stamp)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_rcr_hdr_t, msgid_stamp)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_TOPIC_TSP OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, topic_tsp)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_TOPIC_TSP SIZEOF(lbmc_cntl_umq_rcr_hdr_t, topic_tsp)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_Q_TSP OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, q_tsp)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_Q_TSP SIZEOF(lbmc_cntl_umq_rcr_hdr_t, q_tsp)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcr_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_rcr_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_NUM_RAS OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, num_ras)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_NUM_RAS SIZEOF(lbmc_cntl_umq_rcr_hdr_t, num_ras)
|
|
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_VER OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, queue_ver)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_VER SIZEOF(lbmc_cntl_umq_rcr_hdr_t, queue_ver)
|
|
#define L_LBMC_CNTL_UMQ_RCR_HDR_T (gint) sizeof(lbmc_cntl_umq_rcr_hdr_t)
|
|
|
|
/* LBMC control UMQ keepalive header(s) */
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t topic_idx;
|
|
} lbmc_cntl_umq_ka_src_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_umq_ka_src_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_umq_ka_src_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_umq_ka_src_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_umq_ka_src_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_UMQ_KA_SRC_HDR_T (gint) sizeof(lbmc_cntl_umq_ka_src_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_ka_rcv_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_KA_RCV_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_ka_rcv_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_KA_RCV_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_ka_rcv_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_KA_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ka_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_KA_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ka_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_KA_RCV_HDR_T (gint) sizeof(lbmc_cntl_umq_ka_rcv_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_ka_ulb_rcv_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_ka_ulb_rcv_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_ka_ulb_rcv_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ka_ulb_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ka_ulb_rcv_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T (gint) sizeof(lbmc_cntl_umq_ka_ulb_rcv_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T (gint) sizeof(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t ka_type;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint8_t regid[8];
|
|
lbm_uint16_t inst_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_ka_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_KA_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_ka_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_KA_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_ka_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_ka_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_ka_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_ka_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_ka_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_KA_HDR_T_KA_TYPE OFFSETOF(lbmc_cntl_umq_ka_hdr_t, ka_type)
|
|
#define L_LBMC_CNTL_UMQ_KA_HDR_T_KA_TYPE SIZEOF(lbmc_cntl_umq_ka_hdr_t, ka_type)
|
|
#define O_LBMC_CNTL_UMQ_KA_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_ka_hdr_t, queue_id)
|
|
#define L_LBMC_CNTL_UMQ_KA_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_ka_hdr_t, queue_id)
|
|
#define O_LBMC_CNTL_UMQ_KA_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_ka_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_KA_HDR_T_REGID SIZEOF(lbmc_cntl_umq_ka_hdr_t, regid)
|
|
#define O_LBMC_CNTL_UMQ_KA_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_ka_hdr_t, inst_idx)
|
|
#define L_LBMC_CNTL_UMQ_KA_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_ka_hdr_t, inst_idx)
|
|
#define O_LBMC_CNTL_UMQ_KA_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ka_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_KA_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ka_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_KA_HDR_T (gint) sizeof(lbmc_cntl_umq_ka_hdr_t)
|
|
|
|
/* LBMC control UMQ retransmission request header(s) */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t regid[8];
|
|
} lbmc_cntl_umq_rxreq_regid_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_rxreq_regid_resp_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T_REGID SIZEOF(lbmc_cntl_umq_rxreq_regid_resp_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T (gint) sizeof(lbmc_cntl_umq_rxreq_regid_resp_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ip;
|
|
lbm_uint16_t port;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_rxreq_addr_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_IP OFFSETOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, ip)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_IP SIZEOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, ip)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_PORT OFFSETOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, port)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_PORT SIZEOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, port)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T (gint) sizeof(lbmc_cntl_umq_rxreq_addr_resp_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint8_t msgid_regid[8];
|
|
lbm_uint8_t msgid_stamp[8];
|
|
} lbmc_cntl_umq_rxreq_mr_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rxreq_mr_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rxreq_mr_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_rxreq_mr_hdr_t, msgid_regid)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_rxreq_mr_hdr_t, msgid_regid)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_rxreq_mr_hdr_t, msgid_stamp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_rxreq_mr_hdr_t, msgid_stamp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T (gint) sizeof(lbmc_cntl_umq_rxreq_mr_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
lbm_uint8_t msgid_regid[8];
|
|
lbm_uint8_t msgid_stamp[8];
|
|
} lbmc_cntl_umq_rxreq_ulb_mr_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, msgid_regid)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, msgid_regid)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, msgid_stamp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, msgid_stamp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T (gint) sizeof(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint8_t msgid_regid[8];
|
|
lbm_uint8_t msgid_stamp[8];
|
|
} lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t, msgid_regid)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t, msgid_regid)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t, msgid_stamp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t, msgid_stamp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T (gint) sizeof(lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t tsp;
|
|
} lbmc_cntl_umq_rxreq_qrcrr_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T_TSP OFFSETOF(lbmc_cntl_umq_rxreq_qrcrr_hdr_t, tsp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T_TSP SIZEOF(lbmc_cntl_umq_rxreq_qrcrr_hdr_t, tsp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T (gint) sizeof(lbmc_cntl_umq_rxreq_qrcrr_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t tsp;
|
|
} lbmc_cntl_umq_rxreq_trcrr_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rxreq_trcrr_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rxreq_trcrr_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_TSP OFFSETOF(lbmc_cntl_umq_rxreq_trcrr_hdr_t, tsp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_TSP SIZEOF(lbmc_cntl_umq_rxreq_trcrr_hdr_t, tsp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T (gint) sizeof(lbmc_cntl_umq_rxreq_trcrr_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t tsp;
|
|
} lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_TSP OFFSETOF(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t, tsp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_TSP SIZEOF(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t, tsp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T (gint) sizeof(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t tsp;
|
|
} lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_TSP OFFSETOF(lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t, tsp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_TSP SIZEOF(lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t, tsp)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T (gint) sizeof(lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t rxreq_type;
|
|
} lbmc_cntl_umq_rxreq_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_rxreq_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_rxreq_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_rxreq_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_rxreq_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_rxreq_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_rxreq_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_RXREQ_HDR_T_RXREQ_TYPE OFFSETOF(lbmc_cntl_umq_rxreq_hdr_t, rxreq_type)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_HDR_T_RXREQ_TYPE SIZEOF(lbmc_cntl_umq_rxreq_hdr_t, rxreq_type)
|
|
#define L_LBMC_CNTL_UMQ_RXREQ_HDR_T (gint) sizeof(lbmc_cntl_umq_rxreq_hdr_t)
|
|
|
|
/* LBMC control UMQ queue management header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
} lbmc_cntl_umq_qmgmt_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_QMGMT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_qmgmt_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_QMGMT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_qmgmt_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_QMGMT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_qmgmt_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_QMGMT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_qmgmt_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_QMGMT_HDR_T (gint) sizeof(lbmc_cntl_umq_qmgmt_hdr_t)
|
|
|
|
/* LBMC control UMQ resubmission request header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint8_t msgid_regid[8];
|
|
lbm_uint8_t msgid_stamp[8];
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t resp_ip;
|
|
lbm_uint16_t resp_port;
|
|
lbm_uint16_t appset_idx;
|
|
} lbmc_cntl_umq_resub_req_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, msgid_regid)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, msgid_regid)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, msgid_stamp)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, msgid_stamp)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_IP OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, resp_ip)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_IP SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, resp_ip)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_PORT OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, resp_port)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_PORT SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, resp_port)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T (gint) sizeof(lbmc_cntl_umq_resub_req_hdr_t)
|
|
|
|
/* LBMC control UMQ resubmission response header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t code;
|
|
lbm_uint8_t msgid_regid[8];
|
|
lbm_uint8_t msgid_stamp[8];
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint16_t reserved;
|
|
lbm_uint16_t appset_idx;
|
|
} lbmc_cntl_umq_resub_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_CODE OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, code)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_CODE SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, code)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, msgid_regid)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, msgid_regid)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, msgid_stamp)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, msgid_stamp)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T (gint) sizeof(lbmc_cntl_umq_resub_resp_hdr_t)
|
|
|
|
/* LBMC control topic interest header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t domain_id;
|
|
} lbmc_cntl_topic_interest_hdr_t;
|
|
#define O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_topic_interest_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_topic_interest_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_topic_interest_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_topic_interest_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS OFFSETOF(lbmc_cntl_topic_interest_hdr_t, flags)
|
|
#define L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS SIZEOF(lbmc_cntl_topic_interest_hdr_t, flags)
|
|
#define O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_topic_interest_hdr_t, domain_id)
|
|
#define L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_topic_interest_hdr_t, domain_id)
|
|
#define L_LBMC_CNTL_TOPIC_INTEREST_HDR_T (gint) sizeof(lbmc_cntl_topic_interest_hdr_t)
|
|
|
|
/* LBMC control pattern interest header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t type;
|
|
lbm_uint32_t domain_id;
|
|
lbm_uint8_t index[8];
|
|
} lbmc_cntl_pattern_interest_hdr_t;
|
|
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_pattern_interest_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_pattern_interest_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, flags)
|
|
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS SIZEOF(lbmc_cntl_pattern_interest_hdr_t, flags)
|
|
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_TYPE OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, type)
|
|
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_TYPE SIZEOF(lbmc_cntl_pattern_interest_hdr_t, type)
|
|
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, domain_id)
|
|
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_pattern_interest_hdr_t, domain_id)
|
|
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_INDEX OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, index)
|
|
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_INDEX SIZEOF(lbmc_cntl_pattern_interest_hdr_t, index)
|
|
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T (gint) sizeof(lbmc_cntl_pattern_interest_hdr_t)
|
|
|
|
/* LBMC control advertisement header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t hop_count;
|
|
lbm_uint32_t ad_flags;
|
|
lbm_uint32_t cost;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t topic_idx;
|
|
lbm_uint32_t low_seqno;
|
|
lbm_uint32_t high_seqno;
|
|
lbm_uint32_t domain_id;
|
|
lbm_uint8_t pat_idx[8];
|
|
lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
} lbmc_cntl_advertisement_hdr_t;
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_advertisement_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_advertisement_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_advertisement_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_advertisement_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS OFFSETOF(lbmc_cntl_advertisement_hdr_t, flags)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS SIZEOF(lbmc_cntl_advertisement_hdr_t, flags)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HOP_COUNT OFFSETOF(lbmc_cntl_advertisement_hdr_t, hop_count)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HOP_COUNT SIZEOF(lbmc_cntl_advertisement_hdr_t, hop_count)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS OFFSETOF(lbmc_cntl_advertisement_hdr_t, ad_flags)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS SIZEOF(lbmc_cntl_advertisement_hdr_t, ad_flags)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_COST OFFSETOF(lbmc_cntl_advertisement_hdr_t, cost)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_COST SIZEOF(lbmc_cntl_advertisement_hdr_t, cost)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_advertisement_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_advertisement_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_advertisement_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_advertisement_hdr_t, topic_idx)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_LOW_SEQNO OFFSETOF(lbmc_cntl_advertisement_hdr_t, low_seqno)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_LOW_SEQNO SIZEOF(lbmc_cntl_advertisement_hdr_t, low_seqno)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HIGH_SEQNO OFFSETOF(lbmc_cntl_advertisement_hdr_t, high_seqno)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HIGH_SEQNO SIZEOF(lbmc_cntl_advertisement_hdr_t, high_seqno)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_advertisement_hdr_t, domain_id)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_advertisement_hdr_t, domain_id)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_PAT_IDX OFFSETOF(lbmc_cntl_advertisement_hdr_t, pat_idx)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_PAT_IDX SIZEOF(lbmc_cntl_advertisement_hdr_t, pat_idx)
|
|
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_CTXINST OFFSETOF(lbmc_cntl_advertisement_hdr_t, ctxinst)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_CTXINST SIZEOF(lbmc_cntl_advertisement_hdr_t, ctxinst)
|
|
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T (gint) sizeof(lbmc_cntl_advertisement_hdr_t)
|
|
|
|
/* LBMC control UME storename header. */
|
|
#define O_LBMC_UME_STORENAME_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define L_LBMC_UME_STORENAME_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define O_LBMC_UME_STORENAME_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define L_LBMC_UME_STORENAME_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define O_LBMC_UME_STORENAME_HDR_T_FLAGS OFFSETOF(lbmc_basic_hdr_t, res)
|
|
#define L_LBMC_UME_STORENAME_HDR_T_FLAGS SIZEOF(lbmc_basic_hdr_t, res)
|
|
#define O_LBMC_UME_STORENAME_HDR_T_STORE (OFFSETOF(lbmc_basic_hdr_t, res) + SIZEOF(lbmc_basic_hdr_t, res))
|
|
|
|
/* UMQ control ULB receiver control record header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint32_t ulb_src_id;
|
|
lbm_uint8_t msgid_regid[8];
|
|
lbm_uint8_t msgid_stamp[8];
|
|
lbm_uint32_t topic_tsp;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t num_ras;
|
|
} lbmc_cntl_umq_ulb_rcr_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, queue_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, queue_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, ulb_src_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, ulb_src_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, msgid_regid)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, msgid_regid)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, msgid_stamp)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, msgid_stamp)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_TOPIC_TSP OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, topic_tsp)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_TOPIC_TSP SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, topic_tsp)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NUM_RAS OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, num_ras)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NUM_RAS SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, num_ras)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T (gint) sizeof(lbmc_cntl_umq_ulb_rcr_hdr_t)
|
|
|
|
/* LBMC control UMQ load factor header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t type;
|
|
lbm_uint16_t num_srcs;
|
|
lbm_uint16_t lf;
|
|
} lbmc_cntl_umq_lf_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_LF_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_lf_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_LF_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_lf_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_LF_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_lf_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_LF_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_lf_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_lf_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_lf_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_LF_HDR_T_TYPE OFFSETOF(lbmc_cntl_umq_lf_hdr_t, type)
|
|
#define L_LBMC_CNTL_UMQ_LF_HDR_T_TYPE SIZEOF(lbmc_cntl_umq_lf_hdr_t, type)
|
|
#define O_LBMC_CNTL_UMQ_LF_HDR_T_NUM_SRCS OFFSETOF(lbmc_cntl_umq_lf_hdr_t, num_srcs)
|
|
#define L_LBMC_CNTL_UMQ_LF_HDR_T_NUM_SRCS SIZEOF(lbmc_cntl_umq_lf_hdr_t, num_srcs)
|
|
#define O_LBMC_CNTL_UMQ_LF_HDR_T_LF OFFSETOF(lbmc_cntl_umq_lf_hdr_t, lf)
|
|
#define L_LBMC_CNTL_UMQ_LF_HDR_T_LF SIZEOF(lbmc_cntl_umq_lf_hdr_t, lf)
|
|
#define L_LBMC_CNTL_UMQ_LF_HDR_T (gint) sizeof(lbmc_cntl_umq_lf_hdr_t)
|
|
|
|
/* LBMC control context information header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint8_t reserved;
|
|
lbm_uint8_t hop_count;
|
|
lbm_uint16_t port;
|
|
lbm_uint32_t addr;
|
|
lbm_uint32_t domain_id;
|
|
lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
} lbmc_cntl_ctxinfo_hdr_t;
|
|
#define O_LBMC_CNTL_CTXINFO_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_CTXINFO_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ctxinfo_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_CTXINFO_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_CTXINFO_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ctxinfo_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, flags)
|
|
#define L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS SIZEOF(lbmc_cntl_ctxinfo_hdr_t, flags)
|
|
#define O_LBMC_CNTL_CTXINFO_HDR_T_RESERVED OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_CTXINFO_HDR_T_RESERVED SIZEOF(lbmc_cntl_ctxinfo_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_CTXINFO_HDR_T_HOP_COUNT OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, hop_count)
|
|
#define L_LBMC_CNTL_CTXINFO_HDR_T_HOP_COUNT SIZEOF(lbmc_cntl_ctxinfo_hdr_t, hop_count)
|
|
#define O_LBMC_CNTL_CTXINFO_HDR_T_PORT OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, port)
|
|
#define L_LBMC_CNTL_CTXINFO_HDR_T_PORT SIZEOF(lbmc_cntl_ctxinfo_hdr_t, port)
|
|
#define O_LBMC_CNTL_CTXINFO_HDR_T_ADDR OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, addr)
|
|
#define L_LBMC_CNTL_CTXINFO_HDR_T_ADDR SIZEOF(lbmc_cntl_ctxinfo_hdr_t, addr)
|
|
#define O_LBMC_CNTL_CTXINFO_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, domain_id)
|
|
#define L_LBMC_CNTL_CTXINFO_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_ctxinfo_hdr_t, domain_id)
|
|
#define O_LBMC_CNTL_CTXINFO_HDR_T_CTXINST OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, ctxinst)
|
|
#define L_LBMC_CNTL_CTXINFO_HDR_T_CTXINST SIZEOF(lbmc_cntl_ctxinfo_hdr_t, ctxinst)
|
|
#define L_LBMC_CNTL_CTXINFO_HDR_T (gint) sizeof(lbmc_cntl_ctxinfo_hdr_t)
|
|
|
|
/* LBMC control UME proxy source election header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t source_ip;
|
|
lbm_uint32_t store_ip;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t topic_idx;
|
|
lbm_uint16_t source_port;
|
|
lbm_uint16_t store_port;
|
|
lbm_uint8_t source_ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
lbm_uint8_t store_ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
} lbmc_cntl_ume_pser_hdr_t;
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_pser_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_pser_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_pser_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_pser_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_pser_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_pser_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_IP OFFSETOF(lbmc_cntl_ume_pser_hdr_t, source_ip)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_IP SIZEOF(lbmc_cntl_ume_pser_hdr_t, source_ip)
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_STORE_IP OFFSETOF(lbmc_cntl_ume_pser_hdr_t, store_ip)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_STORE_IP SIZEOF(lbmc_cntl_ume_pser_hdr_t, store_ip)
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_pser_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_pser_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_ume_pser_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_ume_pser_hdr_t, topic_idx)
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_PORT OFFSETOF(lbmc_cntl_ume_pser_hdr_t, source_port)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_PORT SIZEOF(lbmc_cntl_ume_pser_hdr_t, source_port)
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_STORE_PORT OFFSETOF(lbmc_cntl_ume_pser_hdr_t, store_port)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_STORE_PORT SIZEOF(lbmc_cntl_ume_pser_hdr_t, store_port)
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_CTXINST OFFSETOF(lbmc_cntl_ume_pser_hdr_t, source_ctxinst)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_CTXINST SIZEOF(lbmc_cntl_ume_pser_hdr_t, source_ctxinst)
|
|
#define O_LBMC_CNTL_UME_PSER_HDR_T_STORE_CTXINST OFFSETOF(lbmc_cntl_ume_pser_hdr_t, store_ctxinst)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T_STORE_CTXINST SIZEOF(lbmc_cntl_ume_pser_hdr_t, store_ctxinst)
|
|
#define L_LBMC_CNTL_UME_PSER_HDR_T (gint) sizeof(lbmc_cntl_ume_pser_hdr_t)
|
|
|
|
/* LBMC domain header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t domain;
|
|
} lbmc_domain_hdr_t;
|
|
#define O_LBMC_DOMAIN_HDR_T_NEXT_HDR OFFSETOF(lbmc_domain_hdr_t, next_hdr)
|
|
#define L_LBMC_DOMAIN_HDR_T_NEXT_HDR SIZEOF(lbmc_domain_hdr_t, next_hdr)
|
|
#define O_LBMC_DOMAIN_HDR_T_HDR_LEN OFFSETOF(lbmc_domain_hdr_t, hdr_len)
|
|
#define L_LBMC_DOMAIN_HDR_T_HDR_LEN SIZEOF(lbmc_domain_hdr_t, hdr_len)
|
|
#define O_LBMC_DOMAIN_HDR_T_FLAGS OFFSETOF(lbmc_domain_hdr_t, flags)
|
|
#define L_LBMC_DOMAIN_HDR_T_FLAGS SIZEOF(lbmc_domain_hdr_t, flags)
|
|
#define O_LBMC_DOMAIN_HDR_T_DOMAIN OFFSETOF(lbmc_domain_hdr_t, domain)
|
|
#define L_LBMC_DOMAIN_HDR_T_DOMAIN SIZEOF(lbmc_domain_hdr_t, domain)
|
|
#define L_LBMC_DOMAIN_HDR_T (gint) sizeof(lbmc_domain_hdr_t)
|
|
|
|
/* LBMC control TNWG capabilities header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t capabilities1;
|
|
lbm_uint32_t capabilities2;
|
|
lbm_uint32_t capabilities3;
|
|
lbm_uint32_t capabilities4;
|
|
} lbmc_cntl_tnwg_capabilities_hdr_t;
|
|
|
|
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, flags)
|
|
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, flags)
|
|
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1 OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities1)
|
|
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1 SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities1)
|
|
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES2 OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities2)
|
|
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES2 SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities2)
|
|
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3 OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities3)
|
|
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3 SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities3)
|
|
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES4 OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities4)
|
|
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES4 SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities4)
|
|
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T (gint) sizeof(lbmc_cntl_tnwg_capabilities_hdr_t)
|
|
|
|
/* LBMC pattern index header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
char patidx[8];
|
|
} lbmc_patidx_hdr_t;
|
|
#define O_LBMC_PATIDX_HDR_T_NEXT_HDR OFFSETOF(lbmc_patidx_hdr_t, next_hdr)
|
|
#define L_LBMC_PATIDX_HDR_T_NEXT_HDR SIZEOF(lbmc_patidx_hdr_t, next_hdr)
|
|
#define O_LBMC_PATIDX_HDR_T_HDR_LEN OFFSETOF(lbmc_patidx_hdr_t, hdr_len)
|
|
#define L_LBMC_PATIDX_HDR_T_HDR_LEN SIZEOF(lbmc_patidx_hdr_t, hdr_len)
|
|
#define O_LBMC_PATIDX_HDR_T_FLAGS OFFSETOF(lbmc_patidx_hdr_t, flags)
|
|
#define L_LBMC_PATIDX_HDR_T_FLAGS SIZEOF(lbmc_patidx_hdr_t, flags)
|
|
#define O_LBMC_PATIDX_HDR_T_PATIDX OFFSETOF(lbmc_patidx_hdr_t, patidx)
|
|
#define L_LBMC_PATIDX_HDR_T_PATIDX SIZEOF(lbmc_patidx_hdr_t, patidx)
|
|
#define L_LBMC_PATIDX_HDR_T (gint) sizeof(lbmc_patidx_hdr_t)
|
|
|
|
/* LBMC control UME client lifetime header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t activity_tmo;
|
|
lbm_uint32_t lifetime;
|
|
lbm_uint32_t ttl;
|
|
} lbmc_cntl_ume_client_lifetime_hdr_t;
|
|
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_ACTIVITY_TMO OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, activity_tmo)
|
|
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_ACTIVITY_TMO SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, activity_tmo)
|
|
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_LIFETIME OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, lifetime)
|
|
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_LIFETIME SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, lifetime)
|
|
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_TTL OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, ttl)
|
|
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_TTL SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, ttl)
|
|
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T (gint) sizeof(lbmc_cntl_ume_client_lifetime_hdr_t)
|
|
|
|
/* LBMC control UME session ID header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint8_t sid[8];
|
|
} lbmc_cntl_ume_sid_hdr_t;
|
|
#define O_LBMC_CNTL_UME_SID_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_sid_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_SID_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_sid_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_SID_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_sid_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_SID_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_sid_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_SID_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_sid_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_SID_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_sid_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_SID_HDR_T_SID OFFSETOF(lbmc_cntl_ume_sid_hdr_t, sid)
|
|
#define L_LBMC_CNTL_UME_SID_HDR_T_SID SIZEOF(lbmc_cntl_ume_sid_hdr_t, sid)
|
|
#define L_LBMC_CNTL_UME_SID_HDR_T (gint) sizeof(lbmc_cntl_ume_sid_hdr_t)
|
|
|
|
/* LBMC control UMQ index command header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t cmd_type;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint16_t cmd_id;
|
|
lbm_uint16_t inst_idx;
|
|
lbm_uint8_t regid[8];
|
|
} lbmc_cntl_umq_idx_cmd_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_TYPE OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, cmd_type)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_TYPE SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, cmd_type)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, queue_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, queue_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, cmd_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, cmd_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, inst_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, inst_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_REGID SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_rcv_stop_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcv_stop_idx_assign_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcv_stop_idx_assign_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcv_stop_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcv_stop_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_rcv_stop_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_rcv_start_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcv_start_idx_assign_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcv_start_idx_assign_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcv_start_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcv_start_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_rcv_start_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t flags;
|
|
lbm_uint8_t index_len;
|
|
lbm_uint8_t reserved[3];
|
|
} lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN OFFSETOF(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t, index_len)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN SIZEOF(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t, index_len)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED + L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_SRC_ID OFFSETOF(lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t, src_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_SRC_ID SIZEOF(lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t, src_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_SRC_ID OFFSETOF(lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t, src_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_SRC_ID SIZEOF(lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t, src_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t flags;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint8_t index_len;
|
|
lbm_uint8_t reserved[1];
|
|
} lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_SRC_ID OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, src_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_SRC_ID SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, src_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, index_len)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, index_len)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED + L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t flags;
|
|
lbm_uint8_t index_len;
|
|
lbm_uint8_t reserved[3];
|
|
} lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN OFFSETOF(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t, index_len)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN SIZEOF(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t, index_len)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED + L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t flags;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint8_t index_len;
|
|
lbm_uint8_t reserved[1];
|
|
} lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, src_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, src_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, index_len)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, index_len)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED + L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED
|
|
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t)
|
|
|
|
/* LBMC control UMQ index command response header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t resp_type;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint16_t cmd_id;
|
|
lbm_uint16_t inst_idx;
|
|
lbm_uint8_t regid[8];
|
|
} lbmc_cntl_umq_idx_cmd_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_RESP_TYPE OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, resp_type)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_RESP_TYPE SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, resp_type)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, queue_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, queue_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, cmd_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, cmd_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, inst_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, inst_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_REGID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_resp_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint16_t reserved;
|
|
lbm_uint16_t code;
|
|
} lbmc_cntl_umq_idx_cmd_resp_err_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_err_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_resp_err_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_CODE OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_err_hdr_t, code)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_CODE SIZEOF(lbmc_cntl_umq_idx_cmd_resp_err_hdr_t, code)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_resp_err_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_idx_cmd_resp_rcv_stop_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_stop_idx_assign_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_stop_idx_assign_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_stop_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_stop_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_resp_rcv_stop_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_SRC_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t, src_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_SRC_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t, src_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_SRC_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t, src_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_SRC_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t, src_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_SRC_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t, src_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_SRC_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t, src_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t flags;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint8_t index_len;
|
|
lbm_uint8_t reserved[1];
|
|
} lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, index_len)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, index_len)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED + L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t src_id;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint32_t flags;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint8_t index_len;
|
|
lbm_uint8_t reserved[1];
|
|
} lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, src_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, src_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, index_len)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, index_len)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED + L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED
|
|
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T (gint) sizeof(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t)
|
|
|
|
/* LBMC originating domain header (same as lbmc_domain_hdr_t) */
|
|
#define O_LBMC_ODOMAIN_HDR_T_NEXT_HDR OFFSETOF(lbmc_domain_hdr_t, next_hdr)
|
|
#define L_LBMC_ODOMAIN_HDR_T_NEXT_HDR SIZEOF(lbmc_domain_hdr_t, next_hdr)
|
|
#define O_LBMC_ODOMAIN_HDR_T_HDR_LEN OFFSETOF(lbmc_domain_hdr_t, hdr_len)
|
|
#define L_LBMC_ODOMAIN_HDR_T_HDR_LEN SIZEOF(lbmc_domain_hdr_t, hdr_len)
|
|
#define O_LBMC_ODOMAIN_HDR_T_FLAGS OFFSETOF(lbmc_domain_hdr_t, flags)
|
|
#define L_LBMC_ODOMAIN_HDR_T_FLAGS SIZEOF(lbmc_domain_hdr_t, flags)
|
|
#define O_LBMC_ODOMAIN_HDR_T_ODOMAIN OFFSETOF(lbmc_domain_hdr_t, domain)
|
|
#define L_LBMC_ODOMAIN_HDR_T_ODOMAIN SIZEOF(lbmc_domain_hdr_t, domain)
|
|
#define L_LBMC_ODOMAIN_HDR_T (gint) sizeof(lbmc_domain_hdr_t)
|
|
|
|
/* LBMC stream header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t stream_id;
|
|
lbm_uint32_t sqn;
|
|
lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
} lbmc_stream_hdr_t;
|
|
#define O_LBMC_STREAM_HDR_T_NEXT_HDR OFFSETOF(lbmc_stream_hdr_t, next_hdr)
|
|
#define L_LBMC_STREAM_HDR_T_NEXT_HDR SIZEOF(lbmc_stream_hdr_t, next_hdr)
|
|
#define O_LBMC_STREAM_HDR_T_HDR_LEN OFFSETOF(lbmc_stream_hdr_t, hdr_len)
|
|
#define L_LBMC_STREAM_HDR_T_HDR_LEN SIZEOF(lbmc_stream_hdr_t, hdr_len)
|
|
#define O_LBMC_STREAM_HDR_T_FLAGS OFFSETOF(lbmc_stream_hdr_t, flags)
|
|
#define L_LBMC_STREAM_HDR_T_FLAGS SIZEOF(lbmc_stream_hdr_t, flags)
|
|
#define O_LBMC_STREAM_HDR_T_STREAM_ID OFFSETOF(lbmc_stream_hdr_t, stream_id)
|
|
#define L_LBMC_STREAM_HDR_T_STREAM_ID SIZEOF(lbmc_stream_hdr_t, stream_id)
|
|
#define O_LBMC_STREAM_HDR_T_SQN OFFSETOF(lbmc_stream_hdr_t, sqn)
|
|
#define L_LBMC_STREAM_HDR_T_SQN SIZEOF(lbmc_stream_hdr_t, sqn)
|
|
#define O_LBMC_STREAM_HDR_T_CTXINST OFFSETOF(lbmc_stream_hdr_t, ctxinst)
|
|
#define L_LBMC_STREAM_HDR_T_CTXINST SIZEOF(lbmc_stream_hdr_t, ctxinst)
|
|
#define L_LBMC_STREAM_HDR_T (gint) sizeof(lbmc_stream_hdr_t)
|
|
|
|
/* LBMC control topic multi-domain interest header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint16_t domain_count;
|
|
lbm_uint16_t res1;
|
|
} lbmc_cntl_topic_md_interest_hdr_t;
|
|
#define O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_topic_md_interest_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_topic_md_interest_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_topic_md_interest_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_topic_md_interest_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS OFFSETOF(lbmc_cntl_topic_md_interest_hdr_t, flags)
|
|
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS SIZEOF(lbmc_cntl_topic_md_interest_hdr_t, flags)
|
|
#define O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_DOMAIN_COUNT OFFSETOF(lbmc_cntl_topic_md_interest_hdr_t, domain_count)
|
|
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_DOMAIN_COUNT SIZEOF(lbmc_cntl_topic_md_interest_hdr_t, domain_count)
|
|
#define O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_RES1 OFFSETOF(lbmc_cntl_topic_md_interest_hdr_t, res1)
|
|
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_RES1 SIZEOF(lbmc_cntl_topic_md_interest_hdr_t, res1)
|
|
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T (gint) sizeof(lbmc_cntl_topic_md_interest_hdr_t)
|
|
|
|
/* LBMC control pattern multi-domain interest header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t type;
|
|
lbm_uint16_t domain_count;
|
|
lbm_uint16_t res1;
|
|
lbm_uint8_t index[8];
|
|
} lbmc_cntl_pattern_md_interest_hdr_t;
|
|
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, flags)
|
|
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, flags)
|
|
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_TYPE OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, type)
|
|
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_TYPE SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, type)
|
|
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_DOMAIN_COUNT OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, domain_count)
|
|
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_DOMAIN_COUNT SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, domain_count)
|
|
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_RES1 OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, res1)
|
|
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_RES1 SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, res1)
|
|
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_INDEX OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, index)
|
|
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_INDEX SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, index)
|
|
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T (gint) sizeof(lbmc_cntl_pattern_md_interest_hdr_t)
|
|
|
|
/* LBMC control TNWG keepalive header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t index;
|
|
lbm_uint8_t ts_seconds[8];
|
|
lbm_uint32_t ts_microseconds;
|
|
lbm_uint32_t reserved_1;
|
|
lbm_uint8_t reserved_2[8];
|
|
lbm_uint8_t reserved_3[8];
|
|
lbm_uint8_t reserved_4[8];
|
|
lbm_uint8_t reserved_5[8];
|
|
lbm_uint8_t reserved_6[8];
|
|
} lbmc_cntl_tnwg_ka_hdr_t;
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, flags)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, flags)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_INDEX OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, index)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_INDEX SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, index)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_TS_SECONDS OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, ts_seconds)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_TS_SECONDS SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, ts_seconds)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_TS_MICROSECONDS OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, ts_microseconds)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_TS_MICROSECONDS SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, ts_microseconds)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_1 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_1)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_1 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_1)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_2 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_2)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_2 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_2)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_3 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_3)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_3 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_3)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_4 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_4)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_4 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_4)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_5 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_5)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_5 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_5)
|
|
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_6 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_6)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_6 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_6)
|
|
#define L_LBMC_CNTL_TNWG_KA_HDR_T (gint) sizeof(lbmc_cntl_tnwg_ka_hdr_t)
|
|
|
|
/* LBMC control UME receiver keepalive header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t rcv_regid;
|
|
lbm_uint64_t session_id;
|
|
lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
} lbmc_cntl_ume_receiver_keepalive_hdr_t;
|
|
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_RCV_REGID OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, rcv_regid)
|
|
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_RCV_REGID SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, rcv_regid)
|
|
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_SESSION_ID OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, session_id)
|
|
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_SESSION_ID SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, session_id)
|
|
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_CTXINST OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, ctxinst)
|
|
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_CTXINST SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, ctxinst)
|
|
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T (gint) sizeof(lbmc_cntl_ume_receiver_keepalive_hdr_t)
|
|
|
|
/* LBMC control UMQ command header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t cmd_type;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint16_t cmd_id;
|
|
lbm_uint16_t inst_idx;
|
|
lbm_uint8_t regid[8];
|
|
} lbmc_cntl_umq_cmd_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_cmd_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_cmd_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_cmd_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_TYPE OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, cmd_type)
|
|
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_TYPE SIZEOF(lbmc_cntl_umq_cmd_hdr_t, cmd_type)
|
|
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, queue_id)
|
|
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_cmd_hdr_t, queue_id)
|
|
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, cmd_id)
|
|
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_cmd_hdr_t, cmd_id)
|
|
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, inst_idx)
|
|
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_cmd_hdr_t, inst_idx)
|
|
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_REGID SIZEOF(lbmc_cntl_umq_cmd_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_CMD_HDR_T (gint) sizeof(lbmc_cntl_umq_cmd_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t serial_num[8];
|
|
} lbmc_cntl_umq_ctx_queue_topic_list_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_CTX_QUEUE_TOPIC_LIST_HDR_T_SERIAL_NUM OFFSETOF(lbmc_cntl_umq_ctx_queue_topic_list_hdr_t, serial_num)
|
|
#define L_LBMC_CNTL_UMQ_CTX_QUEUE_TOPIC_LIST_HDR_T_SERIAL_NUM SIZEOF(lbmc_cntl_umq_ctx_queue_topic_list_hdr_t, serial_num)
|
|
#define L_LBMC_CNTL_UMQ_CTX_QUEUE_TOPIC_LIST_HDR_T (gint) sizeof(lbmc_cntl_umq_ctx_queue_topic_list_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t info_only;
|
|
lbm_uint8_t num_msgids;
|
|
lbm_uint8_t flags;
|
|
} lbmc_cntl_umq_rcv_msg_retrieve_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, assign_id)
|
|
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_INFO_ONLY OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, info_only)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_INFO_ONLY SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, info_only)
|
|
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGIDS OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, num_msgids)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGIDS SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, num_msgids)
|
|
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T (gint) sizeof(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t regid[8];
|
|
lbm_uint8_t stamp[8];
|
|
} lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_REGID SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t, regid)
|
|
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STAMP OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t, stamp)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STAMP SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t, stamp)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T (gint) sizeof(lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_rcv_msg_list_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcv_msg_list_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcv_msg_list_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcv_msg_list_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcv_msg_list_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T (gint) sizeof(lbmc_cntl_umq_rcv_msg_list_hdr_t)
|
|
|
|
/* LBMC control UMQ command response header */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t resp_type;
|
|
lbm_uint32_t queue_id;
|
|
lbm_uint16_t cmd_id;
|
|
lbm_uint16_t inst_idx;
|
|
lbm_uint8_t regid[8];
|
|
} lbmc_cntl_umq_cmd_resp_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_RESP_TYPE OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, resp_type)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_RESP_TYPE SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, resp_type)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, queue_id)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, queue_id)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, cmd_id)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, cmd_id)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, inst_idx)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, inst_idx)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_REGID SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, regid)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T (gint) sizeof(lbmc_cntl_umq_cmd_resp_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T (gint) sizeof(lbmc_cntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t num_msgs;
|
|
lbm_uint8_t flags;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t;
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGS OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t, num_msgs)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGS SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t, num_msgs)
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_FLAGS OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t, flags)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_FLAGS SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t, flags)
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_RESERVED OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t, reserved)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_RESERVED SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t, reserved)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T (gint) sizeof(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t regid[8];
|
|
lbm_uint8_t stamp[8];
|
|
lbm_uint32_t assign_id;
|
|
lbm_uint16_t num_ras;
|
|
lbm_uint8_t status;
|
|
lbm_uint8_t reserved;
|
|
} lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t;
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_REGID OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, regid)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_REGID SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, regid)
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STAMP OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, stamp)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STAMP SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, stamp)
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_ASSIGN_ID OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, assign_id)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_ASSIGN_ID SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, assign_id)
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_NUM_RAS OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, num_ras)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_NUM_RAS SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, num_ras)
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STATUS OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, status)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STATUS SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, status)
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_RESERVED OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, reserved)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_RESERVED SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t, reserved)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T (gint) sizeof(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint32_t assign_id;
|
|
} lbmc_cntl_umq_cmd_resp_rcv_msg_list_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_cmd_resp_rcv_msg_list_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_cmd_resp_rcv_msg_list_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_cmd_resp_rcv_msg_list_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_cmd_resp_rcv_msg_list_hdr_t, assign_id)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T (gint) sizeof(lbmc_cntl_umq_cmd_resp_rcv_msg_list_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t num_msgs[8];
|
|
} lbmc_xcntl_umq_cmd_resp_rcv_msg_list_hdr_t;
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_NUM_MSGS OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_list_hdr_t, num_msgs)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_NUM_MSGS SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_list_hdr_t, num_msgs)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T (gint) sizeof(lbmc_xcntl_umq_cmd_resp_rcv_msg_list_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t regid[8];
|
|
lbm_uint8_t stamp[8];
|
|
} lbmc_xcntl_umq_cmd_resp_rcv_msg_list_msg_entry_hdr_t;
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T_REGID OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_list_msg_entry_hdr_t, regid)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T_REGID SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_list_msg_entry_hdr_t, regid)
|
|
#define O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T_STAMP OFFSETOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_list_msg_entry_hdr_t, stamp)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T_STAMP SIZEOF(lbmc_xcntl_umq_cmd_resp_rcv_msg_list_msg_entry_hdr_t, stamp)
|
|
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T (gint) sizeof(lbmc_xcntl_umq_cmd_resp_rcv_msg_list_msg_entry_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t num_topics;
|
|
} lbmc_cntl_umq_cmd_resp_ctx_topic_list_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T_NUM_TOPICS OFFSETOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_hdr_t, num_topics)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T_NUM_TOPICS SIZEOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_hdr_t, num_topics)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T (gint) sizeof(lbmc_cntl_umq_cmd_resp_ctx_topic_list_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint16_t num_receiver_type_ids;
|
|
lbm_uint16_t appset_idx;
|
|
lbm_uint8_t appset_name_len;
|
|
lbm_uint8_t reserved[3];
|
|
} lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_NUM_RECEIVER_TYPE_IDS OFFSETOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t, num_receiver_type_ids)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_NUM_RECEIVER_TYPE_IDS SIZEOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t, num_receiver_type_ids)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t, appset_idx)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t, appset_idx)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_APPSET_NAME_LEN OFFSETOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t, appset_name_len)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_APPSET_NAME_LEN SIZEOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t, appset_name_len)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T (gint) sizeof(lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t rcr_idx;
|
|
lbm_uint16_t num_appsets;
|
|
lbm_uint8_t topic_len;
|
|
lbm_uint8_t reserved;
|
|
} lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t, rcr_idx)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t, rcr_idx)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_NUM_APPSETS OFFSETOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t, num_appsets)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_NUM_APPSETS SIZEOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t, num_appsets)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_TOPIC_LEN OFFSETOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t, topic_len)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_TOPIC_LEN SIZEOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t, topic_len)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T (gint) sizeof(lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint16_t reserved;
|
|
lbm_uint16_t code;
|
|
} lbmc_cntl_umq_cmd_resp_err_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_cmd_resp_err_hdr_t, reserved)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_cmd_resp_err_hdr_t, reserved)
|
|
#define O_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_CODE OFFSETOF(lbmc_cntl_umq_cmd_resp_err_hdr_t, code)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_CODE SIZEOF(lbmc_cntl_umq_cmd_resp_err_hdr_t, code)
|
|
#define L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T (gint) sizeof(lbmc_cntl_umq_cmd_resp_err_hdr_t)
|
|
|
|
/* LBMC control source registration information request header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t transport_idx;
|
|
lbm_uint32_t topic_idx;
|
|
} lbmc_cntl_sri_req_hdr_t;
|
|
#define O_LBMC_CNTL_SRI_REQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_sri_req_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_SRI_REQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_sri_req_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_SRI_REQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_sri_req_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_SRI_REQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_sri_req_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_sri_req_hdr_t, flags)
|
|
#define L_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_sri_req_hdr_t, flags)
|
|
#define O_LBMC_CNTL_SRI_REQ_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_sri_req_hdr_t, transport_idx)
|
|
#define L_LBMC_CNTL_SRI_REQ_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_sri_req_hdr_t, transport_idx)
|
|
#define O_LBMC_CNTL_SRI_REQ_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_sri_req_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_SRI_REQ_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_sri_req_hdr_t, topic_idx)
|
|
#define L_LBMC_CNTL_SRI_REQ_HDR_T (gint) sizeof(lbmc_cntl_sri_req_hdr_t)
|
|
|
|
/* LBMC control UME store domain header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t domain;
|
|
} lbmc_cntl_ume_store_domain_hdr_t;
|
|
#define O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_store_domain_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_store_domain_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_store_domain_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_store_domain_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_store_domain_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_store_domain_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_DOMAIN OFFSETOF(lbmc_cntl_ume_store_domain_hdr_t, domain)
|
|
#define L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_DOMAIN SIZEOF(lbmc_cntl_ume_store_domain_hdr_t, domain)
|
|
#define L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T (gint) sizeof(lbmc_cntl_ume_store_domain_hdr_t)
|
|
|
|
/* LBMC control source registration information header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t version;
|
|
lbm_uint32_t low_sqn;
|
|
lbm_uint32_t high_sqn;
|
|
} lbmc_cntl_sri_hdr_t;
|
|
#define O_LBMC_CNTL_SRI_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_sri_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_SRI_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_sri_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_SRI_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_sri_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_SRI_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_sri_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_SRI_HDR_T_FLAGS OFFSETOF(lbmc_cntl_sri_hdr_t, flags)
|
|
#define L_LBMC_CNTL_SRI_HDR_T_FLAGS SIZEOF(lbmc_cntl_sri_hdr_t, flags)
|
|
#define O_LBMC_CNTL_SRI_HDR_T_VERSION OFFSETOF(lbmc_cntl_sri_hdr_t, version)
|
|
#define L_LBMC_CNTL_SRI_HDR_T_VERSION SIZEOF(lbmc_cntl_sri_hdr_t, version)
|
|
#define O_LBMC_CNTL_SRI_HDR_T_LOW_SQN OFFSETOF(lbmc_cntl_sri_hdr_t, low_sqn)
|
|
#define L_LBMC_CNTL_SRI_HDR_T_LOW_SQN SIZEOF(lbmc_cntl_sri_hdr_t, low_sqn)
|
|
#define O_LBMC_CNTL_SRI_HDR_T_HIGH_SQN OFFSETOF(lbmc_cntl_sri_hdr_t, high_sqn)
|
|
#define L_LBMC_CNTL_SRI_HDR_T_HIGH_SQN SIZEOF(lbmc_cntl_sri_hdr_t, high_sqn)
|
|
#define L_LBMC_CNTL_SRI_HDR_T (gint) sizeof(lbmc_cntl_sri_hdr_t)
|
|
|
|
/* LBMC control route information header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t gateway_version;
|
|
lbm_uint32_t configuration_signature;
|
|
lbm_uint8_t node_id[8];
|
|
lbm_uint32_t topology;
|
|
lbm_uint16_t vers;
|
|
lbm_uint16_t sqn;
|
|
lbm_uint8_t ttl;
|
|
lbm_uint8_t reserved1;
|
|
lbm_uint16_t reserved2;
|
|
} lbmc_cntl_route_info_hdr_t;
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_route_info_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_route_info_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_route_info_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_route_info_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS OFFSETOF(lbmc_cntl_route_info_hdr_t, flags)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS SIZEOF(lbmc_cntl_route_info_hdr_t, flags)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_GATEWAY_VERSION OFFSETOF(lbmc_cntl_route_info_hdr_t, gateway_version)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_GATEWAY_VERSION SIZEOF(lbmc_cntl_route_info_hdr_t, gateway_version)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_CONFIGURATION_SIGNATURE OFFSETOF(lbmc_cntl_route_info_hdr_t, configuration_signature)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_CONFIGURATION_SIGNATURE SIZEOF(lbmc_cntl_route_info_hdr_t, configuration_signature)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_NODE_ID OFFSETOF(lbmc_cntl_route_info_hdr_t, node_id)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_NODE_ID SIZEOF(lbmc_cntl_route_info_hdr_t, node_id)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_TOPOLOGY OFFSETOF(lbmc_cntl_route_info_hdr_t, topology)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_TOPOLOGY SIZEOF(lbmc_cntl_route_info_hdr_t, topology)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_VERS OFFSETOF(lbmc_cntl_route_info_hdr_t, vers)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_VERS SIZEOF(lbmc_cntl_route_info_hdr_t, vers)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_SQN OFFSETOF(lbmc_cntl_route_info_hdr_t, sqn)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_SQN SIZEOF(lbmc_cntl_route_info_hdr_t, sqn)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_TTL OFFSETOF(lbmc_cntl_route_info_hdr_t, ttl)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_TTL SIZEOF(lbmc_cntl_route_info_hdr_t, ttl)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED1 OFFSETOF(lbmc_cntl_route_info_hdr_t, reserved1)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED1 SIZEOF(lbmc_cntl_route_info_hdr_t, reserved1)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED2 OFFSETOF(lbmc_cntl_route_info_hdr_t, reserved2)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED2 SIZEOF(lbmc_cntl_route_info_hdr_t, reserved2)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T (gint) sizeof(lbmc_cntl_route_info_hdr_t)
|
|
|
|
/* LBMC control route information neighbor header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint8_t node_id[8];
|
|
lbm_uint32_t ingress_cost;
|
|
lbm_uint32_t egress_cost;
|
|
} lbmc_cntl_route_info_neighbor_hdr_t;
|
|
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, flags)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, flags)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NODE_ID OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, node_id)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NODE_ID SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, node_id)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_INGRESS_COST OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, ingress_cost)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_INGRESS_COST SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, ingress_cost)
|
|
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_EGRESS_COST OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, egress_cost)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_EGRESS_COST SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, egress_cost)
|
|
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T (gint) sizeof(lbmc_cntl_route_info_neighbor_hdr_t)
|
|
|
|
/* LBMC control gateway name header. */
|
|
#define O_LBMC_CNTL_GATEWAY_NAME_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_GATEWAY_NAME_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_GATEWAY_NAME_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_GATEWAY_NAME_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS OFFSETOF(lbmc_basic_hdr_t, res)
|
|
#define L_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS SIZEOF(lbmc_basic_hdr_t, res)
|
|
#define O_LBMC_CNTL_GATEWAY_NAME_HDR_T_NAME (OFFSETOF(lbmc_basic_hdr_t, res) + SIZEOF(lbmc_basic_hdr_t, res))
|
|
|
|
/* LBMC control generic authentication header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t opid;
|
|
} lbmc_cntl_auth_generic_hdr_t;
|
|
#define O_LBMC_CNTL_AUTH_GENERIC_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_auth_generic_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_AUTH_GENERIC_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_auth_generic_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_AUTH_GENERIC_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_auth_generic_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_AUTH_GENERIC_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_auth_generic_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_AUTH_GENERIC_HDR_T_FLAGS OFFSETOF(lbmc_cntl_auth_generic_hdr_t, flags)
|
|
#define L_LBMC_CNTL_AUTH_GENERIC_HDR_T_FLAGS SIZEOF(lbmc_cntl_auth_generic_hdr_t, flags)
|
|
#define O_LBMC_CNTL_AUTH_GENERIC_HDR_T_OPID OFFSETOF(lbmc_cntl_auth_generic_hdr_t, opid)
|
|
#define L_LBMC_CNTL_AUTH_GENERIC_HDR_T_OPID SIZEOF(lbmc_cntl_auth_generic_hdr_t, opid)
|
|
#define L_LBMC_CNTL_AUTH_GENERIC_HDR_T (gint) sizeof(lbmc_cntl_auth_generic_hdr_t)
|
|
|
|
/* LBMC control authentication request header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t opid;
|
|
lbm_uint8_t user_len;
|
|
} lbmc_cntl_auth_request_hdr_t;
|
|
#define O_LBMC_CNTL_AUTH_REQUEST_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_auth_request_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_auth_request_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_AUTH_REQUEST_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_auth_request_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_auth_request_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS OFFSETOF(lbmc_cntl_auth_request_hdr_t, flags)
|
|
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS SIZEOF(lbmc_cntl_auth_request_hdr_t, flags)
|
|
#define O_LBMC_CNTL_AUTH_REQUEST_HDR_T_OPID OFFSETOF(lbmc_cntl_auth_request_hdr_t, opid)
|
|
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T_OPID SIZEOF(lbmc_cntl_auth_request_hdr_t, opid)
|
|
#define O_LBMC_CNTL_AUTH_REQUEST_HDR_T_USER_LEN OFFSETOF(lbmc_cntl_auth_request_hdr_t, user_len)
|
|
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T_USER_LEN SIZEOF(lbmc_cntl_auth_request_hdr_t, user_len)
|
|
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T (gint) sizeof(lbmc_cntl_auth_request_hdr_t)
|
|
|
|
/* LBMC control authentication challenge header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t opid;
|
|
lbm_uint8_t mod_len;
|
|
lbm_uint8_t gen_len;
|
|
lbm_uint8_t salt_len;
|
|
lbm_uint8_t pubkey_len;
|
|
} lbmc_cntl_auth_challenge_hdr_t;
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_auth_challenge_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_auth_challenge_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, flags)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS SIZEOF(lbmc_cntl_auth_challenge_hdr_t, flags)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_OPID OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, opid)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_OPID SIZEOF(lbmc_cntl_auth_challenge_hdr_t, opid)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_MOD_LEN OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, mod_len)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_MOD_LEN SIZEOF(lbmc_cntl_auth_challenge_hdr_t, mod_len)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_GEN_LEN OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, gen_len)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_GEN_LEN SIZEOF(lbmc_cntl_auth_challenge_hdr_t, gen_len)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_SALT_LEN OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, salt_len)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_SALT_LEN SIZEOF(lbmc_cntl_auth_challenge_hdr_t, salt_len)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_PUBKEY_LEN OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, pubkey_len)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_PUBKEY_LEN SIZEOF(lbmc_cntl_auth_challenge_hdr_t, pubkey_len)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T (gint) sizeof(lbmc_cntl_auth_challenge_hdr_t)
|
|
|
|
/* LBMC control authentication challenge response header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t opid;
|
|
lbm_uint8_t pubkey_len;
|
|
lbm_uint8_t evidence_len;
|
|
} lbmc_cntl_auth_challenge_rsp_hdr_t;
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, flags)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, flags)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_OPID OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, opid)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_OPID SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, opid)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_PUBKEY_LEN OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, pubkey_len)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_PUBKEY_LEN SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, pubkey_len)
|
|
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_EVIDENCE_LEN OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, evidence_len)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_EVIDENCE_LEN SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, evidence_len)
|
|
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T (gint) sizeof(lbmc_cntl_auth_challenge_rsp_hdr_t)
|
|
|
|
/* LBMC control authentication result header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t opid;
|
|
lbm_uint8_t result;
|
|
} lbmc_cntl_auth_result_hdr_t;
|
|
#define O_LBMC_CNTL_AUTH_RESULT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_auth_result_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_auth_result_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_AUTH_RESULT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_auth_result_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_auth_result_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS OFFSETOF(lbmc_cntl_auth_result_hdr_t, flags)
|
|
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS SIZEOF(lbmc_cntl_auth_result_hdr_t, flags)
|
|
#define O_LBMC_CNTL_AUTH_RESULT_HDR_T_OPID OFFSETOF(lbmc_cntl_auth_result_hdr_t, opid)
|
|
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T_OPID SIZEOF(lbmc_cntl_auth_result_hdr_t, opid)
|
|
#define O_LBMC_CNTL_AUTH_RESULT_HDR_T_RESULT OFFSETOF(lbmc_cntl_auth_result_hdr_t, result)
|
|
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T_RESULT SIZEOF(lbmc_cntl_auth_result_hdr_t, result)
|
|
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T (gint) sizeof(lbmc_cntl_auth_result_hdr_t)
|
|
|
|
/* LBMC control HMAC header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t padding;
|
|
lbm_uint8_t data[LBM_HMAC_BLOCK_SZ];
|
|
} lbmc_cntl_hmac_hdr_t;
|
|
#define O_LBMC_CNTL_HMAC_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_hmac_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_HMAC_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_hmac_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_HMAC_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_hmac_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_HMAC_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_hmac_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_HMAC_HDR_T_FLAGS OFFSETOF(lbmc_cntl_hmac_hdr_t, flags)
|
|
#define L_LBMC_CNTL_HMAC_HDR_T_FLAGS SIZEOF(lbmc_cntl_hmac_hdr_t, flags)
|
|
#define O_LBMC_CNTL_HMAC_HDR_T_PADDING OFFSETOF(lbmc_cntl_hmac_hdr_t, padding)
|
|
#define L_LBMC_CNTL_HMAC_HDR_T_PADDING SIZEOF(lbmc_cntl_hmac_hdr_t, padding)
|
|
#define O_LBMC_CNTL_HMAC_HDR_T_DATA OFFSETOF(lbmc_cntl_hmac_hdr_t, data)
|
|
#define L_LBMC_CNTL_HMAC_HDR_T_DATA SIZEOF(lbmc_cntl_hmac_hdr_t, data)
|
|
#define L_LBMC_CNTL_HMAC_HDR_T (gint) sizeof(lbmc_cntl_hmac_hdr_t)
|
|
|
|
/* LBMC control UMQ session ID header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t key;
|
|
lbm_uint8_t sid[8];
|
|
} lbmc_cntl_umq_sid_hdr_t;
|
|
#define O_LBMC_CNTL_UMQ_SID_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_sid_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UMQ_SID_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_sid_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UMQ_SID_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_sid_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UMQ_SID_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_sid_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_sid_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_sid_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UMQ_SID_HDR_T_KEY OFFSETOF(lbmc_cntl_umq_sid_hdr_t, key)
|
|
#define L_LBMC_CNTL_UMQ_SID_HDR_T_KEY SIZEOF(lbmc_cntl_umq_sid_hdr_t, key)
|
|
#define O_LBMC_CNTL_UMQ_SID_HDR_T_SID OFFSETOF(lbmc_cntl_umq_sid_hdr_t, sid)
|
|
#define L_LBMC_CNTL_UMQ_SID_HDR_T_SID SIZEOF(lbmc_cntl_umq_sid_hdr_t, sid)
|
|
#define L_LBMC_CNTL_UMQ_SID_HDR_T (gint) sizeof(lbmc_cntl_umq_sid_hdr_t)
|
|
|
|
/* LBMC destination header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t domain_id;
|
|
lbm_uint32_t ipaddr;
|
|
lbm_uint16_t port;
|
|
lbm_uint16_t hops_taken;
|
|
lbm_uint32_t orig_domain_id;
|
|
lbm_uint32_t orig_ipaddr;
|
|
lbm_uint16_t orig_port;
|
|
lbm_uint16_t reserved;
|
|
} lbmc_destination_hdr_t;
|
|
#define O_LBMC_DESTINATION_HDR_T_NEXT_HDR OFFSETOF(lbmc_destination_hdr_t, next_hdr)
|
|
#define L_LBMC_DESTINATION_HDR_T_NEXT_HDR SIZEOF(lbmc_destination_hdr_t, next_hdr)
|
|
#define O_LBMC_DESTINATION_HDR_T_HDR_LEN OFFSETOF(lbmc_destination_hdr_t, hdr_len)
|
|
#define L_LBMC_DESTINATION_HDR_T_HDR_LEN SIZEOF(lbmc_destination_hdr_t, hdr_len)
|
|
#define O_LBMC_DESTINATION_HDR_T_FLAGS OFFSETOF(lbmc_destination_hdr_t, flags)
|
|
#define L_LBMC_DESTINATION_HDR_T_FLAGS SIZEOF(lbmc_destination_hdr_t, flags)
|
|
#define O_LBMC_DESTINATION_HDR_T_DOMAIN_ID OFFSETOF(lbmc_destination_hdr_t, domain_id)
|
|
#define L_LBMC_DESTINATION_HDR_T_DOMAIN_ID SIZEOF(lbmc_destination_hdr_t, domain_id)
|
|
#define O_LBMC_DESTINATION_HDR_T_IPADDR OFFSETOF(lbmc_destination_hdr_t, ipaddr)
|
|
#define L_LBMC_DESTINATION_HDR_T_IPADDR SIZEOF(lbmc_destination_hdr_t, ipaddr)
|
|
#define O_LBMC_DESTINATION_HDR_T_PORT OFFSETOF(lbmc_destination_hdr_t, port)
|
|
#define L_LBMC_DESTINATION_HDR_T_PORT SIZEOF(lbmc_destination_hdr_t, port)
|
|
#define O_LBMC_DESTINATION_HDR_T_HOPS_TAKEN OFFSETOF(lbmc_destination_hdr_t, hops_taken)
|
|
#define L_LBMC_DESTINATION_HDR_T_HOPS_TAKEN SIZEOF(lbmc_destination_hdr_t, hops_taken)
|
|
#define O_LBMC_DESTINATION_HDR_T_ORIG_DOMAIN_ID OFFSETOF(lbmc_destination_hdr_t, orig_domain_id)
|
|
#define L_LBMC_DESTINATION_HDR_T_ORIG_DOMAIN_ID SIZEOF(lbmc_destination_hdr_t, orig_domain_id)
|
|
#define O_LBMC_DESTINATION_HDR_T_ORIG_IPADDR OFFSETOF(lbmc_destination_hdr_t, orig_ipaddr)
|
|
#define L_LBMC_DESTINATION_HDR_T_ORIG_IPADDR SIZEOF(lbmc_destination_hdr_t, orig_ipaddr)
|
|
#define O_LBMC_DESTINATION_HDR_T_ORIG_PORT OFFSETOF(lbmc_destination_hdr_t, orig_port)
|
|
#define L_LBMC_DESTINATION_HDR_T_ORIG_PORT SIZEOF(lbmc_destination_hdr_t, orig_port)
|
|
#define O_LBMC_DESTINATION_HDR_T_RESERVED OFFSETOF(lbmc_destination_hdr_t, reserved)
|
|
#define L_LBMC_DESTINATION_HDR_T_RESERVED SIZEOF(lbmc_destination_hdr_t, reserved)
|
|
#define L_LBMC_DESTINATION_HDR_T (gint) sizeof(lbmc_destination_hdr_t)
|
|
|
|
/* LBMC topic index header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t tidx;
|
|
} lbmc_topic_idx_hdr_t;
|
|
#define O_LBMC_TOPIC_IDX_HDR_T_NEXT_HDR OFFSETOF(lbmc_topic_idx_hdr_t, next_hdr)
|
|
#define L_LBMC_TOPIC_IDX_HDR_T_NEXT_HDR SIZEOF(lbmc_topic_idx_hdr_t, next_hdr)
|
|
#define O_LBMC_TOPIC_IDX_HDR_T_HDR_LEN OFFSETOF(lbmc_topic_idx_hdr_t, hdr_len)
|
|
#define L_LBMC_TOPIC_IDX_HDR_T_HDR_LEN SIZEOF(lbmc_topic_idx_hdr_t, hdr_len)
|
|
#define O_LBMC_TOPIC_IDX_HDR_T_FLAGS OFFSETOF(lbmc_topic_idx_hdr_t, flags)
|
|
#define L_LBMC_TOPIC_IDX_HDR_T_FLAGS SIZEOF(lbmc_topic_idx_hdr_t, flags)
|
|
#define O_LBMC_TOPIC_IDX_HDR_T_TIDX OFFSETOF(lbmc_topic_idx_hdr_t, tidx)
|
|
#define L_LBMC_TOPIC_IDX_HDR_T_TIDX SIZEOF(lbmc_topic_idx_hdr_t, tidx)
|
|
#define L_LBMC_TOPIC_IDX_HDR_T (gint) sizeof(lbmc_topic_idx_hdr_t)
|
|
|
|
/* LBMC control topic source header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t domain_id;
|
|
} lbmc_cntl_topic_source_hdr_t;
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_topic_source_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_topic_source_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_topic_source_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_topic_source_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_topic_source_hdr_t, flags)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS SIZEOF(lbmc_cntl_topic_source_hdr_t, flags)
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_topic_source_hdr_t, domain_id)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_topic_source_hdr_t, domain_id)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_HDR_T (gint) sizeof(lbmc_cntl_topic_source_hdr_t)
|
|
|
|
/* LBMC control topic source extended functionality header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t src_ip;
|
|
lbm_uint16_t src_port;
|
|
lbm_uint16_t unused;
|
|
lbm_uint32_t functionality_flags;
|
|
} lbmc_cntl_topic_source_exfunc_hdr_t;
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, flags)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, flags)
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_IP OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, src_ip)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_IP SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, src_ip)
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_PORT OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, src_port)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_PORT SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, src_port)
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_UNUSED OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, unused)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_UNUSED SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, unused)
|
|
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, functionality_flags)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, functionality_flags)
|
|
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T (gint) sizeof(lbmc_cntl_topic_source_exfunc_hdr_t)
|
|
|
|
/* LBM control UME proxy source election token header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t store_index;
|
|
lbm_uint32_t token;
|
|
} lbmc_cntl_ume_psrc_election_token_hdr_t;
|
|
#define O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_psrc_election_token_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_psrc_election_token_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_psrc_election_token_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_psrc_election_token_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_psrc_election_token_hdr_t, flags)
|
|
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_psrc_election_token_hdr_t, flags)
|
|
#define O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_STORE_INDEX OFFSETOF(lbmc_cntl_ume_psrc_election_token_hdr_t, store_index)
|
|
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_STORE_INDEX SIZEOF(lbmc_cntl_ume_psrc_election_token_hdr_t, store_index)
|
|
#define O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_TOKEN OFFSETOF(lbmc_cntl_ume_psrc_election_token_hdr_t, token)
|
|
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_TOKEN SIZEOF(lbmc_cntl_ume_psrc_election_token_hdr_t, token)
|
|
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T (gint) sizeof(lbmc_cntl_ume_psrc_election_token_hdr_t)
|
|
|
|
/* LBM control TCP session ID header. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint16_t flags;
|
|
lbm_uint32_t sid;
|
|
} lbmc_cntl_tcp_sid_hdr_t;
|
|
#define O_LBMC_CNTL_TCP_SID_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_tcp_sid_hdr_t, next_hdr)
|
|
#define L_LBMC_CNTL_TCP_SID_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_tcp_sid_hdr_t, next_hdr)
|
|
#define O_LBMC_CNTL_TCP_SID_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_tcp_sid_hdr_t, hdr_len)
|
|
#define L_LBMC_CNTL_TCP_SID_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_tcp_sid_hdr_t, hdr_len)
|
|
#define O_LBMC_CNTL_TCP_SID_HDR_T_FLAGS OFFSETOF(lbmc_cntl_tcp_sid_hdr_t, flags)
|
|
#define L_LBMC_CNTL_TCP_SID_HDR_T_FLAGS SIZEOF(lbmc_cntl_tcp_sid_hdr_t, flags)
|
|
#define O_LBMC_CNTL_TCP_SID_HDR_T_SID OFFSETOF(lbmc_cntl_tcp_sid_hdr_t, sid)
|
|
#define L_LBMC_CNTL_TCP_SID_HDR_T_SID SIZEOF(lbmc_cntl_tcp_sid_hdr_t, sid)
|
|
#define L_LBMC_CNTL_TCP_SID_HDR_T (gint) sizeof(lbmc_cntl_tcp_sid_hdr_t)
|
|
|
|
/* LBMC extended configuration option. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t scope;
|
|
lbm_uint8_t parent;
|
|
} lbmc_extopt_cfgopt_hdr_t;
|
|
#define O_LBMC_EXTOPT_CFGOPT_HDR_T_SCOPE OFFSETOF(lbmc_extopt_cfgopt_hdr_t, scope)
|
|
#define L_LBMC_EXTOPT_CFGOPT_HDR_T_SCOPE SIZEOF(lbmc_extopt_cfgopt_hdr_t, scope)
|
|
#define O_LBMC_EXTOPT_CFGOPT_HDR_T_PARENT OFFSETOF(lbmc_extopt_cfgopt_hdr_t, scope)
|
|
#define L_LBMC_EXTOPT_CFGOPT_HDR_T_PARENT SIZEOF(lbmc_extopt_cfgopt_hdr_t, scope)
|
|
#define L_LBMC_EXTOPT_CFGOPT_HDR_T (gint) sizeof(lbmc_extopt_cfgopt_hdr_t)
|
|
|
|
/* LBMC extended option. */
|
|
typedef struct
|
|
{
|
|
lbm_uint8_t next_hdr;
|
|
lbm_uint8_t hdr_len;
|
|
lbm_uint8_t flags;
|
|
lbm_uint8_t id;
|
|
lbm_uint16_t subtype;
|
|
lbm_uint16_t fragment_offset;
|
|
} lbmc_extopt_hdr_t;
|
|
#define O_LBMC_EXTOPT_HDR_T_NEXT_HDR OFFSETOF(lbmc_extopt_hdr_t, next_hdr)
|
|
#define L_LBMC_EXTOPT_HDR_T_NEXT_HDR SIZEOF(lbmc_extopt_hdr_t, next_hdr)
|
|
#define O_LBMC_EXTOPT_HDR_T_HDR_LEN OFFSETOF(lbmc_extopt_hdr_t, hdr_len)
|
|
#define L_LBMC_EXTOPT_HDR_T_HDR_LEN SIZEOF(lbmc_extopt_hdr_t, hdr_len)
|
|
#define O_LBMC_EXTOPT_HDR_T_FLAGS OFFSETOF(lbmc_extopt_hdr_t, flags)
|
|
#define L_LBMC_EXTOPT_HDR_T_FLAGS SIZEOF(lbmc_extopt_hdr_t, flags)
|
|
#define O_LBMC_EXTOPT_HDR_T_ID OFFSETOF(lbmc_extopt_hdr_t, id)
|
|
#define L_LBMC_EXTOPT_HDR_T_ID SIZEOF(lbmc_extopt_hdr_t, id)
|
|
#define O_LBMC_EXTOPT_HDR_T_SUBTYPE OFFSETOF(lbmc_extopt_hdr_t, subtype)
|
|
#define L_LBMC_EXTOPT_HDR_T_SUBTYPE SIZEOF(lbmc_extopt_hdr_t, subtype)
|
|
#define O_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET OFFSETOF(lbmc_extopt_hdr_t, fragment_offset)
|
|
#define L_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET SIZEOF(lbmc_extopt_hdr_t, fragment_offset)
|
|
#define L_LBMC_EXTOPT_HDR_T (gint) sizeof(lbmc_extopt_hdr_t)
|
|
|
|
/* LBMC message properties. */
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t key_offset;
|
|
lbm_uint32_t value_offset;
|
|
lbm_uint32_t hash;
|
|
lbm_uint32_t type;
|
|
} lbm_msg_properties_hdr_t;
|
|
#define O_LBM_MSG_PROPERTIES_HDR_T_KEY_OFFSET OFFSETOF(lbm_msg_properties_hdr_t, key_offset)
|
|
#define L_LBM_MSG_PROPERTIES_HDR_T_KEY_OFFSET SIZEOF(lbm_msg_properties_hdr_t, key_offset)
|
|
#define O_LBM_MSG_PROPERTIES_HDR_T_VALUE_OFFSET OFFSETOF(lbm_msg_properties_hdr_t, value_offset)
|
|
#define L_LBM_MSG_PROPERTIES_HDR_T_VALUE_OFFSET SIZEOF(lbm_msg_properties_hdr_t, value_offset)
|
|
#define O_LBM_MSG_PROPERTIES_HDR_T_HASH OFFSETOF(lbm_msg_properties_hdr_t, hash)
|
|
#define L_LBM_MSG_PROPERTIES_HDR_T_HASH SIZEOF(lbm_msg_properties_hdr_t, hash)
|
|
#define O_LBM_MSG_PROPERTIES_HDR_T_TYPE OFFSETOF(lbm_msg_properties_hdr_t, type)
|
|
#define L_LBM_MSG_PROPERTIES_HDR_T_TYPE SIZEOF(lbm_msg_properties_hdr_t, type)
|
|
#define L_LBM_MSG_PROPERTIES_HDR_T (gint) sizeof(lbm_msg_properties_hdr_t)
|
|
|
|
typedef struct
|
|
{
|
|
lbm_uint32_t magic;
|
|
lbm_uint16_t num_fields;
|
|
lbm_uint8_t vertype;
|
|
lbm_uint8_t res;
|
|
} lbm_msg_properties_data_t;
|
|
#define O_LBM_MSG_PROPERTIES_DATA_T_MAGIC OFFSETOF(lbm_msg_properties_data_t, magic)
|
|
#define L_LBM_MSG_PROPERTIES_DATA_T_MAGIC SIZEOF(lbm_msg_properties_data_t, magic)
|
|
#define O_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS OFFSETOF(lbm_msg_properties_data_t, num_fields)
|
|
#define L_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS SIZEOF(lbm_msg_properties_data_t, num_fields)
|
|
#define O_LBM_MSG_PROPERTIES_DATA_T_VERTYPE OFFSETOF(lbm_msg_properties_data_t, vertype)
|
|
#define L_LBM_MSG_PROPERTIES_DATA_T_VERTYPE SIZEOF(lbm_msg_properties_data_t, vertype)
|
|
#define O_LBM_MSG_PROPERTIES_DATA_T_RES OFFSETOF(lbm_msg_properties_data_t, res)
|
|
#define L_LBM_MSG_PROPERTIES_DATA_T_RES SIZEOF(lbm_msg_properties_data_t, res)
|
|
#define L_LBM_MSG_PROPERTIES_DATA_T (gint) sizeof(lbm_msg_properties_data_t)
|
|
|
|
/* Unhandled header. */
|
|
#define O_LBMC_UNHANDLED_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define L_LBMC_UNHANDLED_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
|
|
#define O_LBMC_UNHANDLED_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
|
|
#define L_LBMC_UNHANDLED_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
|
|
|
|
/* End of LBMC header definitions. */
|
|
|
|
#define LBMC_VERSION 0x0
|
|
|
|
#define LBMC_TYPE_MESSAGE 0x00
|
|
#define LBMC_TYPE_EOT 0x01
|
|
#define LBMC_TYPE_PRORX 0x02
|
|
#define LBMC_TYPE_CONTROL 0x08
|
|
#define LBMC_TYPE_RETRANS 0x0A
|
|
|
|
#define LBMC_NHDR_DATA 0x00
|
|
#define LBMC_NHDR_FRAG 0x01
|
|
#define LBMC_NHDR_BATCH 0x02
|
|
#define LBMC_NHDR_TGIDX 0x03
|
|
#define LBMC_NHDR_REQUEST 0x04
|
|
#define LBMC_NHDR_TOPICNAME 0x05
|
|
#define LBMC_NHDR_APPHDR 0x06
|
|
#define LBMC_NHDR_APPHDR_CHAIN 0x07
|
|
#define LBMC_NHDR_UMQ_MSGID 0x08
|
|
#define LBMC_NHDR_UMQ_SQD_RCV 0x09
|
|
#define LBMC_NHDR_UMQ_RESUB 0x0A
|
|
#define LBMC_NHDR_OTID 0x0B
|
|
#define LBMC_NHDR_CTXINSTD 0x0C
|
|
#define LBMC_NHDR_CTXINSTR 0x0D
|
|
#define LBMC_NHDR_SRCIDX 0x0E
|
|
#define LBMC_NHDR_UMQ_ULB_MSG 0x0F
|
|
#define LBMC_NHDR_SSF_INIT 0x10
|
|
#define LBMC_NHDR_SSF_CREQ 0x11
|
|
#define LBMC_NHDR_UME_PREG 0x12
|
|
#define LBMC_NHDR_UME_PREG_RESP 0x13
|
|
#define LBMC_NHDR_UME_ACK 0x14
|
|
#define LBMC_NHDR_UME_RXREQ 0x15
|
|
#define LBMC_NHDR_UME_KEEPALIVE 0x16
|
|
#define LBMC_NHDR_UME_STOREID 0x17
|
|
#define LBMC_NHDR_UME_RANGED_ACK 0x18
|
|
#define LBMC_NHDR_UME_ACK_ID 0x19
|
|
#define LBMC_NHDR_UME_CAPABILITY 0x1A
|
|
#define LBMC_NHDR_UME_PROXY_SRC 0x1B
|
|
#define LBMC_NHDR_UME_STORE_GROUP 0x1C
|
|
#define LBMC_NHDR_UME_STORE_INFO 0x1D
|
|
#define LBMC_NHDR_UME_LJ_INFO 0x1E
|
|
#define LBMC_NHDR_TSNI 0x20
|
|
#define LBMC_NHDR_UMQ_REG 0x30
|
|
#define LBMC_NHDR_UMQ_REG_RESP 0x31
|
|
#define LBMC_NHDR_UMQ_ACK 0x32
|
|
#define LBMC_NHDR_UMQ_RCR 0x33
|
|
#define LBMC_NHDR_UMQ_KA 0x34
|
|
#define LBMC_NHDR_UMQ_RXREQ 0x35
|
|
#define LBMC_NHDR_UMQ_QMGMT 0x36
|
|
#define LBMC_NHDR_UMQ_RESUB_REQ 0x37
|
|
#define LBMC_NHDR_UMQ_RESUB_RESP 0x38
|
|
#define LBMC_NHDR_TOPIC_INTEREST 0x39
|
|
#define LBMC_NHDR_PATTERN_INTEREST 0x3A
|
|
#define LBMC_NHDR_ADVERTISEMENT 0x3B
|
|
#define LBMC_NHDR_UME_CTXINSTS 0x3C
|
|
#define LBMC_NHDR_UME_STORENAME 0x3D
|
|
#define LBMC_NHDR_UMQ_ULB_RCR 0x3E
|
|
#define LBMC_NHDR_UMQ_LF 0x3F
|
|
#define LBMC_NHDR_CTXINFO 0x40
|
|
#define LBMC_NHDR_UME_PSER 0x41
|
|
#define LBMC_NHDR_CTXINST 0x42
|
|
#define LBMC_NHDR_DOMAIN 0x43
|
|
#define LBMC_NHDR_TNWG_CAPABILITIES 0x44
|
|
#define LBMC_NHDR_PATIDX 0x45
|
|
#define LBMC_NHDR_UME_CLIENT_LIFETIME 0x46
|
|
#define LBMC_NHDR_UME_SID 0x47
|
|
#define LBMC_NHDR_UMQ_IDX_CMD 0x48
|
|
#define LBMC_NHDR_UMQ_IDX_CMD_RESP 0x49
|
|
#define LBMC_NHDR_ODOMAIN 0x4a
|
|
#define LBMC_NHDR_STREAM 0x4b
|
|
#define LBMC_NHDR_TOPIC_MD_INTEREST 0x4c
|
|
#define LBMC_NHDR_PATTERN_MD_INTEREST 0x4d
|
|
#define LBMC_NHDR_LJI_REQ 0x4e
|
|
#define LBMC_NHDR_TNWG_KA 0x4f
|
|
#define LBMC_NHDR_UME_RCV_KEEPALIVE 0x50
|
|
#define LBMC_NHDR_UMQ_CMD 0x51
|
|
#define LBMC_NHDR_UMQ_CMD_RESP 0x52
|
|
#define LBMC_NHDR_SRI_REQ 0x53
|
|
#define LBMC_NHDR_UME_STORE_DOMAIN 0x54
|
|
#define LBMC_NHDR_SRI 0x55
|
|
#define LBMC_NHDR_ROUTE_INFO 0x56
|
|
#define LBMC_NHDR_ROUTE_INFO_NEIGHBOR 0x57
|
|
#define LBMC_NHDR_GATEWAY_NAME 0x58
|
|
#define LBMC_NHDR_AUTHENTICATION 0x60
|
|
#define LBMC_NHDR_HMAC 0x62
|
|
#define LBMC_NHDR_UMQ_SID 0x63
|
|
#define LBMC_NHDR_DESTINATION 0x64
|
|
#define LBMC_NHDR_TOPIC_IDX 0x65
|
|
#define LBMC_NHDR_TOPIC_SOURCE 0x67
|
|
#define LBMC_NHDR_TOPIC_SOURCE_EXFUNC 0x68
|
|
#define LBMC_NHDR_UME_STORE_INFO_EXT 0x69
|
|
#define LBMC_NHDR_UME_PSRC_ELECTION_TOKEN 0x6A
|
|
#define LBMC_NHDR_TCP_SID 0x6B
|
|
|
|
#define LBMC_NHDR_EXTOPT 0xFE
|
|
|
|
#define LBMC_NHDR_NONE 0xFF
|
|
|
|
#define LBMC_OPT_IGNORE 0x8000
|
|
#define LBMC_OPT_IGNORE_CHAR 0x80
|
|
#define LBMC_BATCH_START 0x0002
|
|
#define LBMC_BATCH_END 0x0001
|
|
|
|
#define LBMC_CNTL_SSF_INIT_DEFAULT_INC 0x40
|
|
#define LBMC_CNTL_SSF_INIT_DEFAULT_EXC 0x20
|
|
|
|
#define LBMC_CNTL_SSF_CREQ_MODE_INCLUDE 0x00
|
|
#define LBMC_CNTL_SSF_CREQ_MODE_EXCLUDE 0x01
|
|
|
|
#define LBMC_REQUEST_TRANSPORT_TCP 0x00
|
|
#define LBMC_CNTL_SSF_INIT_TRANSPORT_TCP 0x00
|
|
|
|
#define LBMC_UME_PREG_S_FLAG 0x80
|
|
#define LBMC_UME_PREG_F_FLAG 0x40
|
|
#define LBMC_UME_PREG_P_FLAG 0x20
|
|
#define LBMC_UME_PREG_W_FLAG 0x10
|
|
#define LBMC_UME_PREG_D_FLAG 0x08
|
|
#define LBMC_UME_PREG_MARKER_PRI 0x01
|
|
#define LBMC_UME_PREG_MARKER_SEC 0x02
|
|
#define LBMC_UME_PREG_MARKER_TER 0x03
|
|
#define LBMC_UME_PREG_RESP_O_FLAG 0x40
|
|
#define LBMC_UME_PREG_RESP_E_FLAG 0x20
|
|
#define LBMC_UME_PREG_RESP_S_FLAG 0x80
|
|
#define LBMC_UME_PREG_RESP_W_FLAG 0x02
|
|
#define LBMC_UME_PREG_RESP_D_FLAG 0x01
|
|
#define LBMC_UME_PREG_RESP_ERRCODE_ENOERROR 0x00
|
|
#define LBMC_UME_PREG_RESP_ERRCODE_ENOPATTERN 0x01
|
|
#define LBMC_UME_PREG_RESP_ERRCODE_ESRCREGID 0x02
|
|
#define LBMC_UME_PREG_RESP_ERRCODE_EREGID 0x03
|
|
#define LBMC_UME_PREG_RESP_ERRCODE_ETOPICNAME 0x04
|
|
#define LBMC_UME_PREG_RESP_ERRCODE_EACTIVE 0x05
|
|
#define LBMC_UME_PREG_RESP_ERRCODE_ECONFIG 0x06
|
|
#define LBMC_UME_PREG_RESP_CODE_NOACKS_FLAG 0x10
|
|
#define LBMC_UME_PREG_RESP_CODE_NOCACHE_FLAG 0x10
|
|
#define LBMC_UME_ACK_O_FLAG 0x40
|
|
#define LBMC_UME_ACK_F_FLAG 0x20
|
|
#define LBMC_UME_ACK_U_FLAG 0x10
|
|
#define LBMC_UME_ACK_E_FLAG 0x08
|
|
#define LBMC_UME_ACK_TYPE_CDELV 0x00
|
|
#define LBMC_UME_ACK_TYPE_STABLE 0x01
|
|
#define LBMC_UME_KEEPALIVE_R_FLAG 0x40
|
|
#define LBMC_UME_KEEPALIVE_T_FLAG 0x20
|
|
#define LBMC_UME_KEEPALIVE_TYPE_SRC 0x2
|
|
#define LBMC_UME_KEEPALIVE_TYPE_RCV 0x1
|
|
#define LBMC_UME_KEEPALIVE_TYPE_STORE 0x0
|
|
#define LBMC_UME_STOREID_MAX_STOREID 0x7FFF
|
|
#define LBMC_UME_CAPABILITY_QC_FLAG 0x4000
|
|
#define LBMC_UME_CAPABILITY_CLIENT_LIFETIME_FLAG 0x2000
|
|
#define LBMC_UME_PROXY_SRC_E_FLAG 0x4000
|
|
#define LBMC_UME_PROXY_SRC_C_FLAG 0x2000
|
|
#define LBMC_UME_RXREQ_T_FLAG 0x4000
|
|
#define LBMC_UME_RXREQ_MARKER_MASK 0x00FF
|
|
#define LBMC_LJI_REQ_L_FLAG 0x0001
|
|
#define LBMC_LJI_REQ_M_FLAG 0x0002
|
|
#define LBMC_LJI_REQ_O_FLAG 0x0004
|
|
#define LBMC_SRI_A_FLAG 0x0001
|
|
#define LBMC_SRI_INITIAL_SQN_KNOWN_FLAG 0x0002
|
|
#define LBMC_UMQ_REG_CTX_TYPE 0x1
|
|
#define LBMC_UMQ_REG_SRC_TYPE 0x2
|
|
#define LBMC_UMQ_REG_RCV_TYPE 0x3
|
|
#define LBMC_UMQ_REG_RCV_DEREG_TYPE 0x4
|
|
#define LBMC_UMQ_REG_ULB_RCV_TYPE 0x5
|
|
#define LBMC_UMQ_REG_ULB_RCV_DEREG_TYPE 0x6
|
|
#define LBMC_UMQ_REG_OBSERVER_RCV_TYPE 0x7
|
|
#define LBMC_UMQ_REG_OBSERVER_RCV_DEREG_TYPE 0x8
|
|
#define LBMC_UMQ_REG_R_FLAG 0x40
|
|
#define LBMC_UMQ_REG_T_FLAG 0x20
|
|
#define LBMC_UMQ_REG_I_FLAG 0x10
|
|
#define LBMC_UMQ_REG_MSG_SEL_FLAG 0x08
|
|
#define LBMC_UMQ_REG_RESP_CTX_TYPE 0x1
|
|
#define LBMC_UMQ_REG_RESP_SRC_TYPE 0x2
|
|
#define LBMC_UMQ_REG_RESP_RCV_TYPE 0x3
|
|
#define LBMC_UMQ_REG_RESP_RCV_DEREG_TYPE 0x4
|
|
#define LBMC_UMQ_REG_RESP_ULB_RCV_TYPE 0x5
|
|
#define LBMC_UMQ_REG_RESP_ULB_RCV_DEREG_TYPE 0x6
|
|
#define LBMC_UMQ_REG_RESP_OBSERVER_RCV_TYPE 0x7
|
|
#define LBMC_UMQ_REG_RESP_OBSERVER_RCV_DEREG_TYPE 0x8
|
|
#define LBMC_UMQ_REG_RESP_CTX_EX_TYPE 0x9
|
|
#define LBMC_UMQ_REG_RESP_ERR_TYPE 0xFF
|
|
#define LBMC_UMQ_REG_RESP_R_FLAG 0x40
|
|
#define LBMC_UMQ_REG_RESP_ERR_L_FLAG 0x20
|
|
#define LBMC_UMQ_REG_RESP_SRC_S_FLAG 0x20
|
|
#define LBMC_UMQ_REG_RESP_SRC_D_FLAG 0x10
|
|
#define LBMC_UMQ_REG_RESP_CTX_EX_FLAG_FIRSTMSG 0x1
|
|
|
|
#define LBMC_UMQ_ACK_STABLE_TYPE 0x1
|
|
#define LBMC_UMQ_ACK_CR_TYPE 0x2
|
|
#define LBMC_UMQ_ACK_ULB_CR_TYPE 0x3
|
|
#define LBMC_UMQ_ACK_T_FLAG 0x40
|
|
#define LBMC_UMQ_ACK_D_FLAG 0x20
|
|
#define LBMC_UMQ_ACK_NUMIDS_MASK 0x0F
|
|
#define LBMC_UMQ_RCR_BOI_FLAG 0x100
|
|
#define LBMC_UMQ_RCR_R_FLAG 0x4000
|
|
#define LBMC_UMQ_RCR_D_FLAG 0x2000
|
|
#define LBMC_UMQ_RCR_S_FLAG 0x1000
|
|
#define LBMC_UMQ_RCR_EOI_FLAG 0x200
|
|
#define LBMC_UMQ_RCR_BOI_FLAG 0x100
|
|
#define LBMC_UMQ_ULB_RCR_R_FLAG 0x4000
|
|
#define LBMC_UMQ_ULB_RCR_D_FLAG 0x2000
|
|
#define LBMC_UMQ_ULB_RCR_EOI_FLAG 0x200
|
|
#define LBMC_UMQ_ULB_RCR_BOI_FLAG 0x100
|
|
#define LBMC_UMQ_SQD_RCV_R_FLAG 0x4000
|
|
#define LBMC_UMQ_SQD_RCV_S_FLAG 0x2000
|
|
#define LBMC_UMQ_SQD_RCV_RE_FLAG 0x800
|
|
#define LBMC_UMQ_SQD_RCV_EOI_FLAG 0x200
|
|
#define LBMC_UMQ_SQD_RCV_BOI_FLAG 0x100
|
|
#define LBMC_UMQ_RESUB_Q_FLAG 0x4000
|
|
#define LBMC_UMQ_ULB_MSG_A_FLAG 0x4000
|
|
#define LBMC_UMQ_ULB_MSG_R_FLAG 0x2000
|
|
#define LBMC_UMQ_KA_CTX_TYPE 0x00
|
|
#define LBMC_UMQ_KA_SRC_TYPE 0x01
|
|
#define LBMC_UMQ_KA_RCV_TYPE 0x02
|
|
#define LBMC_UMQ_KA_ULB_RCV_TYPE 0x03
|
|
#define LBMC_UMQ_KA_CTX_RESP_TYPE 0x10
|
|
#define LBMC_UMQ_KA_SRC_RESP_TYPE 0x11
|
|
#define LBMC_UMQ_KA_RCV_RESP_TYPE 0x12
|
|
#define LBMC_UMQ_KA_ULB_RCV_RESP_TYPE 0x13
|
|
#define LBMC_UMQ_KA_R_FLAG 0x40
|
|
#define LBMC_UMQ_RXREQ_MR_TYPE 0x1
|
|
#define LBMC_UMQ_RXREQ_QRCRR_TYPE 0x2
|
|
#define LBMC_UMQ_RXREQ_TRCRR_TYPE 0x3
|
|
#define LBMC_UMQ_RXREQ_ULB_MR_TYPE 0x4
|
|
#define LBMC_UMQ_RXREQ_ULB_TRCRR_TYPE 0x5
|
|
#define LBMC_UMQ_RXREQ_ULB_MR_ABORT_TYPE 0x6
|
|
#define LBMC_UMQ_RXREQ_ULB_TRCRR_ABORT_TYPE 0x7
|
|
#define LBMC_UMQ_RXREQ_R_FLAG 0x40
|
|
#define LBMC_UMQ_RESUB_RESP_ENQUEUED_CODE 0x1
|
|
#define LBMC_UMQ_RESUB_RESP_CONSUMED_CODE 0x2
|
|
#define LBMC_UMQ_RESUB_RESP_OUTSTANDING_CODE 0x3
|
|
#define LBMC_UMQ_RESUB_RESP_RESUBALLOWED_CODE 0x4
|
|
#define LBMC_UMQ_RESUB_RESP_RESUBDONE_CODE 0x5
|
|
#define LBMC_UMQ_LF_SRC_TYPE 0x01
|
|
#define LBMC_UMQ_LF_RCV_TYPE 0x02
|
|
#define LBMC_UMQ_LF_U_FLAG 0x40
|
|
#define LBMC_UMQ_IDX_CMD_RCV_STOP_IDX_ASSIGN_TYPE 0x1
|
|
#define LBMC_UMQ_IDX_CMD_RCV_START_IDX_ASSIGN_TYPE 0x2
|
|
#define LBMC_UMQ_IDX_CMD_ULB_RCV_STOP_IDX_ASSIGN_TYPE 0x3
|
|
#define LBMC_UMQ_IDX_CMD_ULB_RCV_START_IDX_ASSIGN_TYPE 0x4
|
|
#define LBMC_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_TYPE 0x5
|
|
#define LBMC_UMQ_IDX_CMD_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE 0x6
|
|
#define LBMC_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_TYPE 0x7
|
|
#define LBMC_UMQ_IDX_CMD_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE 0x8
|
|
#define LBMC_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_TYPE 0x1
|
|
#define LBMC_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_TYPE 0x2
|
|
#define LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_TYPE 0x3
|
|
#define LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_TYPE 0x4
|
|
#define LBMC_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_TYPE 0x5
|
|
#define LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE 0x6
|
|
#define LBMC_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_TYPE 0x7
|
|
#define LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE 0x8
|
|
|
|
#define UMQUEUE_CTX_REG_EDUPREGID 0x1
|
|
#define UMQUEUE_SRC_REG_EREGID 0x2
|
|
#define UMQUEUE_SRC_REG_ENOPATTERN 0x3
|
|
#define UMQUEUE_SRC_REG_ENOTOPICNAME 0x4
|
|
#define UMQUEUE_RCV_REG_ENOTOPICNAME 0x5
|
|
#define UMQUEUE_RCV_REG_EREGID 0x6
|
|
#define UMQUEUE_RCV_REG_ENOPATTERN 0x7
|
|
#define UMQUEUE_RCV_REG_EASSIGNIDINUSE 0x8
|
|
#define UMQUEUE_RCV_REG_ERCVTYPEID 0x9
|
|
#define UMQUEUE_RCV_REG_EINVAL 0xa
|
|
#define UMQUEUE_REG_EAUTHFAIL 0x10
|
|
|
|
#define UMQUEUE_RCV_IDX_CMD_EREGID 0x1
|
|
#define UMQUEUE_RCV_IDX_CMD_EIDXNOTASSIGNED 0x2
|
|
#define UMQUEUE_RCV_IDX_CMD_EIDXINELIGIBLE 0x3
|
|
#define UMQUEUE_RCV_IDX_CMD_EIDXINUSE 0x4
|
|
#define UMQUEUE_RCV_IDX_CMD_EIDXALREADYASSIGNED 0x5
|
|
#define UMQUEUE_RCV_IDX_CMD_EAUTHFAIL 0x10
|
|
#define LBM_UMQ_ULB_RCV_IDX_CMD_EIDXNOTASSIGNED 0xA
|
|
#define LBM_UMQ_ULB_RCV_IDX_CMD_EIDXINELIGIBLE 0xB
|
|
#define LBM_UMQ_ULB_RCV_IDX_CMD_EIDXINUSE 0xC
|
|
#define LBM_UMQ_ULB_RCV_IDX_CMD_EIDXALREADYASSIGNED 0xD
|
|
|
|
#define LBMC_UMQ_IDX_CMD_RESP_ERR_TYPE 0xFF
|
|
#define LBMC_UMQ_IDX_CMD_RESP_ERR_L_FLAG 0x20
|
|
#define LBM_UMQ_INDEX_FLAG_NUMERIC 0x1
|
|
|
|
#define LBMC_TOPIC_INTEREST_CANCEL_FLAG 0x4000
|
|
#define LBMC_TOPIC_INTEREST_REFRESH_FLAG 0x2000
|
|
#define LBMC_PATTERN_INTEREST_CANCEL_FLAG 0x40
|
|
#define LBMC_PATTERN_INTEREST_REFRESH_FLAG 0x20
|
|
#define LBMC_ADVERTISEMENT_EOS_FLAG 0x40
|
|
#define LBMC_ADVERTISEMENT_PATTERN_FLAG 0x20
|
|
#define LBMC_ADVERTISEMENT_CHANGE_FLAG 0x10
|
|
#define LBMC_ADVERTISEMENT_CTXINST_FLAG 0x08
|
|
#define LBMC_TOPIC_SOURCE_EOS_FLAG 0x4000
|
|
#define LBMC_ADVERTISEMENT_AD_LJ_FLAG 0x80000000
|
|
#define LBMC_ADVERTISEMENT_AD_UME_FLAG 0x40000000
|
|
#define LBMC_ADVERTISEMENT_AD_ACKTOSRC_FLAG 0x20000000
|
|
#define LBMC_ADVERTISEMENT_AD_QUEUE_FLAG 0x10000000
|
|
#define LBMC_ADVERTISEMENT_AD_ULB_FLAG 0x08000000
|
|
#define LBMC_CTXINFO_QUERY_FLAG 0x4000
|
|
#define LBMC_CTXINFO_ADDR_FLAG 0x2000
|
|
#define LBMC_CTXINFO_CTXINST_FLAG 0x1000
|
|
#define LBMC_CTXINFO_NAME_FLAG 0x0800
|
|
#define LBMC_CTXINFO_TNWGSRC_FLAG 0x0400
|
|
#define LBMC_CTXINFO_TNWGRCV_FLAG 0x0200
|
|
#define LBMC_CTXINFO_PROXY_FLAG 0x0100
|
|
#define LBMC_UME_PSER_SOURCE_CTXINST_FLAG 0x4000
|
|
#define LBMC_UME_PSER_STORE_CTXINST_FLAG 0x2000
|
|
#define LBMC_UME_PSER_REELECT_FLAG 0x1000
|
|
#define LBMC_DOMAIN_ACTIVE_FLAG 0x4000
|
|
#define LBMC_CNTL_TNWG_CAPABILITIES_VERSION_MASK 0x7fff
|
|
#define LBMC_CNTL_TNWG_CAPABILITIES1_UME_FLAG 0x80000000
|
|
#define LBMC_CNTL_TNWG_CAPABILITIES1_UMQ_FLAG 0x40000000
|
|
#define LBMC_CNTL_TNWG_CAPABILITIES3_PCRE_FLAG 0x80000000
|
|
#define LBMC_CNTL_TNWG_CAPABILITIES3_REGEX_FLAG 0x40000000
|
|
|
|
#define LBM_CHAIN_ELEM_CHANNEL_NUMBER 0x1
|
|
#define LBM_CHAIN_ELEM_HF_SQN 0x2
|
|
#define LBM_CHAIN_ELEM_GW_INFO 0x3
|
|
#define LBM_CHAIN_ELEM_APPHDR 0x4
|
|
#define LBM_CHAIN_ELEM_USER_DATA 0x5
|
|
#define LBM_CHAIN_ELEM_PROPERTIES_LENGTH 0x6
|
|
#define LBM_CHAIN_ELEM_NONE 0xff
|
|
|
|
#define LBMC_CNTL_TNWG_KA_Q_FLAG 0x4000
|
|
#define LBMC_CNTL_TNWG_KA_R_FLAG 0x2000
|
|
|
|
#define LBMC_UMQ_CMD_TYPE_TOPIC_LIST 1
|
|
#define LBMC_UMQ_CMD_TYPE_RCV_MSG_RETRIEVE 2
|
|
#define LBMC_UMQ_CMD_TYPE_RCV_MSG_LIST 3
|
|
|
|
#define LBMC_UMQ_CMD_RESP_TYPE_CTX_TOPIC_LIST 1
|
|
#define LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_RETRIEVE 2
|
|
#define LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_LIST 3
|
|
#define LBMC_UMQ_CMD_RESP_TYPE_ERROR 4
|
|
|
|
#define AUTH_OP_REQ 0x01
|
|
#define AUTH_OP_CHALLENGE 0x02
|
|
#define AUTH_OP_CHALLENGE_RSP 0x03
|
|
#define AUTH_OP_RESULT 0x04
|
|
|
|
#define LBMC_UMQ_CMD_RESP_ERROR_AUTHFAIL 0x11
|
|
#define LBMC_UMQ_CMD_RESP_ERROR_NOHMAC 0x12
|
|
#define LBMC_UMQ_CMD_RESP_ERROR_NOAUTHOR 0x13
|
|
|
|
#define LBMC_EXTOPT_FLAG_IGNORE 0x80
|
|
#define LBMC_EXTOPT_FLAG_IGNORE_SUBTYPE 0x40
|
|
#define LBMC_EXTOPT_FLAG_MORE_FRAGMENT 0x20
|
|
|
|
#define LBMC_EXT_NHDR_CFGOPT 0x0100
|
|
#define LBMC_EXT_NHDR_MSGSEL 0x0101
|
|
|
|
#define LBM_MSG_PROPERTIES_HDR_VER(vt) ((vt & 0xF0) >> 4)
|
|
#define LBM_MSG_PROPERTIES_HDR_TYPE(vt) (vt & 0xF)
|
|
#define LBM_MSG_PROPERTIES_HDR_VER_MASK 0xF0
|
|
#define LBM_MSG_PROPERTIES_HDR_TYPE_MASK 0x0F
|
|
|
|
#define LBM_MSG_PROPERTIES_VER 0x0
|
|
|
|
#define LBM_MSG_PROPERTIES_TYPE_NORMAL 0x0
|
|
|
|
#define LBM_MSG_PROPERTIES_MAGIC 0xABACDABA
|
|
#define LBM_MSG_PROPERTIES_ANTIMAGIC 0xBADAACAB
|
|
|
|
#define LBM_MSG_PROPERTY_NONE 0x0
|
|
#define LBM_MSG_PROPERTY_BOOLEAN 0x1
|
|
#define LBM_MSG_PROPERTY_BYTE 0x2
|
|
#define LBM_MSG_PROPERTY_SHORT 0x3
|
|
#define LBM_MSG_PROPERTY_INT 0x4
|
|
#define LBM_MSG_PROPERTY_LONG 0x5
|
|
#define LBM_MSG_PROPERTY_FLOAT 0x6
|
|
#define LBM_MSG_PROPERTY_DOUBLE 0x7
|
|
#define LBM_MSG_PROPERTY_STRING 0x8
|
|
|
|
#define LBM_UMQ_QUEUE_MSG_STATUS_UNKNOWN 0
|
|
#define LBM_UMQ_QUEUE_MSG_STATUS_UNASSIGNED 1
|
|
#define LBM_UMQ_QUEUE_MSG_STATUS_ASSIGNED 2
|
|
#define LBM_UMQ_QUEUE_MSG_STATUS_REASSIGNING 3
|
|
#define LBM_UMQ_QUEUE_MSG_STATUS_CONSUMED 4
|
|
#define LBM_UMQ_QUEUE_MSG_STATUS_COMPLETE 5
|
|
|
|
#define LBMC_CNTL_CONFIG_OPT_SCOPE_SOURCE 0x1
|
|
#define LBMC_CNTL_CONFIG_OPT_SCOPE_RECEIVER 0x2
|
|
#define LBMC_CNTL_CONFIG_OPT_SCOPE_CONTEXT 0x3
|
|
#define LBMC_CNTL_CONFIG_OPT_SCOPE_WILDCARD_RECEIVER 0x4
|
|
#define LBMC_CNTL_CONFIG_OPT_SCOPE_EVENT_QUEUE 0x5
|
|
#define LBMC_CNTL_CONFIG_OPT_SCOPE_CONNECTION_FACTORY 0x6
|
|
#define LBMC_CNTL_CONFIG_OPT_SCOPE_DESTINATION 0x7
|
|
#define LBMC_CNTL_CONFIG_OPT_SCOPE_HFX 0x8
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Value translation tables. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
static const value_string lbmc_message_type[] =
|
|
{
|
|
{ LBMC_TYPE_MESSAGE, "Message" },
|
|
{ LBMC_TYPE_PRORX, "Proactive Retransmission" },
|
|
{ LBMC_TYPE_RETRANS, "Retransmission" },
|
|
{ LBMC_TYPE_CONTROL, "Control" },
|
|
{ LBMC_TYPE_EOT, "EOT" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_next_header[] =
|
|
{
|
|
{ LBMC_NHDR_DATA, "Data" },
|
|
{ LBMC_NHDR_FRAG, "Fragment" },
|
|
{ LBMC_NHDR_BATCH, "Batch" },
|
|
{ LBMC_NHDR_TGIDX, "Unknown" },
|
|
{ LBMC_NHDR_REQUEST, "Request" },
|
|
{ LBMC_NHDR_TOPICNAME, "Topic name" },
|
|
{ LBMC_NHDR_APPHDR, "Application header" },
|
|
{ LBMC_NHDR_APPHDR_CHAIN, "Application header chain" },
|
|
{ LBMC_NHDR_UMQ_MSGID, "UMQ message ID" },
|
|
{ LBMC_NHDR_UMQ_SQD_RCV, "UMQ SQD rcv" },
|
|
{ LBMC_NHDR_UMQ_RESUB, "UMQ resub" },
|
|
{ LBMC_NHDR_OTID, "OTID" },
|
|
{ LBMC_NHDR_CTXINSTD, "Context instance destination" },
|
|
{ LBMC_NHDR_CTXINSTR, "Context instance return" },
|
|
{ LBMC_NHDR_SRCIDX, "Source index" },
|
|
{ LBMC_NHDR_UMQ_ULB_MSG, "UMQ ULB Message" },
|
|
{ LBMC_NHDR_SSF_INIT, "Source-side filtering init" },
|
|
{ LBMC_NHDR_SSF_CREQ, "Source-side filtering control request" },
|
|
{ LBMC_NHDR_UME_PREG, "UME persistent registration" },
|
|
{ LBMC_NHDR_UME_PREG_RESP, "UME persistent registration response" },
|
|
{ LBMC_NHDR_UME_ACK, "UME acknowledgement" },
|
|
{ LBMC_NHDR_UME_RXREQ, "UME retransmission request" },
|
|
{ LBMC_NHDR_UME_KEEPALIVE, "UME keepalive" },
|
|
{ LBMC_NHDR_UME_STOREID, "UME store ID" },
|
|
{ LBMC_NHDR_UME_RANGED_ACK, "UME ranged ACK" },
|
|
{ LBMC_NHDR_UME_ACK_ID, "UME ACK" },
|
|
{ LBMC_NHDR_UME_CAPABILITY, "UME capability" },
|
|
{ LBMC_NHDR_UME_PROXY_SRC, "Proxy source" },
|
|
{ LBMC_NHDR_UME_STORE_GROUP, "Store group" },
|
|
{ LBMC_NHDR_UME_STORE_INFO, "Store info" },
|
|
{ LBMC_NHDR_UME_LJ_INFO, "UME late-join info" },
|
|
{ LBMC_NHDR_TSNI, "Topic sequence info" },
|
|
{ LBMC_NHDR_UMQ_REG, "UMQ registration" },
|
|
{ LBMC_NHDR_UMQ_REG_RESP, "UMQ registration response" },
|
|
{ LBMC_NHDR_UMQ_ACK, "UMQ ACK" },
|
|
{ LBMC_NHDR_UMQ_RCR, "UMQ receiver control record" },
|
|
{ LBMC_NHDR_UMQ_KA, "UMQ keepalive" },
|
|
{ LBMC_NHDR_UMQ_RXREQ, "UME retransmission request" },
|
|
{ LBMC_NHDR_UMQ_QMGMT, "UMQ queue management" },
|
|
{ LBMC_NHDR_UMQ_RESUB_REQ, "UMQ resubmission request" },
|
|
{ LBMC_NHDR_UMQ_RESUB_RESP, "UMQ resubmission response" },
|
|
{ LBMC_NHDR_TOPIC_INTEREST, "Topic interest" },
|
|
{ LBMC_NHDR_PATTERN_INTEREST, "Pattern interest" },
|
|
{ LBMC_NHDR_ADVERTISEMENT, "Advertisement" },
|
|
{ LBMC_NHDR_UME_CTXINSTS, "Store context instance" },
|
|
{ LBMC_NHDR_UME_STORENAME, "Store name" },
|
|
{ LBMC_NHDR_UMQ_ULB_RCR, "UMQ ULB RCR" },
|
|
{ LBMC_NHDR_UMQ_LF, "UMQ load factor" },
|
|
{ LBMC_NHDR_CTXINFO, "Context information" },
|
|
{ LBMC_NHDR_UME_PSER, "UME proxy source election" },
|
|
{ LBMC_NHDR_CTXINST, "Context instance" },
|
|
{ LBMC_NHDR_DOMAIN, "Domain" },
|
|
{ LBMC_NHDR_TNWG_CAPABILITIES, "TNWG Capabilities" },
|
|
{ LBMC_NHDR_PATIDX, "Pattern index" },
|
|
{ LBMC_NHDR_UME_CLIENT_LIFETIME, "UME client lifetime" },
|
|
{ LBMC_NHDR_UME_SID, "UME session ID" },
|
|
{ LBMC_NHDR_UMQ_IDX_CMD, "UMQ index command" },
|
|
{ LBMC_NHDR_UMQ_IDX_CMD_RESP, "UMQ index command response" },
|
|
{ LBMC_NHDR_ODOMAIN, "Originating Domain" },
|
|
{ LBMC_NHDR_STREAM, "Stream" },
|
|
{ LBMC_NHDR_TOPIC_MD_INTEREST, "Topic multi-domain interest" },
|
|
{ LBMC_NHDR_PATTERN_MD_INTEREST, "Pattern multi-domain interest" },
|
|
{ LBMC_NHDR_LJI_REQ, "Late Join information request" },
|
|
{ LBMC_NHDR_TNWG_KA, "Gateway peer keepalive" },
|
|
{ LBMC_NHDR_UME_RCV_KEEPALIVE, "UME receiver keepalive" },
|
|
{ LBMC_NHDR_UMQ_CMD, "UMQ command" },
|
|
{ LBMC_NHDR_UMQ_CMD_RESP, "UMQ command response" },
|
|
{ LBMC_NHDR_SRI_REQ, "Source registration information request" },
|
|
{ LBMC_NHDR_UME_STORE_DOMAIN, "Store domain" },
|
|
{ LBMC_NHDR_SRI, "Source registration information" },
|
|
{ LBMC_NHDR_ROUTE_INFO, "Route information" },
|
|
{ LBMC_NHDR_ROUTE_INFO_NEIGHBOR, "Route information neighbor" },
|
|
{ LBMC_NHDR_GATEWAY_NAME, "Gateway name" },
|
|
{ LBMC_NHDR_AUTHENTICATION, "Authentication" },
|
|
{ LBMC_NHDR_HMAC, "HMAC" },
|
|
{ LBMC_NHDR_UMQ_SID, "UMQ session ID" },
|
|
{ LBMC_NHDR_DESTINATION, "Destination" },
|
|
{ LBMC_NHDR_TOPIC_IDX, "Topic index" },
|
|
{ LBMC_NHDR_TOPIC_SOURCE, "Topic source" },
|
|
{ LBMC_NHDR_TOPIC_SOURCE_EXFUNC, "Topic source extended functionality" },
|
|
{ LBMC_NHDR_EXTOPT, "Extended option" },
|
|
{ LBMC_NHDR_UME_STORE_INFO_EXT, "Store extended information" },
|
|
{ LBMC_NHDR_UME_PSRC_ELECTION_TOKEN, "Proxy source election token" },
|
|
{ LBMC_NHDR_NONE, "None" },
|
|
{ LBMC_NHDR_TCP_SID, "TCP session ID" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_req_transport_type[] =
|
|
{
|
|
{ LBMC_REQUEST_TRANSPORT_TCP, "TCP" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_ssf_transport_type[] =
|
|
{
|
|
{ LBMC_CNTL_SSF_INIT_TRANSPORT_TCP, "TCP" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_ssf_creq_mode[] =
|
|
{
|
|
{ LBMC_CNTL_SSF_CREQ_MODE_INCLUDE, "Include" },
|
|
{ LBMC_CNTL_SSF_CREQ_MODE_EXCLUDE, "Exclude" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_ume_preg_resp_error_code[] =
|
|
{
|
|
{ LBMC_UME_PREG_RESP_ERRCODE_ENOERROR, "No error" },
|
|
{ LBMC_UME_PREG_RESP_ERRCODE_ENOPATTERN, "Store has no matching pattern" },
|
|
{ LBMC_UME_PREG_RESP_ERRCODE_ESRCREGID, "Source RegID not found" },
|
|
{ LBMC_UME_PREG_RESP_ERRCODE_EREGID, "RegID is in use by a receiver" },
|
|
{ LBMC_UME_PREG_RESP_ERRCODE_ETOPICNAME, "Topic name does not match previous registration" },
|
|
{ LBMC_UME_PREG_RESP_ERRCODE_EACTIVE, "RegID is in use by a different source" },
|
|
{ LBMC_UME_PREG_RESP_ERRCODE_ECONFIG, "Source and store configuration values are incompatible" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_ume_ack_type[] =
|
|
{
|
|
{ LBMC_UME_ACK_TYPE_CDELV, "CDELV" },
|
|
{ LBMC_UME_ACK_TYPE_STABLE, "Stable" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_ume_ka_type[] =
|
|
{
|
|
{ LBMC_UME_KEEPALIVE_TYPE_SRC, "Source" },
|
|
{ LBMC_UME_KEEPALIVE_TYPE_RCV, "Receiver" },
|
|
{ LBMC_UME_KEEPALIVE_TYPE_STORE, "Store" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const true_false_string lbmc_ume_s_flag =
|
|
{
|
|
"Source registration",
|
|
"Receiver registration"
|
|
};
|
|
|
|
static const true_false_string lbmc_ume_f_flag =
|
|
{
|
|
"Do not forward ACKs",
|
|
"Forward ACKs"
|
|
};
|
|
|
|
static const true_false_string lbmc_ume_o_flag =
|
|
{
|
|
"Old/returning client",
|
|
"New client"
|
|
};
|
|
|
|
static const true_false_string lbmc_ume_error_flag =
|
|
{
|
|
"Error (see code)",
|
|
"No error"
|
|
};
|
|
|
|
static const true_false_string lbmc_ume_n_flag =
|
|
{
|
|
"No cache (store) or no ACKs (receiver)",
|
|
"Cache (store) or ACKs (receiver)"
|
|
};
|
|
|
|
static const true_false_string lbmc_ume_r_flag =
|
|
{
|
|
"Store requests a response",
|
|
"No response requested"
|
|
};
|
|
|
|
static const true_false_string lbmc_ume_t_flag =
|
|
{
|
|
"Store has not seen a TIR for the topic",
|
|
"Store has seen a TIR for the topic"
|
|
};
|
|
|
|
static const value_string lbmc_apphdr_chain_type[] =
|
|
{
|
|
{ LBM_CHAIN_ELEM_CHANNEL_NUMBER, "Channel" },
|
|
{ LBM_CHAIN_ELEM_HF_SQN, "Hot failover sequence number" },
|
|
{ LBM_CHAIN_ELEM_GW_INFO, "Gateway info" },
|
|
{ LBM_CHAIN_ELEM_APPHDR, "Non-chained apphdr" },
|
|
{ LBM_CHAIN_ELEM_USER_DATA, "User data" },
|
|
{ LBM_CHAIN_ELEM_PROPERTIES_LENGTH, "Message properties length" },
|
|
{ LBM_CHAIN_ELEM_NONE, "None" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_reg_type[] =
|
|
{
|
|
{ LBMC_UMQ_REG_CTX_TYPE, "Context" },
|
|
{ LBMC_UMQ_REG_SRC_TYPE, "Source" },
|
|
{ LBMC_UMQ_REG_RCV_TYPE, "Receiver" },
|
|
{ LBMC_UMQ_REG_RCV_DEREG_TYPE, "Receiver deregistration" },
|
|
{ LBMC_UMQ_REG_ULB_RCV_TYPE, "ULB Receiver" },
|
|
{ LBMC_UMQ_REG_ULB_RCV_DEREG_TYPE, "ULB Receiver deregistration" },
|
|
{ LBMC_UMQ_REG_OBSERVER_RCV_TYPE, "Observer receiver registration" },
|
|
{ LBMC_UMQ_REG_OBSERVER_RCV_DEREG_TYPE, "Observer receiver deregistration" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_reg_response_type[] =
|
|
{
|
|
{ LBMC_UMQ_REG_RESP_CTX_TYPE, "Context" },
|
|
{ LBMC_UMQ_REG_RESP_SRC_TYPE, "Source" },
|
|
{ LBMC_UMQ_REG_RESP_RCV_TYPE, "Receiver" },
|
|
{ LBMC_UMQ_REG_RESP_RCV_DEREG_TYPE, "Receiver deregistration" },
|
|
{ LBMC_UMQ_REG_RESP_ERR_TYPE, "Error" },
|
|
{ LBMC_UMQ_REG_RESP_ULB_RCV_TYPE, "ULB Receiver" },
|
|
{ LBMC_UMQ_REG_RESP_ULB_RCV_DEREG_TYPE, "ULB Receiver deregistration" },
|
|
{ LBMC_UMQ_REG_RESP_OBSERVER_RCV_TYPE, "Observer receiver registration" },
|
|
{ LBMC_UMQ_REG_RESP_OBSERVER_RCV_DEREG_TYPE, "Observer receiver deregistration" },
|
|
{ LBMC_UMQ_REG_RESP_CTX_EX_TYPE, "Extended context registration" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_reg_response_error_code[] =
|
|
{
|
|
{ UMQUEUE_CTX_REG_EDUPREGID, "Registration ID in use by different IP/port (ctx)" },
|
|
{ UMQUEUE_SRC_REG_EREGID, "Registration ID not found (src)" },
|
|
{ UMQUEUE_SRC_REG_ENOPATTERN, "Topic not specified in queue configuration (src)" },
|
|
{ UMQUEUE_SRC_REG_ENOTOPICNAME, "No topic name (src)" },
|
|
{ UMQUEUE_RCV_REG_ENOTOPICNAME, "No topic name (rcv)" },
|
|
{ UMQUEUE_RCV_REG_EREGID, "Registration ID not found (rcv)" },
|
|
{ UMQUEUE_RCV_REG_ENOPATTERN, "Topic not specified in queue configuration (rcv)"},
|
|
{ UMQUEUE_RCV_REG_EASSIGNIDINUSE, "Assignment ID already in use (rcv)" },
|
|
{ UMQUEUE_RCV_REG_ERCVTYPEID, "Invalid receiver-type ID (rcv)" },
|
|
{ UMQUEUE_RCV_REG_EINVAL, "Invalid value (rcv)" },
|
|
{ UMQUEUE_REG_EAUTHFAIL, "Authorization failure" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_idx_cmd_response_error_code[] =
|
|
{
|
|
{ UMQUEUE_RCV_IDX_CMD_EREGID, "Receiver/list not found" },
|
|
{ UMQUEUE_RCV_IDX_CMD_EIDXNOTASSIGNED, "Index not assigned" },
|
|
{ UMQUEUE_RCV_IDX_CMD_EIDXINELIGIBLE, "Receiver ineligible for index" },
|
|
{ UMQUEUE_RCV_IDX_CMD_EIDXINUSE, "Index assigned to another receiver" },
|
|
{ UMQUEUE_RCV_IDX_CMD_EIDXALREADYASSIGNED, "Index already assigned to this receiver" },
|
|
{ UMQUEUE_RCV_IDX_CMD_EAUTHFAIL, "Authorization failure" },
|
|
{ LBM_UMQ_ULB_RCV_IDX_CMD_EIDXNOTASSIGNED, "Index not assigned" },
|
|
{ LBM_UMQ_ULB_RCV_IDX_CMD_EIDXINELIGIBLE, "Receiver ineligible for index" },
|
|
{ LBM_UMQ_ULB_RCV_IDX_CMD_EIDXINUSE, "Indes already assigned or unavailable" },
|
|
{ LBM_UMQ_ULB_RCV_IDX_CMD_EIDXALREADYASSIGNED, "Index already assigned to this receiver" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_ack_type[] =
|
|
{
|
|
{ LBMC_UMQ_ACK_STABLE_TYPE, "Stable" },
|
|
{ LBMC_UMQ_ACK_CR_TYPE, "CR" },
|
|
{ LBMC_UMQ_ACK_ULB_CR_TYPE, "ULB CR" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_ka_type[] =
|
|
{
|
|
{ LBMC_UMQ_KA_CTX_TYPE, "Context" },
|
|
{ LBMC_UMQ_KA_SRC_TYPE, "Source" },
|
|
{ LBMC_UMQ_KA_RCV_TYPE, "Receiver" },
|
|
{ LBMC_UMQ_KA_ULB_RCV_TYPE, "ULB Receiver" },
|
|
{ LBMC_UMQ_KA_CTX_RESP_TYPE, "Context response" },
|
|
{ LBMC_UMQ_KA_SRC_RESP_TYPE, "Source response" },
|
|
{ LBMC_UMQ_KA_RCV_RESP_TYPE, "Receiver response" },
|
|
{ LBMC_UMQ_KA_ULB_RCV_RESP_TYPE, "ULB Receiver response" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_rxreq_type[] =
|
|
{
|
|
{ LBMC_UMQ_RXREQ_MR_TYPE, "MR" },
|
|
{ LBMC_UMQ_RXREQ_QRCRR_TYPE, "QRCRR" },
|
|
{ LBMC_UMQ_RXREQ_TRCRR_TYPE, "TRCRR" },
|
|
{ LBMC_UMQ_RXREQ_ULB_MR_TYPE, "ULB MR" },
|
|
{ LBMC_UMQ_RXREQ_ULB_MR_ABORT_TYPE, "ULB MR Abort" },
|
|
{ LBMC_UMQ_RXREQ_ULB_TRCRR_TYPE, "ULB TRCRR" },
|
|
{ LBMC_UMQ_RXREQ_ULB_TRCRR_ABORT_TYPE, "ULB TRCRR Abort" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_resub_response_code[] =
|
|
{
|
|
{ LBMC_UMQ_RESUB_RESP_ENQUEUED_CODE, "Enqueued" },
|
|
{ LBMC_UMQ_RESUB_RESP_CONSUMED_CODE, "Consumed" },
|
|
{ LBMC_UMQ_RESUB_RESP_OUTSTANDING_CODE, "Outstanding" },
|
|
{ LBMC_UMQ_RESUB_RESP_RESUBALLOWED_CODE, "Resubmission allowed" },
|
|
{ LBMC_UMQ_RESUB_RESP_RESUBDONE_CODE, "Resubmission done" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_lf_type[] =
|
|
{
|
|
{ LBMC_UMQ_LF_SRC_TYPE, "Source" },
|
|
{ LBMC_UMQ_LF_RCV_TYPE, "Receiver" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_index_cmd_type[] =
|
|
{
|
|
{ LBMC_UMQ_IDX_CMD_RCV_STOP_IDX_ASSIGN_TYPE, "Stop receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_RCV_START_IDX_ASSIGN_TYPE, "Start receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_ULB_RCV_STOP_IDX_ASSIGN_TYPE, "Stop ULB receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_ULB_RCV_START_IDX_ASSIGN_TYPE, "Start ULB receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_TYPE, "Release receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE, "Release ULB receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_TYPE, "Reserve receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE, "Reserve ULB receiver index assignment" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_index_cmd_response_type[] =
|
|
{
|
|
{ LBMC_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_TYPE, "Stop receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_TYPE, "Start receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_TYPE, "Stop ULB receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_TYPE, "Start ULB receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_TYPE, "Release receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE, "Release ULB receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_TYPE, "Reserve receiver index assignment" },
|
|
{ LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE, "Reserve ULB receiver index assignment" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_cmd_type[] =
|
|
{
|
|
{ LBMC_UMQ_CMD_TYPE_TOPIC_LIST, "Topic list" },
|
|
{ LBMC_UMQ_CMD_TYPE_RCV_MSG_RETRIEVE, "Retrieve message" },
|
|
{ LBMC_UMQ_CMD_TYPE_RCV_MSG_LIST, "List message" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_cmd_response_type[] =
|
|
{
|
|
{ LBMC_UMQ_CMD_RESP_TYPE_CTX_TOPIC_LIST, "Topic list" },
|
|
{ LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_RETRIEVE, "Retrieve message" },
|
|
{ LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_LIST, "List message" },
|
|
{ LBMC_UMQ_CMD_RESP_TYPE_ERROR, "Error" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_cmd_response_error_code[] =
|
|
{
|
|
{ LBMC_UMQ_CMD_RESP_ERROR_AUTHFAIL, "Authentication failed" },
|
|
{ LBMC_UMQ_CMD_RESP_ERROR_NOHMAC, "HMAC failed" },
|
|
{ LBMC_UMQ_CMD_RESP_ERROR_NOAUTHOR, "Not authorized" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_auth_operation_id_type[] =
|
|
{
|
|
{ AUTH_OP_REQ, "Request" },
|
|
{ AUTH_OP_CHALLENGE, "Challenge" },
|
|
{ AUTH_OP_CHALLENGE_RSP, "Challenge response" },
|
|
{ AUTH_OP_RESULT, "Result" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_extopt_subtype[] =
|
|
{
|
|
{ LBMC_EXT_NHDR_CFGOPT, "Configuration option" },
|
|
{ LBMC_EXT_NHDR_MSGSEL, "Message selector" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbm_msg_prop_header_type[] =
|
|
{
|
|
{ LBM_MSG_PROPERTIES_TYPE_NORMAL, "Normal" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbm_msg_prop_magic_type[] =
|
|
{
|
|
{ LBM_MSG_PROPERTIES_MAGIC, "MAGIC" },
|
|
{ LBM_MSG_PROPERTIES_ANTIMAGIC, "ANTI-MAGIC" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbm_msg_prop_field_type[] =
|
|
{
|
|
{ LBM_MSG_PROPERTY_NONE, "None" },
|
|
{ LBM_MSG_PROPERTY_BOOLEAN, "Boolean" },
|
|
{ LBM_MSG_PROPERTY_BYTE, "Byte" },
|
|
{ LBM_MSG_PROPERTY_SHORT, "Short" },
|
|
{ LBM_MSG_PROPERTY_INT, "Integer" },
|
|
{ LBM_MSG_PROPERTY_LONG, "Long" },
|
|
{ LBM_MSG_PROPERTY_FLOAT, "Float" },
|
|
{ LBM_MSG_PROPERTY_DOUBLE, "Double" },
|
|
{ LBM_MSG_PROPERTY_STRING, "String" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_umq_msg_status_code[] =
|
|
{
|
|
{ LBM_UMQ_QUEUE_MSG_STATUS_UNKNOWN, "Unknown" },
|
|
{ LBM_UMQ_QUEUE_MSG_STATUS_UNASSIGNED, "Unassigned" },
|
|
{ LBM_UMQ_QUEUE_MSG_STATUS_ASSIGNED, "Assigned" },
|
|
{ LBM_UMQ_QUEUE_MSG_STATUS_REASSIGNING, "Reassigning" },
|
|
{ LBM_UMQ_QUEUE_MSG_STATUS_CONSUMED, "Consumed" },
|
|
{ LBM_UMQ_QUEUE_MSG_STATUS_COMPLETE, "Complete" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const value_string lbmc_extopt_config_option_scope[] =
|
|
{
|
|
{ LBMC_CNTL_CONFIG_OPT_SCOPE_SOURCE, "Source" },
|
|
{ LBMC_CNTL_CONFIG_OPT_SCOPE_RECEIVER, "Receiver" },
|
|
{ LBMC_CNTL_CONFIG_OPT_SCOPE_CONTEXT, "Context" },
|
|
{ LBMC_CNTL_CONFIG_OPT_SCOPE_WILDCARD_RECEIVER, "Wildcard receiver" },
|
|
{ LBMC_CNTL_CONFIG_OPT_SCOPE_EVENT_QUEUE, "Event queue" },
|
|
{ LBMC_CNTL_CONFIG_OPT_SCOPE_CONNECTION_FACTORY, "Connection factory" },
|
|
{ LBMC_CNTL_CONFIG_OPT_SCOPE_DESTINATION, "Destination" },
|
|
{ LBMC_CNTL_CONFIG_OPT_SCOPE_HFX, "HFX" },
|
|
{ 0x0, NULL }
|
|
};
|
|
|
|
static const true_false_string lbmc_umq_r_flag =
|
|
{
|
|
"Queue requests a response",
|
|
"No response requested"
|
|
};
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Preferences. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
static gboolean lbmc_use_heuristic_subdissectors = TRUE;
|
|
static gboolean lbmc_reassemble_fragments = FALSE;
|
|
static gboolean lbmc_dissect_lbmpdm = FALSE;
|
|
static heur_dissector_list_t lbmc_heuristic_subdissector_list;
|
|
static dissector_handle_t lbmc_data_dissector_handle;
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Handles of all types. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
static int proto_lbmc = -1;
|
|
static int tnw_protocol_handle = -1;
|
|
static int lbmc_uim_tap_handle = -1;
|
|
static int lbmc_stream_tap_handle = -1;
|
|
static int hf_lbmc_tag = -1;
|
|
static int hf_lbmc_topic = -1;
|
|
static int hf_lbmc_version = -1;
|
|
static int hf_lbmc_type = -1;
|
|
static int hf_lbmc_next_hdr = -1;
|
|
static int hf_lbmc_msglen = -1;
|
|
static int hf_lbmc_tidx = -1;
|
|
static int hf_lbmc_sqn = -1;
|
|
static int hf_lbmc_frag = -1;
|
|
static int hf_lbmc_frag_next_hdr = -1;
|
|
static int hf_lbmc_frag_hdr_len = -1;
|
|
static int hf_lbmc_frag_flags = -1;
|
|
static int hf_lbmc_frag_flags_ignore = -1;
|
|
static int hf_lbmc_frag_first_sqn = -1;
|
|
static int hf_lbmc_frag_offset = -1;
|
|
static int hf_lbmc_frag_len = -1;
|
|
static int hf_lbmc_batch = -1;
|
|
static int hf_lbmc_batch_next_hdr = -1;
|
|
static int hf_lbmc_batch_hdr_len = -1;
|
|
static int hf_lbmc_batch_flags = -1;
|
|
static int hf_lbmc_batch_flags_ignore = -1;
|
|
static int hf_lbmc_batch_flags_batch_start = -1;
|
|
static int hf_lbmc_batch_flags_batch_end = -1;
|
|
static int hf_lbmc_tcp_request = -1;
|
|
static int hf_lbmc_tcp_request_next_hdr = -1;
|
|
static int hf_lbmc_tcp_request_hdr_len = -1;
|
|
static int hf_lbmc_tcp_request_flags = -1;
|
|
static int hf_lbmc_tcp_request_flags_ignore = -1;
|
|
static int hf_lbmc_tcp_request_transport = -1;
|
|
static int hf_lbmc_tcp_request_qidx = -1;
|
|
static int hf_lbmc_tcp_request_port = -1;
|
|
static int hf_lbmc_tcp_request_reserved = -1;
|
|
static int hf_lbmc_tcp_request_ipaddr = -1;
|
|
static int hf_lbmc_topicname = -1;
|
|
static int hf_lbmc_topicname_next_hdr = -1;
|
|
static int hf_lbmc_topicname_hdr_len = -1;
|
|
static int hf_lbmc_topicname_flags = -1;
|
|
static int hf_lbmc_topicname_flags_ignore = -1;
|
|
static int hf_lbmc_topicname_topicname = -1;
|
|
static int hf_lbmc_apphdr = -1;
|
|
static int hf_lbmc_apphdr_next_hdr = -1;
|
|
static int hf_lbmc_apphdr_hdr_len = -1;
|
|
static int hf_lbmc_apphdr_code = -1;
|
|
static int hf_lbmc_apphdr_ignore = -1;
|
|
static int hf_lbmc_apphdr_data = -1;
|
|
static int hf_lbmc_apphdr_chain = -1;
|
|
static int hf_lbmc_apphdr_chain_next_hdr = -1;
|
|
static int hf_lbmc_apphdr_chain_hdr_len = -1;
|
|
static int hf_lbmc_apphdr_chain_res = -1;
|
|
static int hf_lbmc_apphdr_chain_first_chain_hdr = -1;
|
|
static int hf_lbmc_apphdr_chain_element = -1;
|
|
static int hf_lbmc_apphdr_chain_element_next_hdr = -1;
|
|
static int hf_lbmc_apphdr_chain_element_hdr_len = -1;
|
|
static int hf_lbmc_apphdr_chain_element_res = -1;
|
|
static int hf_lbmc_apphdr_chain_element_data = -1;
|
|
static int hf_lbmc_apphdr_chain_msgprop = -1;
|
|
static int hf_lbmc_apphdr_chain_msgprop_next_hdr = -1;
|
|
static int hf_lbmc_apphdr_chain_msgprop_hdr_len = -1;
|
|
static int hf_lbmc_apphdr_chain_msgprop_res = -1;
|
|
static int hf_lbmc_apphdr_chain_msgprop_len = -1;
|
|
static int hf_lbmc_umq_msgid = -1;
|
|
static int hf_lbmc_umq_msgid_next_hdr = -1;
|
|
static int hf_lbmc_umq_msgid_hdr_len = -1;
|
|
static int hf_lbmc_umq_msgid_flags = -1;
|
|
static int hf_lbmc_umq_msgid_flags_ignore = -1;
|
|
static int hf_lbmc_umq_msgid_msgid_regid = -1;
|
|
static int hf_lbmc_umq_msgid_msgid_stamp = -1;
|
|
static int hf_lbmc_umq_sqd_rcv = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_next_hdr = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_hdr_len = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_flags = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_flags_ignore = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_flags_r_flag = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_flags_s_flag = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_flags_re_flag = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_flags_eoi_flag = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_flags_boi_flag = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_queue_id = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_queue_ver = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_rcr_idx = -1;
|
|
static int hf_lbmc_umq_sqd_rcv_assign_id = -1;
|
|
static int hf_lbmc_umq_resub = -1;
|
|
static int hf_lbmc_umq_resub_next_hdr = -1;
|
|
static int hf_lbmc_umq_resub_hdr_len = -1;
|
|
static int hf_lbmc_umq_resub_flags = -1;
|
|
static int hf_lbmc_umq_resub_flags_ignore = -1;
|
|
static int hf_lbmc_umq_resub_flags_q_flag = -1;
|
|
static int hf_lbmc_umq_resub_rcr_idx = -1;
|
|
static int hf_lbmc_umq_resub_resp_ip = -1;
|
|
static int hf_lbmc_umq_resub_resp_port = -1;
|
|
static int hf_lbmc_umq_resub_appset_idx = -1;
|
|
static int hf_lbmc_otid = -1;
|
|
static int hf_lbmc_otid_next_hdr = -1;
|
|
static int hf_lbmc_otid_hdr_len = -1;
|
|
static int hf_lbmc_otid_flags = -1;
|
|
static int hf_lbmc_otid_flags_ignore = -1;
|
|
static int hf_lbmc_otid_otid = -1;
|
|
static int hf_lbmc_ctxinst = -1;
|
|
static int hf_lbmc_ctxinst_next_hdr = -1;
|
|
static int hf_lbmc_ctxinst_hdr_len = -1;
|
|
static int hf_lbmc_ctxinst_flags = -1;
|
|
static int hf_lbmc_ctxinst_flags_ignore = -1;
|
|
static int hf_lbmc_ctxinst_ctxinst = -1;
|
|
static int hf_lbmc_ctxinstd = -1;
|
|
static int hf_lbmc_ctxinstr = -1;
|
|
static int hf_lbmc_srcidx = -1;
|
|
static int hf_lbmc_srcidx_next_hdr = -1;
|
|
static int hf_lbmc_srcidx_hdr_len = -1;
|
|
static int hf_lbmc_srcidx_flags = -1;
|
|
static int hf_lbmc_srcidx_flags_ignore = -1;
|
|
static int hf_lbmc_srcidx_srcidx = -1;
|
|
static int hf_lbmc_umq_ulb_msg = -1;
|
|
static int hf_lbmc_umq_ulb_msg_next_hdr = -1;
|
|
static int hf_lbmc_umq_ulb_msg_hdr_len = -1;
|
|
static int hf_lbmc_umq_ulb_msg_flags = -1;
|
|
static int hf_lbmc_umq_ulb_msg_flags_ignore = -1;
|
|
static int hf_lbmc_umq_ulb_msg_flags_a_flag = -1;
|
|
static int hf_lbmc_umq_ulb_msg_flags_r_flag = -1;
|
|
static int hf_lbmc_umq_ulb_msg_queue_id = -1;
|
|
static int hf_lbmc_umq_ulb_msg_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_ulb_msg_assign_id = -1;
|
|
static int hf_lbmc_umq_ulb_msg_appset_idx = -1;
|
|
static int hf_lbmc_umq_ulb_msg_num_ras = -1;
|
|
static int hf_lbmc_ssf_init = -1;
|
|
static int hf_lbmc_ssf_init_next_hdr = -1;
|
|
static int hf_lbmc_ssf_init_hdr_len = -1;
|
|
static int hf_lbmc_ssf_init_transport = -1;
|
|
static int hf_lbmc_ssf_init_flags = -1;
|
|
static int hf_lbmc_ssf_init_flags_ignore = -1;
|
|
static int hf_lbmc_ssf_init_flags_default_inclusions = -1;
|
|
static int hf_lbmc_ssf_init_flags_default_exclusions = -1;
|
|
static int hf_lbmc_ssf_init_transport_idx = -1;
|
|
static int hf_lbmc_ssf_init_client_idx = -1;
|
|
static int hf_lbmc_ssf_init_ssf_port = -1;
|
|
static int hf_lbmc_ssf_init_res = -1;
|
|
static int hf_lbmc_ssf_init_ssf_ip = -1;
|
|
static int hf_lbmc_ssf_creq = -1;
|
|
static int hf_lbmc_ssf_creq_next_hdr = -1;
|
|
static int hf_lbmc_ssf_creq_hdr_len = -1;
|
|
static int hf_lbmc_ssf_creq_flags = -1;
|
|
static int hf_lbmc_ssf_creq_flags_ignore = -1;
|
|
static int hf_lbmc_ssf_creq_mode = -1;
|
|
static int hf_lbmc_ssf_creq_transport_idx = -1;
|
|
static int hf_lbmc_ssf_creq_topic_idx = -1;
|
|
static int hf_lbmc_ssf_creq_client_idx = -1;
|
|
static int hf_lbmc_ume_preg = -1;
|
|
static int hf_lbmc_ume_preg_next_hdr = -1;
|
|
static int hf_lbmc_ume_preg_hdr_len = -1;
|
|
static int hf_lbmc_ume_preg_flags = -1;
|
|
static int hf_lbmc_ume_preg_flags_ignore = -1;
|
|
static int hf_lbmc_ume_preg_flags_f_flag = -1;
|
|
static int hf_lbmc_ume_preg_flags_p_flag = -1;
|
|
static int hf_lbmc_ume_preg_flags_w_flag = -1;
|
|
static int hf_lbmc_ume_preg_flags_d_flag = -1;
|
|
static int hf_lbmc_ume_preg_s_flag = -1;
|
|
static int hf_lbmc_ume_preg_marker = -1;
|
|
static int hf_lbmc_ume_preg_reg_id = -1;
|
|
static int hf_lbmc_ume_preg_transport_idx = -1;
|
|
static int hf_lbmc_ume_preg_topic_idx = -1;
|
|
static int hf_lbmc_ume_preg_src_reg_id = -1;
|
|
static int hf_lbmc_ume_preg_resp_port = -1;
|
|
static int hf_lbmc_ume_preg_res2 = -1;
|
|
static int hf_lbmc_ume_preg_resp_ip = -1;
|
|
static int hf_lbmc_ume_preg_resp = -1;
|
|
static int hf_lbmc_ume_preg_resp_next_hdr = -1;
|
|
static int hf_lbmc_ume_preg_resp_hdr_len = -1;
|
|
static int hf_lbmc_ume_preg_resp_code = -1;
|
|
static int hf_lbmc_ume_preg_resp_code_ignore = -1;
|
|
static int hf_lbmc_ume_preg_resp_code_e_flag = -1;
|
|
static int hf_lbmc_ume_preg_resp_code_o_flag = -1;
|
|
static int hf_lbmc_ume_preg_resp_code_n_flag = -1;
|
|
static int hf_lbmc_ume_preg_resp_code_w_flag = -1;
|
|
static int hf_lbmc_ume_preg_resp_code_d_flag = -1;
|
|
static int hf_lbmc_ume_preg_resp_code_code = -1;
|
|
static int hf_lbmc_ume_preg_resp_s_flag = -1;
|
|
static int hf_lbmc_ume_preg_resp_marker = -1;
|
|
static int hf_lbmc_ume_preg_resp_reg_id = -1;
|
|
static int hf_lbmc_ume_preg_resp_transport_idx = -1;
|
|
static int hf_lbmc_ume_preg_resp_topic_idx = -1;
|
|
static int hf_lbmc_ume_preg_resp_low_seqnum = -1;
|
|
static int hf_lbmc_ume_preg_resp_high_seqnum = -1;
|
|
static int hf_lbmc_ume_ack = -1;
|
|
static int hf_lbmc_ume_ack_next_hdr = -1;
|
|
static int hf_lbmc_ume_ack_hdr_len = -1;
|
|
static int hf_lbmc_ume_ack_flags = -1;
|
|
static int hf_lbmc_ume_ack_flags_ignore = -1;
|
|
static int hf_lbmc_ume_ack_flags_o_flag = -1;
|
|
static int hf_lbmc_ume_ack_flags_f_flag = -1;
|
|
static int hf_lbmc_ume_ack_flags_u_flag = -1;
|
|
static int hf_lbmc_ume_ack_flags_e_flag = -1;
|
|
static int hf_lbmc_ume_ack_type = -1;
|
|
static int hf_lbmc_ume_ack_transport_idx = -1;
|
|
static int hf_lbmc_ume_ack_id_2 = -1;
|
|
static int hf_lbmc_ume_ack_rcv_reg_id = -1;
|
|
static int hf_lbmc_ume_ack_seqnum = -1;
|
|
static int hf_lbmc_ume_rxreq = -1;
|
|
static int hf_lbmc_ume_rxreq_next_hdr = -1;
|
|
static int hf_lbmc_ume_rxreq_hdr_len = -1;
|
|
static int hf_lbmc_ume_rxreq_flags = -1;
|
|
static int hf_lbmc_ume_rxreq_flags_ignore = -1;
|
|
static int hf_lbmc_ume_rxreq_flags_tsni_req = -1;
|
|
static int hf_lbmc_ume_rxreq_marker = -1;
|
|
static int hf_lbmc_ume_rxreq_request_idx = -1;
|
|
static int hf_lbmc_ume_rxreq_transport_idx = -1;
|
|
static int hf_lbmc_ume_rxreq_id_2 = -1;
|
|
static int hf_lbmc_ume_rxreq_seqnum = -1;
|
|
static int hf_lbmc_ume_rxreq_rx_port = -1;
|
|
static int hf_lbmc_ume_rxreq_res = -1;
|
|
static int hf_lbmc_ume_rxreq_rx_ip = -1;
|
|
static int hf_lbmc_ume_keepalive = -1;
|
|
static int hf_lbmc_ume_keepalive_next_hdr = -1;
|
|
static int hf_lbmc_ume_keepalive_hdr_len = -1;
|
|
static int hf_lbmc_ume_keepalive_flags = -1;
|
|
static int hf_lbmc_ume_keepalive_flags_ignore = -1;
|
|
static int hf_lbmc_ume_keepalive_flags_r_flag = -1;
|
|
static int hf_lbmc_ume_keepalive_flags_t_flag = -1;
|
|
static int hf_lbmc_ume_keepalive_type = -1;
|
|
static int hf_lbmc_ume_keepalive_transport_idx = -1;
|
|
static int hf_lbmc_ume_keepalive_topic_idx = -1;
|
|
static int hf_lbmc_ume_keepalive_reg_id = -1;
|
|
static int hf_lbmc_ume_storeid = -1;
|
|
static int hf_lbmc_ume_storeid_next_hdr = -1;
|
|
static int hf_lbmc_ume_storeid_hdr_len = -1;
|
|
static int hf_lbmc_ume_storeid_ignore = -1;
|
|
static int hf_lbmc_ume_storeid_store_id = -1;
|
|
static int hf_lbmc_ume_ranged_ack = -1;
|
|
static int hf_lbmc_ume_ranged_ack_next_hdr = -1;
|
|
static int hf_lbmc_ume_ranged_ack_hdr_len = -1;
|
|
static int hf_lbmc_ume_ranged_ack_flags = -1;
|
|
static int hf_lbmc_ume_ranged_ack_flags_ignore = -1;
|
|
static int hf_lbmc_ume_ranged_ack_first_seqnum = -1;
|
|
static int hf_lbmc_ume_ranged_ack_last_seqnum = -1;
|
|
static int hf_lbmc_ume_ack_id = -1;
|
|
static int hf_lbmc_ume_ack_id_next_hdr = -1;
|
|
static int hf_lbmc_ume_ack_id_hdr_len = -1;
|
|
static int hf_lbmc_ume_ack_id_flags = -1;
|
|
static int hf_lbmc_ume_ack_id_flags_ignore = -1;
|
|
static int hf_lbmc_ume_ack_id_id = -1;
|
|
static int hf_lbmc_ume_capability = -1;
|
|
static int hf_lbmc_ume_capability_next_hdr = -1;
|
|
static int hf_lbmc_ume_capability_hdr_len = -1;
|
|
static int hf_lbmc_ume_capability_flags = -1;
|
|
static int hf_lbmc_ume_capability_flags_ignore = -1;
|
|
static int hf_lbmc_ume_capability_flags_qc_flag = -1;
|
|
static int hf_lbmc_ume_capability_flags_client_lifetime_flag = -1;
|
|
static int hf_lbmc_ume_proxy_src = -1;
|
|
static int hf_lbmc_ume_proxy_src_next_hdr = -1;
|
|
static int hf_lbmc_ume_proxy_src_hdr_len = -1;
|
|
static int hf_lbmc_ume_proxy_src_flags = -1;
|
|
static int hf_lbmc_ume_proxy_src_flags_ignore = -1;
|
|
static int hf_lbmc_ume_proxy_src_flags_enable = -1;
|
|
static int hf_lbmc_ume_proxy_src_flags_compatibility = -1;
|
|
static int hf_lbmc_ume_store_group = -1;
|
|
static int hf_lbmc_ume_store_group_next_hdr = -1;
|
|
static int hf_lbmc_ume_store_group_hdr_len = -1;
|
|
static int hf_lbmc_ume_store_group_flags = -1;
|
|
static int hf_lbmc_ume_store_group_flags_ignore = -1;
|
|
static int hf_lbmc_ume_store_group_grp_idx = -1;
|
|
static int hf_lbmc_ume_store_group_grp_sz = -1;
|
|
static int hf_lbmc_ume_store_group_res1 = -1;
|
|
static int hf_lbmc_ume_store = -1;
|
|
static int hf_lbmc_ume_store_next_hdr = -1;
|
|
static int hf_lbmc_ume_store_hdr_len = -1;
|
|
static int hf_lbmc_ume_store_flags = -1;
|
|
static int hf_lbmc_ume_store_flags_ignore = -1;
|
|
static int hf_lbmc_ume_store_grp_idx = -1;
|
|
static int hf_lbmc_ume_store_store_tcp_port = -1;
|
|
static int hf_lbmc_ume_store_store_idx = -1;
|
|
static int hf_lbmc_ume_store_store_ip_addr = -1;
|
|
static int hf_lbmc_ume_store_src_reg_id = -1;
|
|
static int hf_lbmc_ume_lj_info = -1;
|
|
static int hf_lbmc_ume_lj_info_next_hdr = -1;
|
|
static int hf_lbmc_ume_lj_info_hdr_len = -1;
|
|
static int hf_lbmc_ume_lj_info_flags = -1;
|
|
static int hf_lbmc_ume_lj_info_flags_ignore = -1;
|
|
static int hf_lbmc_ume_lj_info_low_seqnum = -1;
|
|
static int hf_lbmc_ume_lj_info_high_seqnum = -1;
|
|
static int hf_lbmc_ume_lj_info_qidx = -1;
|
|
static int hf_lbmc_tsni = -1;
|
|
static int hf_lbmc_tsni_next_hdr = -1;
|
|
static int hf_lbmc_tsni_hdr_len = -1;
|
|
static int hf_lbmc_tsni_ignore = -1;
|
|
static int hf_lbmc_tsni_num_recs = -1;
|
|
static int hf_lbmc_tsni_rec = -1;
|
|
static int hf_lbmc_tsni_rec_tidx = -1;
|
|
static int hf_lbmc_tsni_rec_sqn = -1;
|
|
static int hf_lbmc_umq_reg = -1;
|
|
static int hf_lbmc_umq_reg_next_hdr = -1;
|
|
static int hf_lbmc_umq_reg_hdr_len = -1;
|
|
static int hf_lbmc_umq_reg_flags = -1;
|
|
static int hf_lbmc_umq_reg_flags_ignore = -1;
|
|
static int hf_lbmc_umq_reg_flags_r_flag = -1;
|
|
static int hf_lbmc_umq_reg_flags_t_flag = -1;
|
|
static int hf_lbmc_umq_reg_flags_i_flag = -1;
|
|
static int hf_lbmc_umq_reg_flags_msg_sel_flag = -1;
|
|
static int hf_lbmc_umq_reg_reg_type = -1;
|
|
static int hf_lbmc_umq_reg_queue_id = -1;
|
|
static int hf_lbmc_umq_reg_cmd_id = -1;
|
|
static int hf_lbmc_umq_reg_inst_idx = -1;
|
|
static int hf_lbmc_umq_reg_regid = -1;
|
|
static int hf_lbmc_umq_reg_reg_ctx = -1;
|
|
static int hf_lbmc_umq_reg_reg_ctx_port = -1;
|
|
static int hf_lbmc_umq_reg_reg_ctx_reserved = -1;
|
|
static int hf_lbmc_umq_reg_reg_ctx_ip = -1;
|
|
static int hf_lbmc_umq_reg_reg_ctx_capabilities = -1;
|
|
static int hf_lbmc_umq_reg_reg_src = -1;
|
|
static int hf_lbmc_umq_reg_reg_src_transport_idx = -1;
|
|
static int hf_lbmc_umq_reg_reg_src_topic_idx = -1;
|
|
static int hf_lbmc_umq_reg_reg_rcv = -1;
|
|
static int hf_lbmc_umq_reg_reg_rcv_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_reg_rcv_rcv_type_id = -1;
|
|
static int hf_lbmc_umq_reg_reg_rcv_last_topic_rcr_tsp = -1;
|
|
static int hf_lbmc_umq_reg_rcv_dereg = -1;
|
|
static int hf_lbmc_umq_reg_rcv_dereg_rcr_idx = -1;
|
|
static int hf_lbmc_umq_reg_rcv_dereg_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_reg_ulb_rcv = -1;
|
|
static int hf_lbmc_umq_reg_reg_ulb_rcv_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_reg_reg_ulb_rcv_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_reg_ulb_rcv_rcv_type_id = -1;
|
|
static int hf_lbmc_umq_reg_reg_ulb_rcv_port = -1;
|
|
static int hf_lbmc_umq_reg_reg_ulb_rcv_reserved = -1;
|
|
static int hf_lbmc_umq_reg_reg_ulb_rcv_ip = -1;
|
|
static int hf_lbmc_umq_reg_reg_ulb_rcv_capabilities = -1;
|
|
static int hf_lbmc_umq_reg_ulb_rcv_dereg = -1;
|
|
static int hf_lbmc_umq_reg_ulb_rcv_dereg_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_reg_ulb_rcv_dereg_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_reg_observer_rcv = -1;
|
|
static int hf_lbmc_umq_reg_reg_observer_rcv_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_reg_observer_rcv_rcv_type_id = -1;
|
|
static int hf_lbmc_umq_reg_reg_observer_rcv_last_topic_rcr_tsp = -1;
|
|
static int hf_lbmc_umq_reg_observer_rcv_dereg = -1;
|
|
static int hf_lbmc_umq_reg_observer_rcv_dereg_rcr_idx = -1;
|
|
static int hf_lbmc_umq_reg_observer_rcv_dereg_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_resp = -1;
|
|
static int hf_lbmc_umq_reg_resp_next_hdr = -1;
|
|
static int hf_lbmc_umq_reg_resp_hdr_len = -1;
|
|
static int hf_lbmc_umq_reg_resp_flags = -1;
|
|
static int hf_lbmc_umq_reg_resp_flags_ignore = -1;
|
|
static int hf_lbmc_umq_reg_resp_flags_r_flag = -1;
|
|
static int hf_lbmc_umq_reg_resp_flags_l_flag = -1;
|
|
static int hf_lbmc_umq_reg_resp_flags_src_s_flag = -1;
|
|
static int hf_lbmc_umq_reg_resp_flags_src_d_flag = -1;
|
|
static int hf_lbmc_umq_reg_resp_resp_type = -1;
|
|
static int hf_lbmc_umq_reg_resp_queue_id = -1;
|
|
static int hf_lbmc_umq_reg_resp_cmd_id = -1;
|
|
static int hf_lbmc_umq_reg_resp_inst_idx = -1;
|
|
static int hf_lbmc_umq_reg_resp_regid = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ctx = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ctx_capabilities = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ctx_ex = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ctx_ex_capabilities = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ctx_ex_reserved = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ctx_ex_flags = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ctx_ex_flags_firstmsg = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ctx_ex_stamp = -1;
|
|
static int hf_lbmc_umq_reg_resp_err = -1;
|
|
static int hf_lbmc_umq_reg_resp_err_reserved = -1;
|
|
static int hf_lbmc_umq_reg_resp_err_code = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_src = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_src_rcr_idx = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_rcv = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_rcv_rcr_idx = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_rcv_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_rcv_appset_idx = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_rcv_reserved = -1;
|
|
static int hf_lbmc_umq_reg_resp_rcv_dereg = -1;
|
|
static int hf_lbmc_umq_reg_resp_rcv_dereg_rcr_idx = -1;
|
|
static int hf_lbmc_umq_reg_resp_rcv_dereg_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv_appset_idx = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv_reserved = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv_capabilities = -1;
|
|
static int hf_lbmc_umq_reg_resp_ulb_rcv_dereg = -1;
|
|
static int hf_lbmc_umq_reg_resp_ulb_rcv_dereg_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_reg_resp_ulb_rcv_dereg_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_observer_rcv = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_observer_rcv_rcr_idx = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_observer_rcv_assign_id = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_observer_rcv_appset_idx = -1;
|
|
static int hf_lbmc_umq_reg_resp_reg_observer_rcv_reserved = -1;
|
|
static int hf_lbmc_umq_reg_resp_observer_rcv_dereg = -1;
|
|
static int hf_lbmc_umq_reg_resp_observer_rcv_dereg_rcr_idx = -1;
|
|
static int hf_lbmc_umq_reg_resp_observer_rcv_dereg_assign_id = -1;
|
|
static int hf_lbmc_umq_ack = -1;
|
|
static int hf_lbmc_umq_ack_next_hdr = -1;
|
|
static int hf_lbmc_umq_ack_hdr_len = -1;
|
|
static int hf_lbmc_umq_ack_msgs = -1;
|
|
static int hf_lbmc_umq_ack_msgs_ignore = -1;
|
|
static int hf_lbmc_umq_ack_msgs_t_flag = -1;
|
|
static int hf_lbmc_umq_ack_msgs_d_flag = -1;
|
|
static int hf_lbmc_umq_ack_numids = -1;
|
|
static int hf_lbmc_umq_ack_ack_type = -1;
|
|
static int hf_lbmc_umq_ack_msgid = -1;
|
|
static int hf_lbmc_umq_ack_msgid_regid = -1;
|
|
static int hf_lbmc_umq_ack_msgid_stamp = -1;
|
|
static int hf_lbmc_umq_ack_stable = -1;
|
|
static int hf_lbmc_umq_ack_stable_queue_id = -1;
|
|
static int hf_lbmc_umq_ack_stable_inst_idx = -1;
|
|
static int hf_lbmc_umq_ack_stable_reserved = -1;
|
|
static int hf_lbmc_umq_ack_cr = -1;
|
|
static int hf_lbmc_umq_ack_cr_rcr_idx = -1;
|
|
static int hf_lbmc_umq_ack_cr_assign_id = -1;
|
|
static int hf_lbmc_umq_ack_cr_appset_idx = -1;
|
|
static int hf_lbmc_umq_ack_cr_reserved = -1;
|
|
static int hf_lbmc_umq_ack_ulb_cr = -1;
|
|
static int hf_lbmc_umq_ack_ulb_cr_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_ack_ulb_cr_assign_id = -1;
|
|
static int hf_lbmc_umq_ack_ulb_cr_appset_idx = -1;
|
|
static int hf_lbmc_umq_ack_ulb_cr_reserved = -1;
|
|
static int hf_lbmc_umq_rcr = -1;
|
|
static int hf_lbmc_umq_rcr_next_hdr = -1;
|
|
static int hf_lbmc_umq_rcr_hdr_len = -1;
|
|
static int hf_lbmc_umq_rcr_flags = -1;
|
|
static int hf_lbmc_umq_rcr_flags_ignore = -1;
|
|
static int hf_lbmc_umq_rcr_flags_r_flag = -1;
|
|
static int hf_lbmc_umq_rcr_flags_d_flag = -1;
|
|
static int hf_lbmc_umq_rcr_flags_s_flag = -1;
|
|
static int hf_lbmc_umq_rcr_flags_eoi_flag = -1;
|
|
static int hf_lbmc_umq_rcr_flags_boi_flag = -1;
|
|
static int hf_lbmc_umq_rcr_queue_id = -1;
|
|
static int hf_lbmc_umq_rcr_rcr_idx = -1;
|
|
static int hf_lbmc_umq_rcr_msgid_regid = -1;
|
|
static int hf_lbmc_umq_rcr_msgid_stamp = -1;
|
|
static int hf_lbmc_umq_rcr_topic_tsp = -1;
|
|
static int hf_lbmc_umq_rcr_q_tsp = -1;
|
|
static int hf_lbmc_umq_rcr_assign_id = -1;
|
|
static int hf_lbmc_umq_rcr_appset_idx = -1;
|
|
static int hf_lbmc_umq_rcr_num_ras = -1;
|
|
static int hf_lbmc_umq_rcr_queue_ver = -1;
|
|
static int hf_lbmc_cntl_umq_ka = -1;
|
|
static int hf_lbmc_cntl_umq_ka_next_hdr = -1;
|
|
static int hf_lbmc_cntl_umq_ka_hdr_len = -1;
|
|
static int hf_lbmc_cntl_umq_ka_flags = -1;
|
|
static int hf_lbmc_cntl_umq_ka_flags_ignore = -1;
|
|
static int hf_lbmc_cntl_umq_ka_flags_r_flag = -1;
|
|
static int hf_lbmc_cntl_umq_ka_ka_type = -1;
|
|
static int hf_lbmc_cntl_umq_ka_queue_id = -1;
|
|
static int hf_lbmc_cntl_umq_ka_regid = -1;
|
|
static int hf_lbmc_cntl_umq_ka_inst_idx = -1;
|
|
static int hf_lbmc_cntl_umq_ka_reserved = -1;
|
|
static int hf_lbmc_umq_ka_src = -1;
|
|
static int hf_lbmc_umq_ka_src_transport_idx = -1;
|
|
static int hf_lbmc_umq_ka_src_topic_idx = -1;
|
|
static int hf_lbmc_umq_ka_rcv = -1;
|
|
static int hf_lbmc_umq_ka_rcv_rcr_idx = -1;
|
|
static int hf_lbmc_umq_ka_rcv_assign_id = -1;
|
|
static int hf_lbmc_umq_ka_ulb_rcv = -1;
|
|
static int hf_lbmc_umq_ka_ulb_rcv_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_ka_ulb_rcv_assign_id = -1;
|
|
static int hf_lbmc_umq_ka_ulb_rcv_resp = -1;
|
|
static int hf_lbmc_umq_ka_ulb_rcv_resp_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_ka_ulb_rcv_resp_assign_id = -1;
|
|
static int hf_lbmc_umq_ka_ulb_rcv_resp_appset_idx = -1;
|
|
static int hf_lbmc_umq_ka_ulb_rcv_resp_reserved = -1;
|
|
static int hf_lbmc_umq_rxreq = -1;
|
|
static int hf_lbmc_umq_rxreq_next_hdr = -1;
|
|
static int hf_lbmc_umq_rxreq_hdr_len = -1;
|
|
static int hf_lbmc_umq_rxreq_flags = -1;
|
|
static int hf_lbmc_umq_rxreq_flags_ignore = -1;
|
|
static int hf_lbmc_umq_rxreq_flags_r_flag = -1;
|
|
static int hf_lbmc_umq_rxreq_rxreq_type = -1;
|
|
static int hf_lbmc_umq_rxreq_regid_resp = -1;
|
|
static int hf_lbmc_umq_rxreq_regid_resp_regid = -1;
|
|
static int hf_lbmc_umq_rxreq_addr_resp = -1;
|
|
static int hf_lbmc_umq_rxreq_addr_resp_ip = -1;
|
|
static int hf_lbmc_umq_rxreq_addr_resp_port = -1;
|
|
static int hf_lbmc_umq_rxreq_addr_resp_reserved = -1;
|
|
static int hf_lbmc_umq_rxreq_mr = -1;
|
|
static int hf_lbmc_umq_rxreq_mr_assign_id = -1;
|
|
static int hf_lbmc_umq_rxreq_mr_msgid_regid = -1;
|
|
static int hf_lbmc_umq_rxreq_mr_msgid_stamp = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_assign_id = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_appset_idx = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_reserved = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_msgid_regid = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_msgid_stamp = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_abort = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_abort_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_abort_assign_id = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_abort_msgid_regid = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_mr_abort_msgid_stamp = -1;
|
|
static int hf_lbmc_umq_rxreq_qrcrr = -1;
|
|
static int hf_lbmc_umq_rxreq_qrcrr_tsp = -1;
|
|
static int hf_lbmc_umq_rxreq_trcrr = -1;
|
|
static int hf_lbmc_umq_rxreq_trcrr_rcr_idx = -1;
|
|
static int hf_lbmc_umq_rxreq_trcrr_tsp = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_trcrr = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_trcrr_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_trcrr_assign_id = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_trcrr_tsp = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_trcrr_abort = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_trcrr_abort_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_trcrr_abort_assign_id = -1;
|
|
static int hf_lbmc_umq_rxreq_ulb_trcrr_abort_tsp = -1;
|
|
static int hf_lbmc_umq_qmgmt = -1;
|
|
static int hf_lbmc_umq_qmgmt_next_hdr = -1;
|
|
static int hf_lbmc_umq_qmgmt_hdr_len = -1;
|
|
static int hf_lbmc_umq_resub_req = -1;
|
|
static int hf_lbmc_umq_resub_req_next_hdr = -1;
|
|
static int hf_lbmc_umq_resub_req_hdr_len = -1;
|
|
static int hf_lbmc_umq_resub_req_flags = -1;
|
|
static int hf_lbmc_umq_resub_req_flags_ignore = -1;
|
|
static int hf_lbmc_umq_resub_req_msgid_regid = -1;
|
|
static int hf_lbmc_umq_resub_req_msgid_stamp = -1;
|
|
static int hf_lbmc_umq_resub_req_rcr_idx = -1;
|
|
static int hf_lbmc_umq_resub_req_resp_ip = -1;
|
|
static int hf_lbmc_umq_resub_req_resp_port = -1;
|
|
static int hf_lbmc_umq_resub_req_appset_idx = -1;
|
|
static int hf_lbmc_umq_resub_resp = -1;
|
|
static int hf_lbmc_umq_resub_resp_next_hdr = -1;
|
|
static int hf_lbmc_umq_resub_resp_hdr_len = -1;
|
|
static int hf_lbmc_umq_resub_resp_flags = -1;
|
|
static int hf_lbmc_umq_resub_resp_flags_ignore = -1;
|
|
static int hf_lbmc_umq_resub_resp_code = -1;
|
|
static int hf_lbmc_umq_resub_resp_msgid_regid = -1;
|
|
static int hf_lbmc_umq_resub_resp_msgid_stamp = -1;
|
|
static int hf_lbmc_umq_resub_resp_rcr_idx = -1;
|
|
static int hf_lbmc_umq_resub_resp_reserved = -1;
|
|
static int hf_lbmc_umq_resub_resp_appset_idx = -1;
|
|
static int hf_lbmc_topic_interest = -1;
|
|
static int hf_lbmc_topic_interest_next_hdr = -1;
|
|
static int hf_lbmc_topic_interest_hdr_len = -1;
|
|
static int hf_lbmc_topic_interest_flags = -1;
|
|
static int hf_lbmc_topic_interest_flags_ignore = -1;
|
|
static int hf_lbmc_topic_interest_flags_cancel = -1;
|
|
static int hf_lbmc_topic_interest_flags_refresh = -1;
|
|
static int hf_lbmc_topic_interest_domain_id = -1;
|
|
static int hf_lbmc_pattern_interest = -1;
|
|
static int hf_lbmc_pattern_interest_next_hdr = -1;
|
|
static int hf_lbmc_pattern_interest_hdr_len = -1;
|
|
static int hf_lbmc_pattern_interest_flags = -1;
|
|
static int hf_lbmc_pattern_interest_flags_ignore = -1;
|
|
static int hf_lbmc_pattern_interest_flags_cancel = -1;
|
|
static int hf_lbmc_pattern_interest_flags_refresh = -1;
|
|
static int hf_lbmc_pattern_interest_type = -1;
|
|
static int hf_lbmc_pattern_interest_domain_id = -1;
|
|
static int hf_lbmc_pattern_interest_index = -1;
|
|
static int hf_lbmc_advertisement = -1;
|
|
static int hf_lbmc_advertisement_next_hdr = -1;
|
|
static int hf_lbmc_advertisement_hdr_len = -1;
|
|
static int hf_lbmc_advertisement_flags = -1;
|
|
static int hf_lbmc_advertisement_flags_ignore = -1;
|
|
static int hf_lbmc_advertisement_flags_eos = -1;
|
|
static int hf_lbmc_advertisement_flags_pattern = -1;
|
|
static int hf_lbmc_advertisement_flags_change = -1;
|
|
static int hf_lbmc_advertisement_flags_ctxinst = -1;
|
|
static int hf_lbmc_advertisement_hop_count = -1;
|
|
static int hf_lbmc_advertisement_ad_flags = -1;
|
|
static int hf_lbmc_advertisement_ad_flags_lj = -1;
|
|
static int hf_lbmc_advertisement_ad_flags_ume = -1;
|
|
static int hf_lbmc_advertisement_ad_flags_acktosrc = -1;
|
|
static int hf_lbmc_advertisement_ad_flags_queue = -1;
|
|
static int hf_lbmc_advertisement_ad_flags_ulb = -1;
|
|
static int hf_lbmc_advertisement_cost = -1;
|
|
static int hf_lbmc_advertisement_transport_idx = -1;
|
|
static int hf_lbmc_advertisement_topic_idx = -1;
|
|
static int hf_lbmc_advertisement_low_seqno = -1;
|
|
static int hf_lbmc_advertisement_high_seqno = -1;
|
|
static int hf_lbmc_advertisement_domain_id = -1;
|
|
static int hf_lbmc_advertisement_pat_idx = -1;
|
|
static int hf_lbmc_advertisement_ctxinst = -1;
|
|
static int hf_lbmc_ume_storename = -1;
|
|
static int hf_lbmc_ume_storename_next_hdr = -1;
|
|
static int hf_lbmc_ume_storename_hdr_len = -1;
|
|
static int hf_lbmc_ume_storename_flags = -1;
|
|
static int hf_lbmc_ume_storename_flags_ignore = -1;
|
|
static int hf_lbmc_ume_storename_store = -1;
|
|
static int hf_lbmc_umq_ulb_rcr = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_next_hdr = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_hdr_len = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_flags = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_flags_ignore = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_flags_r_flag = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_flags_d_flag = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_flags_eoi_flag = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_flags_boi_flag = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_queue_id = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_ulb_src_id = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_msgid_regid = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_msgid_stamp = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_topic_tsp = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_assign_id = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_appset_idx = -1;
|
|
static int hf_lbmc_umq_ulb_rcr_num_ras = -1;
|
|
static int hf_lbmc_umq_lf = -1;
|
|
static int hf_lbmc_umq_lf_next_hdr = -1;
|
|
static int hf_lbmc_umq_lf_hdr_len = -1;
|
|
static int hf_lbmc_umq_lf_flags = -1;
|
|
static int hf_lbmc_umq_lf_flags_ignore = -1;
|
|
static int hf_lbmc_umq_lf_type = -1;
|
|
static int hf_lbmc_umq_lf_num_srcs = -1;
|
|
static int hf_lbmc_umq_lf_lf = -1;
|
|
static int hf_lbmc_ctxinfo = -1;
|
|
static int hf_lbmc_ctxinfo_next_hdr = -1;
|
|
static int hf_lbmc_ctxinfo_hdr_len = -1;
|
|
static int hf_lbmc_ctxinfo_flags = -1;
|
|
static int hf_lbmc_ctxinfo_flags_ignore = -1;
|
|
static int hf_lbmc_ctxinfo_flags_query = -1;
|
|
static int hf_lbmc_ctxinfo_flags_addr = -1;
|
|
static int hf_lbmc_ctxinfo_flags_ctxinst = -1;
|
|
static int hf_lbmc_ctxinfo_flags_name = -1;
|
|
static int hf_lbmc_ctxinfo_flags_tnwgsrc = -1;
|
|
static int hf_lbmc_ctxinfo_flags_tnwgrcv = -1;
|
|
static int hf_lbmc_ctxinfo_flags_proxy = -1;
|
|
static int hf_lbmc_ctxinfo_reserved = -1;
|
|
static int hf_lbmc_ctxinfo_hop_count = -1;
|
|
static int hf_lbmc_ctxinfo_port = -1;
|
|
static int hf_lbmc_ctxinfo_addr = -1;
|
|
static int hf_lbmc_ctxinfo_domain_id = -1;
|
|
static int hf_lbmc_ctxinfo_ctxinst = -1;
|
|
static int hf_lbmc_ctxinfo_name = -1;
|
|
static int hf_lbmc_ume_pser = -1;
|
|
static int hf_lbmc_ume_pser_next_hdr = -1;
|
|
static int hf_lbmc_ume_pser_hdr_len = -1;
|
|
static int hf_lbmc_ume_pser_flags = -1;
|
|
static int hf_lbmc_ume_pser_flags_ignore = -1;
|
|
static int hf_lbmc_ume_pser_flags_source_ctxinst = -1;
|
|
static int hf_lbmc_ume_pser_flags_store_ctxinst = -1;
|
|
static int hf_lbmc_ume_pser_flags_reelect = -1;
|
|
static int hf_lbmc_ume_pser_source_ip = -1;
|
|
static int hf_lbmc_ume_pser_store_ip = -1;
|
|
static int hf_lbmc_ume_pser_transport_idx = -1;
|
|
static int hf_lbmc_ume_pser_topic_idx = -1;
|
|
static int hf_lbmc_ume_pser_source_port = -1;
|
|
static int hf_lbmc_ume_pser_store_port = -1;
|
|
static int hf_lbmc_ume_pser_source_ctxinst = -1;
|
|
static int hf_lbmc_ume_pser_store_ctxinst = -1;
|
|
static int hf_lbmc_domain = -1;
|
|
static int hf_lbmc_domain_next_hdr = -1;
|
|
static int hf_lbmc_domain_hdr_len = -1;
|
|
static int hf_lbmc_domain_flags = -1;
|
|
static int hf_lbmc_domain_flags_ignore = -1;
|
|
static int hf_lbmc_domain_flags_active = -1;
|
|
static int hf_lbmc_domain_domain = -1;
|
|
static int hf_lbmc_tnwg_capabilities = -1;
|
|
static int hf_lbmc_tnwg_capabilities_next_hdr = -1;
|
|
static int hf_lbmc_tnwg_capabilities_hdr_len = -1;
|
|
static int hf_lbmc_tnwg_capabilities_flags = -1;
|
|
static int hf_lbmc_tnwg_capabilities_flags_ignore = -1;
|
|
static int hf_lbmc_tnwg_capabilities_flags_version = -1;
|
|
static int hf_lbmc_tnwg_capabilities_capabilities1 = -1;
|
|
static int hf_lbmc_tnwg_capabilities_capabilities1_ume = -1;
|
|
static int hf_lbmc_tnwg_capabilities_capabilities1_umq = -1;
|
|
static int hf_lbmc_tnwg_capabilities_capabilities2 = -1;
|
|
static int hf_lbmc_tnwg_capabilities_capabilities3 = -1;
|
|
static int hf_lbmc_tnwg_capabilities_capabilities3_pcre = -1;
|
|
static int hf_lbmc_tnwg_capabilities_capabilities3_regex = -1;
|
|
static int hf_lbmc_tnwg_capabilities_capabilities4 = -1;
|
|
static int hf_lbmc_patidx = -1;
|
|
static int hf_lbmc_patidx_next_hdr = -1;
|
|
static int hf_lbmc_patidx_hdr_len = -1;
|
|
static int hf_lbmc_patidx_flags = -1;
|
|
static int hf_lbmc_patidx_flags_ignore = -1;
|
|
static int hf_lbmc_patidx_patidx = -1;
|
|
static int hf_lbmc_ume_client_lifetime = -1;
|
|
static int hf_lbmc_ume_client_lifetime_next_hdr = -1;
|
|
static int hf_lbmc_ume_client_lifetime_hdr_len = -1;
|
|
static int hf_lbmc_ume_client_lifetime_flags = -1;
|
|
static int hf_lbmc_ume_client_lifetime_flags_ignore = -1;
|
|
static int hf_lbmc_ume_client_lifetime_activity_tmo = -1;
|
|
static int hf_lbmc_ume_client_lifetime_lifetime = -1;
|
|
static int hf_lbmc_ume_client_lifetime_ttl = -1;
|
|
static int hf_lbmc_ume_sid = -1;
|
|
static int hf_lbmc_ume_sid_next_hdr = -1;
|
|
static int hf_lbmc_ume_sid_hdr_len = -1;
|
|
static int hf_lbmc_ume_sid_flags = -1;
|
|
static int hf_lbmc_ume_sid_flags_ignore = -1;
|
|
static int hf_lbmc_ume_sid_sid = -1;
|
|
static int hf_lbmc_umq_idx_cmd = -1;
|
|
static int hf_lbmc_umq_idx_cmd_next_hdr = -1;
|
|
static int hf_lbmc_umq_idx_cmd_hdr_len = -1;
|
|
static int hf_lbmc_umq_idx_cmd_flags = -1;
|
|
static int hf_lbmc_umq_idx_cmd_flags_ignore = -1;
|
|
static int hf_lbmc_umq_idx_cmd_cmd_type = -1;
|
|
static int hf_lbmc_umq_idx_cmd_queue_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_cmd_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_inst_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_regid = -1;
|
|
static int hf_lbmc_umq_idx_cmd_stop_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_stop_assign_rcr_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_stop_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_start_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_start_assign_rcr_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_start_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_release_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_release_assign_rcr_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_release_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_release_assign_flags = -1;
|
|
static int hf_lbmc_umq_idx_cmd_release_assign_flags_numeric = -1;
|
|
static int hf_lbmc_umq_idx_cmd_release_assign_index_len = -1;
|
|
static int hf_lbmc_umq_idx_cmd_release_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_release_assign_numeric_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_release_assign_string_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_stop_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_stop_assign_src_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_stop_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_stop_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_stop_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_start_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_start_assign_src_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_start_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_start_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_start_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_release_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_src_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_flags = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_flags_numeric = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_index_len = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_numeric_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_string_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_reserve_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_reserve_assign_rcr_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_reserve_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_reserve_assign_flags = -1;
|
|
static int hf_lbmc_umq_idx_cmd_reserve_assign_flags_numeric = -1;
|
|
static int hf_lbmc_umq_idx_cmd_reserve_assign_index_len = -1;
|
|
static int hf_lbmc_umq_idx_cmd_reserve_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_reserve_assign_numeric_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_reserve_assign_string_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_src_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags_numeric = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_index_len = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_numeric_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_string_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_next_hdr = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_hdr_len = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_flags = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_flags_ignore = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_flags_ulb = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_resp_type = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_queue_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_cmd_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_inst_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_regid = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_err = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_err_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_err_code = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_err_error_string = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_stop_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_stop_assign_rcr_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_stop_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_start_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_start_assign_rcr_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_start_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_start_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_start_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_release_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_release_assign_rcr_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_release_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_release_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_release_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_src_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_start_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_src_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_release_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_src_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_rcr_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags_numeric = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_index_len = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_numeric_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_string_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_src_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_assign_id = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags_numeric = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_appset_idx = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_index_len = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_reserved = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_numeric_index = -1;
|
|
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_string_index = -1;
|
|
static int hf_lbmc_odomain = -1;
|
|
static int hf_lbmc_odomain_next_hdr = -1;
|
|
static int hf_lbmc_odomain_hdr_len = -1;
|
|
static int hf_lbmc_odomain_flags = -1;
|
|
static int hf_lbmc_odomain_flags_ignore = -1;
|
|
static int hf_lbmc_odomain_domain = -1;
|
|
static int hf_lbmc_stream = -1;
|
|
static int hf_lbmc_stream_next_hdr = -1;
|
|
static int hf_lbmc_stream_hdr_len = -1;
|
|
static int hf_lbmc_stream_flags = -1;
|
|
static int hf_lbmc_stream_flags_ignore = -1;
|
|
static int hf_lbmc_stream_stream_id = -1;
|
|
static int hf_lbmc_stream_sqn = -1;
|
|
static int hf_lbmc_stream_ctxinst = -1;
|
|
static int hf_lbmc_topic_md_interest = -1;
|
|
static int hf_lbmc_topic_md_interest_next_hdr = -1;
|
|
static int hf_lbmc_topic_md_interest_hdr_len = -1;
|
|
static int hf_lbmc_topic_md_interest_flags = -1;
|
|
static int hf_lbmc_topic_md_interest_flags_ignore = -1;
|
|
static int hf_lbmc_topic_md_interest_flags_cancel = -1;
|
|
static int hf_lbmc_topic_md_interest_flags_refresh = -1;
|
|
static int hf_lbmc_topic_md_interest_domain_count = -1;
|
|
static int hf_lbmc_topic_md_interest_res1 = -1;
|
|
static int hf_lbmc_topic_md_interest_domain_id = -1;
|
|
static int hf_lbmc_pattern_md_interest = -1;
|
|
static int hf_lbmc_pattern_md_interest_next_hdr = -1;
|
|
static int hf_lbmc_pattern_md_interest_hdr_len = -1;
|
|
static int hf_lbmc_pattern_md_interest_flags = -1;
|
|
static int hf_lbmc_pattern_md_interest_flags_ignore = -1;
|
|
static int hf_lbmc_pattern_md_interest_flags_cancel = -1;
|
|
static int hf_lbmc_pattern_md_interest_flags_refresh = -1;
|
|
static int hf_lbmc_pattern_md_interest_type = -1;
|
|
static int hf_lbmc_pattern_md_interest_domain_count = -1;
|
|
static int hf_lbmc_pattern_md_interest_res1 = -1;
|
|
static int hf_lbmc_pattern_md_interest_index = -1;
|
|
static int hf_lbmc_pattern_md_interest_domain_id = -1;
|
|
static int hf_lbmc_lji_req = -1;
|
|
static int hf_lbmc_lji_req_next_hdr = -1;
|
|
static int hf_lbmc_lji_req_hdr_len = -1;
|
|
static int hf_lbmc_lji_req_flags = -1;
|
|
static int hf_lbmc_lji_req_flags_ignore = -1;
|
|
static int hf_lbmc_lji_req_flags_l_flag = -1;
|
|
static int hf_lbmc_lji_req_flags_m_flag = -1;
|
|
static int hf_lbmc_lji_req_flags_o_flag = -1;
|
|
static int hf_lbmc_lji_req_request_idx = -1;
|
|
static int hf_lbmc_lji_req_transport_idx = -1;
|
|
static int hf_lbmc_lji_req_topic_idx = -1;
|
|
static int hf_lbmc_lji_req_req_ip = -1;
|
|
static int hf_lbmc_lji_req_req_port = -1;
|
|
static int hf_lbmc_lji_req_res = -1;
|
|
static int hf_lbmc_lji_req_tx_low_sqn = -1;
|
|
static int hf_lbmc_lji_req_rx_req_max = -1;
|
|
static int hf_lbmc_lji_req_rx_req_outstanding_max = -1;
|
|
static int hf_lbmc_tnwg_ka = -1;
|
|
static int hf_lbmc_tnwg_ka_next_hdr = -1;
|
|
static int hf_lbmc_tnwg_ka_hdr_len = -1;
|
|
static int hf_lbmc_tnwg_ka_flags = -1;
|
|
static int hf_lbmc_tnwg_ka_flags_ignore = -1;
|
|
static int hf_lbmc_tnwg_ka_flags_q_flag = -1;
|
|
static int hf_lbmc_tnwg_ka_flags_r_flag = -1;
|
|
static int hf_lbmc_tnwg_ka_index = -1;
|
|
static int hf_lbmc_tnwg_ka_ts_seconds = -1;
|
|
static int hf_lbmc_tnwg_ka_ts_microseconds = -1;
|
|
static int hf_lbmc_tnwg_ka_reserved_1 = -1;
|
|
static int hf_lbmc_tnwg_ka_reserved_2 = -1;
|
|
static int hf_lbmc_tnwg_ka_reserved_3 = -1;
|
|
static int hf_lbmc_tnwg_ka_reserved_4 = -1;
|
|
static int hf_lbmc_tnwg_ka_reserved_5 = -1;
|
|
static int hf_lbmc_tnwg_ka_reserved_6 = -1;
|
|
static int hf_lbmc_ume_receiver_keepalive = -1;
|
|
static int hf_lbmc_ume_receiver_keepalive_next_hdr = -1;
|
|
static int hf_lbmc_ume_receiver_keepalive_hdr_len = -1;
|
|
static int hf_lbmc_ume_receiver_keepalive_flags = -1;
|
|
static int hf_lbmc_ume_receiver_keepalive_flags_ignore = -1;
|
|
static int hf_lbmc_ume_receiver_keepalive_rcv_regid = -1;
|
|
static int hf_lbmc_ume_receiver_keepalive_session_id = -1;
|
|
static int hf_lbmc_ume_receiver_keepalive_ctxinst = -1;
|
|
static int hf_lbmc_umq_cmd = -1;
|
|
static int hf_lbmc_umq_cmd_next_hdr = -1;
|
|
static int hf_lbmc_umq_cmd_hdr_len = -1;
|
|
static int hf_lbmc_umq_cmd_flags = -1;
|
|
static int hf_lbmc_umq_cmd_flags_ignore = -1;
|
|
static int hf_lbmc_umq_cmd_cmd_type = -1;
|
|
static int hf_lbmc_umq_cmd_queue_id = -1;
|
|
static int hf_lbmc_umq_cmd_cmd_id = -1;
|
|
static int hf_lbmc_umq_cmd_inst_idx = -1;
|
|
static int hf_lbmc_umq_cmd_regid = -1;
|
|
static int hf_lbmc_umq_cmd_topic_list = -1;
|
|
static int hf_lbmc_umq_cmd_topic_list_serial_num = -1;
|
|
static int hf_lbmc_umq_cmd_msg_retrieve = -1;
|
|
static int hf_lbmc_umq_cmd_msg_retrieve_rcr_idx = -1;
|
|
static int hf_lbmc_umq_cmd_msg_retrieve_assign_id = -1;
|
|
static int hf_lbmc_umq_cmd_msg_retrieve_info_only = -1;
|
|
static int hf_lbmc_umq_cmd_msg_retrieve_num_msgids = -1;
|
|
static int hf_lbmc_umq_cmd_msg_retrieve_flags = -1;
|
|
static int hf_lbmc_umq_cmd_msg_retrieve_entry = -1;
|
|
static int hf_lbmc_umq_cmd_msg_retrieve_entry_regid = -1;
|
|
static int hf_lbmc_umq_cmd_msg_retrieve_entry_stamp = -1;
|
|
static int hf_lbmc_umq_cmd_msg_list = -1;
|
|
static int hf_lbmc_umq_cmd_msg_list_rcr_idx = -1;
|
|
static int hf_lbmc_umq_cmd_msg_list_assign_id = -1;
|
|
static int hf_lbmc_umq_cmd_resp = -1;
|
|
static int hf_lbmc_umq_cmd_resp_next_hdr = -1;
|
|
static int hf_lbmc_umq_cmd_resp_hdr_len = -1;
|
|
static int hf_lbmc_umq_cmd_resp_flags = -1;
|
|
static int hf_lbmc_umq_cmd_resp_flags_ignore = -1;
|
|
static int hf_lbmc_umq_cmd_resp_resp_type = -1;
|
|
static int hf_lbmc_umq_cmd_resp_queue_id = -1;
|
|
static int hf_lbmc_umq_cmd_resp_cmd_id = -1;
|
|
static int hf_lbmc_umq_cmd_resp_inst_idx = -1;
|
|
static int hf_lbmc_umq_cmd_resp_regid = -1;
|
|
static int hf_lbmc_umq_cmd_resp_msg_retrieve = -1;
|
|
static int hf_lbmc_umq_cmd_resp_msg_retrieve_rcr_idx = -1;
|
|
static int hf_lbmc_umq_cmd_resp_msg_retrieve_assign_id = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_num_msgs = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_flags = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_reserved = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_regid = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_stamp = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_assign_id = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_num_ras = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_status = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_reserved = -1;
|
|
static int hf_lbmc_umq_cmd_resp_msg_list = -1;
|
|
static int hf_lbmc_umq_cmd_resp_msg_list_rcr_idx = -1;
|
|
static int hf_lbmc_umq_cmd_resp_msg_list_assign_id = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_list = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_list_num_msgs = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_list_entry = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_list_entry_regid = -1;
|
|
static int hf_lbmc_umq_cmd_resp_xmsg_list_entry_stamp = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_num_topics = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_rcr_idx = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_num_appsets = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_topic_len = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_reserved = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_topic = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_num_receiver_type_ids = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_appset_idx = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_appset_name_len = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_reserved = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_name = -1;
|
|
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_receiver_type_id = -1;
|
|
static int hf_lbmc_umq_cmd_resp_err = -1;
|
|
static int hf_lbmc_umq_cmd_resp_err_reserved = -1;
|
|
static int hf_lbmc_umq_cmd_resp_err_code = -1;
|
|
static int hf_lbmc_umq_cmd_resp_err_errmsg = -1;
|
|
static int hf_lbmc_sri_req = -1;
|
|
static int hf_lbmc_sri_req_next_hdr = -1;
|
|
static int hf_lbmc_sri_req_hdr_len = -1;
|
|
static int hf_lbmc_sri_req_flags = -1;
|
|
static int hf_lbmc_sri_req_flags_ignore = -1;
|
|
static int hf_lbmc_sri_req_transport_idx = -1;
|
|
static int hf_lbmc_sri_req_topic_idx = -1;
|
|
static int hf_lbmc_ume_store_domain = -1;
|
|
static int hf_lbmc_ume_store_domain_next_hdr = -1;
|
|
static int hf_lbmc_ume_store_domain_hdr_len = -1;
|
|
static int hf_lbmc_ume_store_domain_flags = -1;
|
|
static int hf_lbmc_ume_store_domain_flags_ignore = -1;
|
|
static int hf_lbmc_ume_store_domain_domain = -1;
|
|
static int hf_lbmc_sri = -1;
|
|
static int hf_lbmc_sri_next_hdr = -1;
|
|
static int hf_lbmc_sri_hdr_len = -1;
|
|
static int hf_lbmc_sri_flags = -1;
|
|
static int hf_lbmc_sri_flags_ignore = -1;
|
|
static int hf_lbmc_sri_flags_acktosrc = -1;
|
|
static int hf_lbmc_sri_flags_initial_sqn_known = -1;
|
|
static int hf_lbmc_sri_version = -1;
|
|
static int hf_lbmc_sri_low_sqn = -1;
|
|
static int hf_lbmc_sri_high_sqn = -1;
|
|
static int hf_lbmc_route_info = -1;
|
|
static int hf_lbmc_route_info_next_hdr = -1;
|
|
static int hf_lbmc_route_info_hdr_len = -1;
|
|
static int hf_lbmc_route_info_flags = -1;
|
|
static int hf_lbmc_route_info_flags_ignore = -1;
|
|
static int hf_lbmc_route_info_gateway_version = -1;
|
|
static int hf_lbmc_route_info_configuration_signature = -1;
|
|
static int hf_lbmc_route_info_node_id = -1;
|
|
static int hf_lbmc_route_info_topology = -1;
|
|
static int hf_lbmc_route_info_vers = -1;
|
|
static int hf_lbmc_route_info_sqn = -1;
|
|
static int hf_lbmc_route_info_ttl = -1;
|
|
static int hf_lbmc_route_info_reserved1 = -1;
|
|
static int hf_lbmc_route_info_reserved2 = -1;
|
|
static int hf_lbmc_route_info_neighbor = -1;
|
|
static int hf_lbmc_route_info_neighbor_next_hdr = -1;
|
|
static int hf_lbmc_route_info_neighbor_hdr_len = -1;
|
|
static int hf_lbmc_route_info_neighbor_flags = -1;
|
|
static int hf_lbmc_route_info_neighbor_flags_ignore = -1;
|
|
static int hf_lbmc_route_info_neighbor_node_id = -1;
|
|
static int hf_lbmc_route_info_neighbor_ingress_cost = -1;
|
|
static int hf_lbmc_route_info_neighbor_egress_cost = -1;
|
|
static int hf_lbmc_gateway_name = -1;
|
|
static int hf_lbmc_gateway_name_next_hdr = -1;
|
|
static int hf_lbmc_gateway_name_hdr_len = -1;
|
|
static int hf_lbmc_gateway_name_flags = -1;
|
|
static int hf_lbmc_gateway_name_flags_ignore = -1;
|
|
static int hf_lbmc_gateway_name_gateway_name = -1;
|
|
static int hf_lbmc_auth_request = -1;
|
|
static int hf_lbmc_auth_request_next_hdr = -1;
|
|
static int hf_lbmc_auth_request_hdr_len = -1;
|
|
static int hf_lbmc_auth_request_flags = -1;
|
|
static int hf_lbmc_auth_request_flags_ignore = -1;
|
|
static int hf_lbmc_auth_request_opid = -1;
|
|
static int hf_lbmc_auth_request_user_len = -1;
|
|
static int hf_lbmc_auth_request_user_name = -1;
|
|
static int hf_lbmc_auth_challenge = -1;
|
|
static int hf_lbmc_auth_challenge_next_hdr = -1;
|
|
static int hf_lbmc_auth_challenge_hdr_len = -1;
|
|
static int hf_lbmc_auth_challenge_flags = -1;
|
|
static int hf_lbmc_auth_challenge_flags_ignore = -1;
|
|
static int hf_lbmc_auth_challenge_opid = -1;
|
|
static int hf_lbmc_auth_challenge_mod_len = -1;
|
|
static int hf_lbmc_auth_challenge_gen_len = -1;
|
|
static int hf_lbmc_auth_challenge_salt_len = -1;
|
|
static int hf_lbmc_auth_challenge_pubkey_len = -1;
|
|
static int hf_lbmc_auth_challenge_mod = -1;
|
|
static int hf_lbmc_auth_challenge_gen = -1;
|
|
static int hf_lbmc_auth_challenge_salt = -1;
|
|
static int hf_lbmc_auth_challenge_pubkey = -1;
|
|
static int hf_lbmc_auth_challenge_rsp = -1;
|
|
static int hf_lbmc_auth_challenge_rsp_next_hdr = -1;
|
|
static int hf_lbmc_auth_challenge_rsp_hdr_len = -1;
|
|
static int hf_lbmc_auth_challenge_rsp_flags = -1;
|
|
static int hf_lbmc_auth_challenge_rsp_flags_ignore = -1;
|
|
static int hf_lbmc_auth_challenge_rsp_opid = -1;
|
|
static int hf_lbmc_auth_challenge_rsp_pubkey_len = -1;
|
|
static int hf_lbmc_auth_challenge_rsp_evidence_len = -1;
|
|
static int hf_lbmc_auth_challenge_rsp_pubkey = -1;
|
|
static int hf_lbmc_auth_challenge_rsp_evidence = -1;
|
|
static int hf_lbmc_auth_result = -1;
|
|
static int hf_lbmc_auth_result_next_hdr = -1;
|
|
static int hf_lbmc_auth_result_hdr_len = -1;
|
|
static int hf_lbmc_auth_result_flags = -1;
|
|
static int hf_lbmc_auth_result_flags_ignore = -1;
|
|
static int hf_lbmc_auth_result_opid = -1;
|
|
static int hf_lbmc_auth_result_result = -1;
|
|
static int hf_lbmc_auth_unknown = -1;
|
|
static int hf_lbmc_auth_unknown_next_hdr = -1;
|
|
static int hf_lbmc_auth_unknown_hdr_len = -1;
|
|
static int hf_lbmc_auth_unknown_flags = -1;
|
|
static int hf_lbmc_auth_unknown_opid = -1;
|
|
static int hf_lbmc_auth_unknown_data = -1;
|
|
static int hf_lbmc_hmac = -1;
|
|
static int hf_lbmc_hmac_next_hdr = -1;
|
|
static int hf_lbmc_hmac_hdr_len = -1;
|
|
static int hf_lbmc_hmac_flags = -1;
|
|
static int hf_lbmc_hmac_flags_ignore = -1;
|
|
static int hf_lbmc_hmac_padding = -1;
|
|
static int hf_lbmc_hmac_data = -1;
|
|
static int hf_lbmc_umq_sid = -1;
|
|
static int hf_lbmc_umq_sid_next_hdr = -1;
|
|
static int hf_lbmc_umq_sid_hdr_len = -1;
|
|
static int hf_lbmc_umq_sid_flags = -1;
|
|
static int hf_lbmc_umq_sid_flags_ignore = -1;
|
|
static int hf_lbmc_umq_sid_key = -1;
|
|
static int hf_lbmc_umq_sid_sid = -1;
|
|
static int hf_lbmc_destination = -1;
|
|
static int hf_lbmc_destination_next_hdr = -1;
|
|
static int hf_lbmc_destination_hdr_len = -1;
|
|
static int hf_lbmc_destination_flags = -1;
|
|
static int hf_lbmc_destination_flags_ignore = -1;
|
|
static int hf_lbmc_destination_domain_id = -1;
|
|
static int hf_lbmc_destination_ipaddr = -1;
|
|
static int hf_lbmc_destination_port = -1;
|
|
static int hf_lbmc_destination_hops_taken = -1;
|
|
static int hf_lbmc_destination_orig_domain_id = -1;
|
|
static int hf_lbmc_destination_orig_ipaddr = -1;
|
|
static int hf_lbmc_destination_orig_port = -1;
|
|
static int hf_lbmc_destination_reserved = -1;
|
|
static int hf_lbmc_topic_idx = -1;
|
|
static int hf_lbmc_topic_idx_next_hdr = -1;
|
|
static int hf_lbmc_topic_idx_hdr_len = -1;
|
|
static int hf_lbmc_topic_idx_flags = -1;
|
|
static int hf_lbmc_topic_idx_flags_ignore = -1;
|
|
static int hf_lbmc_topic_idx_tidx = -1;
|
|
static int hf_lbmc_topic_source = -1;
|
|
static int hf_lbmc_topic_source_next_hdr = -1;
|
|
static int hf_lbmc_topic_source_hdr_len = -1;
|
|
static int hf_lbmc_topic_source_flags = -1;
|
|
static int hf_lbmc_topic_source_flags_ignore = -1;
|
|
static int hf_lbmc_topic_source_flags_eos = -1;
|
|
static int hf_lbmc_topic_source_domain_id = -1;
|
|
static int hf_lbmc_topic_source_exfunc = -1;
|
|
static int hf_lbmc_topic_source_exfunc_next_hdr = -1;
|
|
static int hf_lbmc_topic_source_exfunc_hdr_len = -1;
|
|
static int hf_lbmc_topic_source_exfunc_flags = -1;
|
|
static int hf_lbmc_topic_source_exfunc_flags_ignore = -1;
|
|
static int hf_lbmc_topic_source_exfunc_src_ip = -1;
|
|
static int hf_lbmc_topic_source_exfunc_src_port = -1;
|
|
static int hf_lbmc_topic_source_exfunc_unused = -1;
|
|
static int hf_lbmc_topic_source_exfunc_functionality_flags = -1;
|
|
static int hf_lbmc_topic_source_exfunc_functionality_flags_ulb = -1;
|
|
static int hf_lbmc_topic_source_exfunc_functionality_flags_umq = -1;
|
|
static int hf_lbmc_topic_source_exfunc_functionality_flags_ume = -1;
|
|
static int hf_lbmc_topic_source_exfunc_functionality_flags_lj = -1;
|
|
static int hf_lbmc_ume_store_ext = -1;
|
|
static int hf_lbmc_ume_store_ext_next_hdr = -1;
|
|
static int hf_lbmc_ume_store_ext_hdr_len = -1;
|
|
static int hf_lbmc_ume_store_ext_flags = -1;
|
|
static int hf_lbmc_ume_store_ext_flags_ignore = -1;
|
|
static int hf_lbmc_ume_store_ext_grp_idx = -1;
|
|
static int hf_lbmc_ume_store_ext_store_tcp_port = -1;
|
|
static int hf_lbmc_ume_store_ext_store_idx = -1;
|
|
static int hf_lbmc_ume_store_ext_store_ip_addr = -1;
|
|
static int hf_lbmc_ume_store_ext_src_reg_id = -1;
|
|
static int hf_lbmc_ume_store_ext_domain_id = -1;
|
|
static int hf_lbmc_ume_store_ext_version = -1;
|
|
static int hf_lbmc_ume_psrc_election_token = -1;
|
|
static int hf_lbmc_ume_psrc_election_token_next_hdr = -1;
|
|
static int hf_lbmc_ume_psrc_election_token_hdr_len = -1;
|
|
static int hf_lbmc_ume_psrc_election_token_flags = -1;
|
|
static int hf_lbmc_ume_psrc_election_token_flags_ignore = -1;
|
|
static int hf_lbmc_ume_psrc_election_token_store_index = -1;
|
|
static int hf_lbmc_ume_psrc_election_token_token = -1;
|
|
static int hf_lbmc_tcp_sid = -1;
|
|
static int hf_lbmc_tcp_sid_next_hdr = -1;
|
|
static int hf_lbmc_tcp_sid_hdr_len = -1;
|
|
static int hf_lbmc_tcp_sid_flags = -1;
|
|
static int hf_lbmc_tcp_sid_flags_ignore = -1;
|
|
static int hf_lbmc_tcp_sid_sid = -1;
|
|
static int hf_lbmc_extopt = -1;
|
|
static int hf_lbmc_extopt_next_hdr = -1;
|
|
static int hf_lbmc_extopt_hdr_len = -1;
|
|
static int hf_lbmc_extopt_flags = -1;
|
|
static int hf_lbmc_extopt_flags_ignore = -1;
|
|
static int hf_lbmc_extopt_flags_ignore_subtype = -1;
|
|
static int hf_lbmc_extopt_flags_more_fragments = -1;
|
|
static int hf_lbmc_extopt_id = -1;
|
|
static int hf_lbmc_extopt_subtype = -1;
|
|
static int hf_lbmc_extopt_fragment_offset = -1;
|
|
static int hf_lbmc_extopt_data = -1;
|
|
static int hf_lbmc_extopt_cfgopt = -1;
|
|
static int hf_lbmc_extopt_cfgopt_scope = -1;
|
|
static int hf_lbmc_extopt_cfgopt_parent = -1;
|
|
static int hf_lbmc_extopt_cfgopt_name = -1;
|
|
static int hf_lbmc_extopt_cfgopt_value = -1;
|
|
static int hf_lbmc_extopt_msgsel = -1;
|
|
static int hf_lbmc_extopt_reassembled_data = -1;
|
|
static int hf_lbmc_extopt_reassembled_data_subtype = -1;
|
|
static int hf_lbmc_extopt_reassembled_data_len = -1;
|
|
static int hf_lbmc_extopt_reassembled_data_data = -1;
|
|
static int hf_lbmc_extopt_reassembled_data_msgsel = -1;
|
|
static int hf_lbm_msg_properties = -1;
|
|
static int hf_lbm_msg_properties_data = -1;
|
|
static int hf_lbm_msg_properties_data_magic = -1;
|
|
static int hf_lbm_msg_properties_data_num_fields = -1;
|
|
static int hf_lbm_msg_properties_data_version = -1;
|
|
static int hf_lbm_msg_properties_data_type = -1;
|
|
static int hf_lbm_msg_properties_data_res = -1;
|
|
static int hf_lbm_msg_properties_hdr = -1;
|
|
static int hf_lbm_msg_properties_hdr_key_offset = -1;
|
|
static int hf_lbm_msg_properties_hdr_value_offset = -1;
|
|
static int hf_lbm_msg_properties_hdr_hash = -1;
|
|
static int hf_lbm_msg_properties_hdr_type = -1;
|
|
static int hf_lbm_msg_properties_hdr_key = -1;
|
|
static int hf_lbm_msg_properties_hdr_boolean_value = -1;
|
|
static int hf_lbm_msg_properties_hdr_byte_value = -1;
|
|
static int hf_lbm_msg_properties_hdr_short_value = -1;
|
|
static int hf_lbm_msg_properties_hdr_int_value = -1;
|
|
static int hf_lbm_msg_properties_hdr_float_value = -1;
|
|
static int hf_lbm_msg_properties_hdr_long_value = -1;
|
|
static int hf_lbm_msg_properties_hdr_double_value = -1;
|
|
static int hf_lbm_msg_properties_hdr_string_value = -1;
|
|
static int hf_lbm_msg_properties_hdr_unknown_value = -1;
|
|
static int hf_lbmc_unhandled = -1;
|
|
static int hf_lbmc_unhandled_next_hdr = -1;
|
|
static int hf_lbmc_unhandled_hdr_len = -1;
|
|
static int hf_lbmc_unhandled_data = -1;
|
|
static int hf_lbm_stream = -1;
|
|
static int hf_lbm_stream_stream_id = -1;
|
|
static int hf_lbm_stream_substream_id = -1;
|
|
static int hf_lbmc_reassembly = -1;
|
|
static int hf_lbmc_reassembly_fragment = -1;
|
|
static int hf_reassembly_frame = -1;
|
|
|
|
/* Protocol trees */
|
|
static gint ett_lbmc = -1;
|
|
static gint ett_lbmc_frag = -1;
|
|
static gint ett_lbmc_frag_flags = -1;
|
|
static gint ett_lbmc_batch = -1;
|
|
static gint ett_lbmc_batch_flags = -1;
|
|
static gint ett_lbmc_tcp_request = -1;
|
|
static gint ett_lbmc_tcp_request_flags = -1;
|
|
static gint ett_lbmc_topicname = -1;
|
|
static gint ett_lbmc_topicname_flags = -1;
|
|
static gint ett_lbmc_apphdr = -1;
|
|
static gint ett_lbmc_apphdr_chain = -1;
|
|
static gint ett_lbmc_apphdr_chain_element = -1;
|
|
static gint ett_lbmc_apphdr_chain_msgprop = -1;
|
|
static gint ett_lbmc_umq_msgid = -1;
|
|
static gint ett_lbmc_umq_msgid_flags = -1;
|
|
static gint ett_lbmc_umq_sqd_rcv = -1;
|
|
static gint ett_lbmc_umq_sqd_rcv_flags = -1;
|
|
static gint ett_lbmc_umq_resub = -1;
|
|
static gint ett_lbmc_umq_resub_flags = -1;
|
|
static gint ett_lbmc_otid = -1;
|
|
static gint ett_lbmc_otid_flags = -1;
|
|
static gint ett_lbmc_ctxinst = -1;
|
|
static gint ett_lbmc_ctxinst_flags = -1;
|
|
static gint ett_lbmc_ctxinstd = -1;
|
|
static gint ett_lbmc_ctxinstr = -1;
|
|
static gint ett_lbmc_srcidx = -1;
|
|
static gint ett_lbmc_srcidx_flags = -1;
|
|
static gint ett_lbmc_umq_ulb_msg = -1;
|
|
static gint ett_lbmc_umq_ulb_msg_flags = -1;
|
|
static gint ett_lbmc_ssf_init = -1;
|
|
static gint ett_lbmc_ssf_init_flags = -1;
|
|
static gint ett_lbmc_ssf_creq = -1;
|
|
static gint ett_lbmc_ssf_creq_flags = -1;
|
|
static gint ett_lbmc_ume_preg = -1;
|
|
static gint ett_lbmc_ume_preg_flags = -1;
|
|
static gint ett_lbmc_ume_preg_resp = -1;
|
|
static gint ett_lbmc_ume_preg_resp_code = -1;
|
|
static gint ett_lbmc_ume_preg_resp_marker = -1;
|
|
static gint ett_lbmc_ume_ack = -1;
|
|
static gint ett_lbmc_ume_ack_flags = -1;
|
|
static gint ett_lbmc_ume_rxreq = -1;
|
|
static gint ett_lbmc_ume_rxreq_flags = -1;
|
|
static gint ett_lbmc_ume_keepalive = -1;
|
|
static gint ett_lbmc_ume_keepalive_flags = -1;
|
|
static gint ett_lbmc_ume_storeid = -1;
|
|
static gint ett_lbmc_ume_ranged_ack = -1;
|
|
static gint ett_lbmc_ume_ranged_ack_flags = -1;
|
|
static gint ett_lbmc_ume_ack_id = -1;
|
|
static gint ett_lbmc_ume_ack_id_flags = -1;
|
|
static gint ett_lbmc_ume_capability = -1;
|
|
static gint ett_lbmc_ume_capability_flags = -1;
|
|
static gint ett_lbmc_ume_proxy_src = -1;
|
|
static gint ett_lbmc_ume_proxy_src_flags = -1;
|
|
static gint ett_lbmc_ume_store_group = -1;
|
|
static gint ett_lbmc_ume_store_group_flags = -1;
|
|
static gint ett_lbmc_ume_store = -1;
|
|
static gint ett_lbmc_ume_store_flags = -1;
|
|
static gint ett_lbmc_ume_lj_info = -1;
|
|
static gint ett_lbmc_ume_lj_info_flags = -1;
|
|
static gint ett_lbmc_tsni = -1;
|
|
static gint ett_lbmc_tsni_rec = -1;
|
|
static gint ett_lbmc_umq_reg = -1;
|
|
static gint ett_lbmc_umq_reg_flags = -1;
|
|
static gint ett_lbmc_umq_reg_reg_ctx = -1;
|
|
static gint ett_lbmc_umq_reg_reg_src = -1;
|
|
static gint ett_lbmc_umq_reg_reg_rcv = -1;
|
|
static gint ett_lbmc_umq_reg_rcv_dereg = -1;
|
|
static gint ett_lbmc_umq_reg_reg_ulb_rcv = -1;
|
|
static gint ett_lbmc_umq_reg_ulb_rcv_dereg = -1;
|
|
static gint ett_lbmc_umq_reg_reg_observer_rcv = -1;
|
|
static gint ett_lbmc_umq_reg_observer_rcv_dereg = -1;
|
|
static gint ett_lbmc_umq_reg_resp = -1;
|
|
static gint ett_lbmc_umq_reg_resp_flags = -1;
|
|
static gint ett_lbmc_umq_reg_resp_reg_ctx = -1;
|
|
static gint ett_lbmc_umq_reg_resp_reg_ctx_ex = -1;
|
|
static gint ett_lbmc_umq_reg_resp_reg_ctx_ex_flags = -1;
|
|
static gint ett_lbmc_umq_reg_resp_err = -1;
|
|
static gint ett_lbmc_umq_reg_resp_reg_src = -1;
|
|
static gint ett_lbmc_umq_reg_resp_reg_rcv = -1;
|
|
static gint ett_lbmc_umq_reg_resp_rcv_dereg = -1;
|
|
static gint ett_lbmc_umq_reg_resp_reg_ulb_rcv = -1;
|
|
static gint ett_lbmc_umq_reg_resp_ulb_rcv_dereg = -1;
|
|
static gint ett_lbmc_umq_reg_resp_reg_observer_rcv = -1;
|
|
static gint ett_lbmc_umq_reg_resp_observer_rcv_dereg = -1;
|
|
static gint ett_lbmc_umq_ack = -1;
|
|
static gint ett_lbmc_umq_ack_msgs = -1;
|
|
static gint ett_lbmc_umq_ack_msgid = -1;
|
|
static gint ett_lbmc_umq_ack_stable = -1;
|
|
static gint ett_lbmc_umq_ack_cr = -1;
|
|
static gint ett_lbmc_umq_ack_ulb_cr = -1;
|
|
static gint ett_lbmc_umq_rcr = -1;
|
|
static gint ett_lbmc_umq_rcr_flags = -1;
|
|
static gint ett_lbmc_umq_ka = -1;
|
|
static gint ett_lbmc_umq_ka_flags = -1;
|
|
static gint ett_lbmc_umq_ka_src = -1;
|
|
static gint ett_lbmc_umq_ka_rcv = -1;
|
|
static gint ett_lbmc_umq_ka_ulb_rcv = -1;
|
|
static gint ett_lbmc_umq_ka_ulb_rcv_resp = -1;
|
|
static gint ett_lbmc_umq_rxreq = -1;
|
|
static gint ett_lbmc_umq_rxreq_flags = -1;
|
|
static gint ett_lbmc_umq_rxreq_regid_resp = -1;
|
|
static gint ett_lbmc_umq_rxreq_addr_resp = -1;
|
|
static gint ett_lbmc_umq_rxreq_mr = -1;
|
|
static gint ett_lbmc_umq_rxreq_ulb_mr = -1;
|
|
static gint ett_lbmc_umq_rxreq_ulb_mr_abort = -1;
|
|
static gint ett_lbmc_umq_rxreq_qrcrr = -1;
|
|
static gint ett_lbmc_umq_rxreq_trcrr = -1;
|
|
static gint ett_lbmc_umq_rxreq_ulb_trcrr = -1;
|
|
static gint ett_lbmc_umq_rxreq_ulb_trcrr_abort = -1;
|
|
static gint ett_lbmc_umq_qmgmt = -1;
|
|
static gint ett_lbmc_umq_resub_req = -1;
|
|
static gint ett_lbmc_umq_resub_req_flags = -1;
|
|
static gint ett_lbmc_umq_resub_resp = -1;
|
|
static gint ett_lbmc_umq_resub_resp_flags = -1;
|
|
static gint ett_lbmc_topic_interest = -1;
|
|
static gint ett_lbmc_topic_interest_flags = -1;
|
|
static gint ett_lbmc_pattern_interest = -1;
|
|
static gint ett_lbmc_pattern_interest_flags = -1;
|
|
static gint ett_lbmc_advertisement = -1;
|
|
static gint ett_lbmc_advertisement_flags = -1;
|
|
static gint ett_lbmc_advertisement_ad_flags = -1;
|
|
static gint ett_lbmc_ume_storename = -1;
|
|
static gint ett_lbmc_ume_storename_flags = -1;
|
|
static gint ett_lbmc_umq_ulb_rcr = -1;
|
|
static gint ett_lbmc_umq_ulb_rcr_flags = -1;
|
|
static gint ett_lbmc_umq_lf = -1;
|
|
static gint ett_lbmc_umq_lf_flags = -1;
|
|
static gint ett_lbmc_ctxinfo = -1;
|
|
static gint ett_lbmc_ctxinfo_flags = -1;
|
|
static gint ett_lbmc_ume_pser = -1;
|
|
static gint ett_lbmc_ume_pser_flags = -1;
|
|
static gint ett_lbmc_domain = -1;
|
|
static gint ett_lbmc_domain_flags = -1;
|
|
static gint ett_lbmc_tnwg_capabilities = -1;
|
|
static gint ett_lbmc_tnwg_capabilities_flags = -1;
|
|
static gint ett_lbmc_tnwg_capabilities_capabilities1 = -1;
|
|
static gint ett_lbmc_tnwg_capabilities_capabilities3 = -1;
|
|
static gint ett_lbmc_patidx = -1;
|
|
static gint ett_lbmc_patidx_flags = -1;
|
|
static gint ett_lbmc_ume_client_lifetime = -1;
|
|
static gint ett_lbmc_ume_client_lifetime_flags = -1;
|
|
static gint ett_lbmc_ume_sid = -1;
|
|
static gint ett_lbmc_ume_sid_flags = -1;
|
|
static gint ett_lbmc_umq_idx_cmd = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_flags = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_stop_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_start_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_release_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_release_assign_flags = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_ulb_stop_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_ulb_start_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_ulb_release_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_ulb_release_assign_flags = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_reserve_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_reserve_assign_flags = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_ulb_reserve_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_ulb_reserve_assign_flags = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_flags = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_err = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_stop_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_start_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_release_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_ulb_stop_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_ulb_start_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_ulb_release_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_reserve_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_reserve_assign_flags = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign = -1;
|
|
static gint ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags = -1;
|
|
static gint ett_lbmc_odomain = -1;
|
|
static gint ett_lbmc_odomain_flags = -1;
|
|
static gint ett_lbmc_stream = -1;
|
|
static gint ett_lbmc_stream_flags = -1;
|
|
static gint ett_lbmc_topic_md_interest = -1;
|
|
static gint ett_lbmc_topic_md_interest_flags = -1;
|
|
static gint ett_lbmc_pattern_md_interest = -1;
|
|
static gint ett_lbmc_pattern_md_interest_flags = -1;
|
|
static gint ett_lbmc_lji_req = -1;
|
|
static gint ett_lbmc_lji_req_flags = -1;
|
|
static gint ett_lbmc_tnwg_ka = -1;
|
|
static gint ett_lbmc_tnwg_ka_flags = -1;
|
|
static gint ett_lbmc_ume_receiver_keepalive = -1;
|
|
static gint ett_lbmc_ume_receiver_keepalive_flags = -1;
|
|
static gint ett_lbmc_umq_cmd = -1;
|
|
static gint ett_lbmc_umq_cmd_flags = -1;
|
|
static gint ett_lbmc_umq_cmd_topic_list = -1;
|
|
static gint ett_lbmc_umq_cmd_msg_retrieve = -1;
|
|
static gint ett_lbmc_umq_cmd_msg_retrieve_entry = -1;
|
|
static gint ett_lbmc_umq_cmd_msg_list = -1;
|
|
static gint ett_lbmc_umq_cmd_resp = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_flags = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_msg_retrieve = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_xmsg_retrieve = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_xmsg_retrieve_entry = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_msg_list = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_xmsg_list = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_xmsg_list_entry = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_topic_list = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_topic_list_topic_entry = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry = -1;
|
|
static gint ett_lbmc_umq_cmd_resp_err = -1;
|
|
static gint ett_lbmc_sri_req = -1;
|
|
static gint ett_lbmc_sri_req_flags = -1;
|
|
static gint ett_lbmc_ume_store_domain = -1;
|
|
static gint ett_lbmc_ume_store_domain_flags = -1;
|
|
static gint ett_lbmc_sri = -1;
|
|
static gint ett_lbmc_sri_flags = -1;
|
|
static gint ett_lbmc_route_info = -1;
|
|
static gint ett_lbmc_route_info_flags = -1;
|
|
static gint ett_lbmc_route_info_neighbor = -1;
|
|
static gint ett_lbmc_route_info_neighbor_flags = -1;
|
|
static gint ett_lbmc_gateway_name = -1;
|
|
static gint ett_lbmc_gateway_name_flags = -1;
|
|
static gint ett_lbmc_auth_request = -1;
|
|
static gint ett_lbmc_auth_request_flags = -1;
|
|
static gint ett_lbmc_auth_challenge = -1;
|
|
static gint ett_lbmc_auth_challenge_flags = -1;
|
|
static gint ett_lbmc_auth_challenge_rsp = -1;
|
|
static gint ett_lbmc_auth_challenge_rsp_flags = -1;
|
|
static gint ett_lbmc_auth_result = -1;
|
|
static gint ett_lbmc_auth_result_flags = -1;
|
|
static gint ett_lbmc_auth_unknown = -1;
|
|
static gint ett_lbmc_hmac = -1;
|
|
static gint ett_lbmc_hmac_flags = -1;
|
|
static gint ett_lbmc_umq_sid = -1;
|
|
static gint ett_lbmc_umq_sid_flags = -1;
|
|
static gint ett_lbmc_destination = -1;
|
|
static gint ett_lbmc_destination_flags = -1;
|
|
static gint ett_lbmc_topic_idx = -1;
|
|
static gint ett_lbmc_topic_idx_flags = -1;
|
|
static gint ett_lbmc_topic_source = -1;
|
|
static gint ett_lbmc_topic_source_flags = -1;
|
|
static gint ett_lbmc_topic_source_exfunc = -1;
|
|
static gint ett_lbmc_topic_source_exfunc_flags = -1;
|
|
static gint ett_lbmc_topic_source_exfunc_functionality_flags = -1;
|
|
static gint ett_lbmc_ume_store_ext = -1;
|
|
static gint ett_lbmc_ume_store_ext_flags = -1;
|
|
static gint ett_lbmc_ume_psrc_election_token = -1;
|
|
static gint ett_lbmc_ume_psrc_election_token_flags = -1;
|
|
static gint ett_lbmc_tcp_sid = -1;
|
|
static gint ett_lbmc_tcp_sid_flags = -1;
|
|
static gint ett_lbmc_extopt = -1;
|
|
static gint ett_lbmc_extopt_flags = -1;
|
|
static gint ett_lbmc_extopt_cfgopt = -1;
|
|
static gint ett_lbmc_extopt_reassembled_data = -1;
|
|
static gint ett_lbmc_extopt_reassembled_data_cfgopt = -1;
|
|
static gint ett_lbm_msg_properties = -1;
|
|
static gint ett_lbm_msg_properties_data = -1;
|
|
static gint ett_lbm_msg_properties_hdr = -1;
|
|
static gint ett_lbmc_unhandled_hdr = -1;
|
|
static gint ett_lbm_stream = -1;
|
|
static gint ett_lbmc_reassembly = -1;
|
|
static gint ett_unknown = -1;
|
|
static gint ett_msg_data = -1;
|
|
static gint ett_msgprop_data = -1;
|
|
|
|
/* Expert info handles */
|
|
static expert_field ei_lbmc_analysis_length_incorrect = EI_INIT;
|
|
static expert_field ei_lbmc_analysis_zero_length = EI_INIT;
|
|
static expert_field ei_lbmc_analysis_tsni = EI_INIT;
|
|
static expert_field ei_lbmc_analysis_invalid_value = EI_INIT;
|
|
static expert_field ei_lbmc_analysis_no_reassembly = EI_INIT;
|
|
static expert_field ei_lbmc_analysis_invalid_offset = EI_INIT;
|
|
static expert_field ei_lbmc_analysis_missing_reassembly_frame = EI_INIT;
|
|
static expert_field ei_lbmc_analysis_invalid_fragment = EI_INIT;
|
|
|
|
/* Extended option reassembly structures. */
|
|
#define LBMC_EXTOPT_REASSEMBLED_DATA_MAX_LEN 65536
|
|
typedef struct
|
|
{
|
|
gboolean reassembly_in_progress;
|
|
guint16 subtype;
|
|
int len;
|
|
gchar data[LBMC_EXTOPT_REASSEMBLED_DATA_MAX_LEN];
|
|
} lbmc_extopt_reassembled_data_t;
|
|
|
|
/* Stream structures. */
|
|
typedef struct
|
|
{
|
|
gboolean set;
|
|
guint32 stream_id;
|
|
guint32 sqn;
|
|
gchar ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
} lbmc_stream_info_t;
|
|
|
|
typedef struct
|
|
{
|
|
gboolean set;
|
|
gchar ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
|
|
} lbmc_ctxinst_info_t;
|
|
|
|
typedef struct
|
|
{
|
|
gboolean set;
|
|
lbm_uim_stream_destination_t endpoint_a;
|
|
lbm_uim_stream_destination_t endpoint_b;
|
|
} lbmc_destination_info_t;
|
|
|
|
/* TCP session ID structures. */
|
|
typedef struct
|
|
{
|
|
gboolean set;
|
|
guint32 session_id;
|
|
} lbmc_tcp_sid_info_t;
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Message reassembly. */
|
|
/*----------------------------------------------------------------------------*/
|
|
#define LBMC_MESSAGE_KEY_ELEMENT_COUNT 5
|
|
#define LBMC_MESSAGE_KEY_ELEMENT_CHANNEL_HIGH 0
|
|
#define LBMC_MESSAGE_KEY_ELEMENT_CHANNEL_LOW 1
|
|
#define LBMC_MESSAGE_KEY_ELEMENT_ADDR 2
|
|
#define LBMC_MESSAGE_KEY_ELEMENT_PORT 3
|
|
#define LBMC_MESSAGE_KEY_ELEMENT_FIRST_SQN 4
|
|
|
|
static wmem_tree_t * lbmc_message_table = NULL;
|
|
|
|
typedef struct
|
|
{
|
|
int fragment_found;
|
|
guint32 first_sqn;
|
|
guint32 offset;
|
|
guint32 len;
|
|
} lbmc_fragment_info_t;
|
|
|
|
struct lbmc_fragment_entry_t_stct;
|
|
typedef struct lbmc_fragment_entry_t_stct lbmc_fragment_entry_t;
|
|
struct lbmc_fragment_entry_t_stct
|
|
{
|
|
lbmc_fragment_entry_t * prev;
|
|
lbmc_fragment_entry_t * next;
|
|
guint32 fragment_start;
|
|
guint32 fragment_len;
|
|
guint32 frame;
|
|
int frame_offset;
|
|
gchar * data;
|
|
};
|
|
|
|
typedef struct
|
|
{
|
|
guint64 channel;
|
|
address addr;
|
|
guint16 port;
|
|
guint32 first_sqn;
|
|
guint32 fragment_count;
|
|
guint32 total_len;
|
|
guint32 accumulated_len;
|
|
guint32 msgprop_len;
|
|
gboolean data_is_umq_cmd_resp;
|
|
lbmc_fragment_entry_t * entry;
|
|
guint32 reassembled_frame;
|
|
tvbuff_t * reassembled_data;
|
|
tvbuff_t * data;
|
|
tvbuff_t * msgprop;
|
|
} lbmc_message_entry_t;
|
|
|
|
static void lbmc_message_build_key(guint32 * key_value, wmem_tree_key_t * key, const lbmc_message_entry_t * message)
|
|
{
|
|
guint32 val;
|
|
|
|
key_value[LBMC_MESSAGE_KEY_ELEMENT_CHANNEL_HIGH] = (guint32) ((message->channel >> 32) & 0xffffffff);
|
|
key_value[LBMC_MESSAGE_KEY_ELEMENT_CHANNEL_LOW] = (guint32) ((message->channel & 0xffffffff) >> 32);
|
|
memcpy((void *) &val, (const void *) message->addr.data, sizeof(guint32));
|
|
key_value[LBMC_MESSAGE_KEY_ELEMENT_ADDR] = val;
|
|
key_value[LBMC_MESSAGE_KEY_ELEMENT_PORT] = (guint32) message->port;
|
|
key_value[LBMC_MESSAGE_KEY_ELEMENT_FIRST_SQN] = message->first_sqn;
|
|
key[0].length = LBMC_MESSAGE_KEY_ELEMENT_COUNT;
|
|
key[0].key = key_value;
|
|
key[1].length = 0;
|
|
key[1].key = NULL;
|
|
}
|
|
|
|
static lbmc_message_entry_t * lbmc_message_find(guint64 channel, const address * dest_address, guint16 port, lbmc_fragment_info_t * info)
|
|
{
|
|
lbmc_message_entry_t key;
|
|
lbmc_message_entry_t * entry = NULL;
|
|
guint32 keyval[LBMC_MESSAGE_KEY_ELEMENT_COUNT];
|
|
wmem_tree_key_t tkey[2];
|
|
|
|
memset((void *)&key, 0, sizeof(lbmc_message_entry_t));
|
|
key.channel = channel;
|
|
COPY_ADDRESS_SHALLOW(&(key.addr), dest_address);
|
|
key.port = port;
|
|
key.first_sqn = info->first_sqn;
|
|
lbmc_message_build_key(keyval, tkey, &key);
|
|
entry = (lbmc_message_entry_t *) wmem_tree_lookup32_array(lbmc_message_table, tkey);
|
|
return (entry);
|
|
}
|
|
|
|
static lbmc_message_entry_t * lbmc_message_create(guint64 channel, const address * dest_address, guint16 port, lbmc_fragment_info_t * info, guint32 msgprop_length)
|
|
{
|
|
lbmc_message_entry_t * entry = NULL;
|
|
guint32 keyval[LBMC_MESSAGE_KEY_ELEMENT_COUNT];
|
|
wmem_tree_key_t tkey[2];
|
|
|
|
entry = lbmc_message_find(channel, dest_address, port, info);
|
|
if (entry != NULL)
|
|
{
|
|
return (entry);
|
|
}
|
|
entry = wmem_new(wmem_file_scope(), lbmc_message_entry_t);
|
|
entry->channel = channel;
|
|
WMEM_COPY_ADDRESS(wmem_file_scope(), &(entry->addr), dest_address);
|
|
entry->port = port;
|
|
entry->first_sqn = info->first_sqn;
|
|
entry->fragment_count = 0;
|
|
entry->total_len = info->len;
|
|
entry->accumulated_len = 0;
|
|
entry->msgprop_len = msgprop_length;
|
|
entry->data_is_umq_cmd_resp = FALSE;
|
|
entry->entry = NULL;
|
|
entry->reassembled_frame = 0;
|
|
entry->reassembled_data = NULL;
|
|
entry->data = NULL;
|
|
entry->msgprop = NULL;
|
|
lbmc_message_build_key(keyval, tkey, entry);
|
|
wmem_tree_insert32_array(lbmc_message_table, tkey, (void *) entry);
|
|
return (entry);
|
|
}
|
|
|
|
static void lbmc_message_add_fragment(lbmc_message_entry_t * message, tvbuff_t * tvb, int data_offset, lbmc_fragment_info_t * info, guint32 frame)
|
|
{
|
|
lbmc_fragment_entry_t * frag = NULL;
|
|
lbmc_fragment_entry_t * cur = NULL;
|
|
|
|
if ((tvb == NULL) || (info == NULL) || (message == NULL))
|
|
{
|
|
return;
|
|
}
|
|
if (message->entry == NULL)
|
|
{
|
|
frag = wmem_new(wmem_file_scope(), lbmc_fragment_entry_t);
|
|
if (frag == NULL)
|
|
{
|
|
return;
|
|
}
|
|
frag->prev = NULL;
|
|
frag->next = NULL;
|
|
message->entry = frag;
|
|
}
|
|
else
|
|
{
|
|
cur = message->entry;
|
|
while (cur != NULL)
|
|
{
|
|
if (info->offset == cur->fragment_start)
|
|
{
|
|
/* Already have this fragment */
|
|
return;
|
|
}
|
|
if (info->offset < cur->fragment_start)
|
|
{
|
|
/* Fragment goes after cur->prev */
|
|
cur = cur->prev;
|
|
break;
|
|
}
|
|
if (cur->next == NULL)
|
|
{
|
|
/* Fragment goes after cur */
|
|
break;
|
|
}
|
|
cur = cur->next;
|
|
}
|
|
frag = wmem_new(wmem_file_scope(), lbmc_fragment_entry_t);
|
|
if (frag == NULL)
|
|
{
|
|
return;
|
|
}
|
|
if (cur == NULL)
|
|
{
|
|
frag->prev = NULL;
|
|
frag->next = message->entry;
|
|
message->entry->prev = frag;
|
|
message->entry = frag;
|
|
}
|
|
else
|
|
{
|
|
frag->prev = cur;
|
|
frag->next = cur->next;
|
|
cur->next = frag;
|
|
if (frag->next != NULL)
|
|
{
|
|
frag->next->prev = frag;
|
|
}
|
|
}
|
|
}
|
|
frag->fragment_start = info->offset;
|
|
frag->fragment_len = tvb_reported_length_remaining(tvb, data_offset);
|
|
frag->data = (gchar *) tvb_memdup(wmem_file_scope(), tvb, data_offset, frag->fragment_len);
|
|
frag->frame = frame;
|
|
frag->frame_offset = data_offset;
|
|
message->accumulated_len += frag->fragment_len;
|
|
message->fragment_count++;
|
|
}
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Message table/reassembly functions. */
|
|
/*----------------------------------------------------------------------------*/
|
|
static void lbmc_init_extopt_reassembled_data(lbmc_extopt_reassembled_data_t * reassembly)
|
|
{
|
|
reassembly->reassembly_in_progress = FALSE;
|
|
reassembly->subtype = 0;
|
|
reassembly->len = 0;
|
|
memset((void *)&(reassembly->data), 0, sizeof(reassembly->data));
|
|
}
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Dissection functions. */
|
|
/*----------------------------------------------------------------------------*/
|
|
static int dissect_nhdr_frag(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_fragment_info_t * frag_info)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_frag_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_frag, tvb, offset, L_LBMC_FRAG_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_frag);
|
|
proto_tree_add_item(subtree, hf_lbmc_frag_next_hdr, tvb, offset + O_LBMC_FRAG_HDR_T_NEXT_HDR, L_LBMC_FRAG_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_frag_hdr_len, tvb, offset + O_LBMC_FRAG_HDR_T_HDR_LEN, L_LBMC_FRAG_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_FRAG_HDR_T_FLAGS, hf_lbmc_frag_flags, ett_lbmc_frag, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_frag_first_sqn, tvb, offset + O_LBMC_FRAG_HDR_T_FIRST_SQN, L_LBMC_FRAG_HDR_T_FIRST_SQN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_frag_offset, tvb, offset + O_LBMC_FRAG_HDR_T_OFFSET, L_LBMC_FRAG_HDR_T_OFFSET, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_frag_len, tvb, offset + O_LBMC_FRAG_HDR_T_LEN, L_LBMC_FRAG_HDR_T_LEN, ENC_BIG_ENDIAN);
|
|
if (frag_info != NULL)
|
|
{
|
|
frag_info->fragment_found = 1;
|
|
frag_info->first_sqn = tvb_get_ntohl(tvb, offset + O_LBMC_FRAG_HDR_T_FIRST_SQN);
|
|
frag_info->offset = tvb_get_ntohl(tvb, offset + O_LBMC_FRAG_HDR_T_OFFSET);
|
|
frag_info->len = tvb_get_ntohl(tvb, offset + O_LBMC_FRAG_HDR_T_LEN);
|
|
}
|
|
return (L_LBMC_FRAG_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_batch(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_batch_flags_ignore,
|
|
&hf_lbmc_batch_flags_batch_start,
|
|
&hf_lbmc_batch_flags_batch_end,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_batch, tvb, offset, L_LBMC_BATCH_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_batch);
|
|
proto_tree_add_item(subtree, hf_lbmc_batch_next_hdr, tvb, offset + O_LBMC_BATCH_HDR_T_NEXT_HDR, L_LBMC_BATCH_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_batch_hdr_len, tvb, offset + O_LBMC_BATCH_HDR_T_HDR_LEN, L_LBMC_BATCH_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_BATCH_HDR_T_FLAGS, hf_lbmc_batch_flags, ett_lbmc_batch_flags, flags, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_BATCH_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_request(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_tcp_request_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_tcp_request, tvb, offset, L_LBMC_TCP_REQUEST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tcp_request);
|
|
proto_tree_add_item(subtree, hf_lbmc_tcp_request_next_hdr, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_NEXT_HDR, L_LBMC_TCP_REQUEST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tcp_request_hdr_len, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_HDR_LEN, L_LBMC_TCP_REQUEST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_FLAGS, hf_lbmc_tcp_request_flags, ett_lbmc_tcp_request_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tcp_request_transport, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_TRANSPORT, L_LBMC_TCP_REQUEST_HDR_T_TRANSPORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tcp_request_qidx, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_QIDX, L_LBMC_TCP_REQUEST_HDR_T_QIDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tcp_request_port, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_PORT, L_LBMC_TCP_REQUEST_HDR_T_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tcp_request_reserved, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_RESERVED, L_LBMC_TCP_REQUEST_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tcp_request_ipaddr, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_IPADDR, L_LBMC_TCP_REQUEST_HDR_T_IPADDR, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_TCP_REQUEST_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_topicname(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_topicname_flags_ignore,
|
|
NULL
|
|
};
|
|
int len_dissected = 0;
|
|
int namelen = 0;
|
|
proto_item * hdrlen_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_TOPICNAME_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_topicname, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topicname);
|
|
proto_tree_add_item(subtree, hf_lbmc_topicname_next_hdr, tvb, offset + O_LBMC_TOPICNAME_HDR_T_NEXT_HDR, L_LBMC_TOPICNAME_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_topicname_hdr_len, tvb, offset + O_LBMC_TOPICNAME_HDR_T_HDR_LEN, L_LBMC_TOPICNAME_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_TOPICNAME_HDR_T_FLAGS, hf_lbmc_topicname_flags, ett_lbmc_topicname_flags, flags, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_BASIC_HDR_T;
|
|
namelen = (int) hdrlen - len_dissected;
|
|
if (namelen > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_topicname_topicname, tvb, offset + O_LBMC_TOPICNAME_HDR_T_FLAGS + L_LBMC_TOPICNAME_HDR_T_FLAGS, namelen, ENC_ASCII | ENC_NA);
|
|
len_dissected += namelen;
|
|
}
|
|
else
|
|
{
|
|
expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_apphdr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
int len_dissected = 0;
|
|
int datalen = 0;
|
|
proto_item * hdrlen_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_APPHDR_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_apphdr, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_apphdr);
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_next_hdr, tvb, offset + O_LBMC_APPHDR_HDR_T_NEXT_HDR, L_LBMC_APPHDR_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_apphdr_hdr_len, tvb, offset + O_LBMC_APPHDR_HDR_T_HDR_LEN, L_LBMC_APPHDR_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_ignore, tvb, offset + O_LBMC_APPHDR_HDR_T_CODE, L_LBMC_APPHDR_HDR_T_CODE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_code, tvb, offset + O_LBMC_APPHDR_HDR_T_CODE, L_LBMC_APPHDR_HDR_T_CODE, ENC_BIG_ENDIAN);
|
|
len_dissected = O_LBMC_APPHDR_HDR_T_CODE + L_LBMC_APPHDR_HDR_T_CODE;
|
|
datalen = (int) hdrlen - len_dissected;
|
|
if (datalen > 0)
|
|
{
|
|
proto_tree_add_none_format(subtree, hf_lbmc_apphdr_data, tvb, O_LBMC_APPHDR_HDR_T_CODE + L_LBMC_APPHDR_HDR_T_CODE, datalen, "Data (%u bytes)", datalen);
|
|
len_dissected += datalen;
|
|
}
|
|
else
|
|
{
|
|
expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_apphdr_chain_element(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, guint8 element)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
proto_item * hdrlen_item;
|
|
int datalen = 0;
|
|
int len_dissected = 0;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_APPHDR_CHAIN_ELEMENT_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_none_format(tree, hf_lbmc_apphdr_chain_element, tvb, offset, (gint)hdrlen, "%s element", val_to_str(element, lbmc_apphdr_chain_type, "Unknown (0x%02x)"));
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_apphdr_chain_element);
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_element_next_hdr, tvb, offset + O_LBMC_APPHDR_CHAIN_ELEMENT_T_NEXT_HDR, L_LBMC_APPHDR_CHAIN_ELEMENT_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_element_hdr_len, tvb, offset + O_LBMC_APPHDR_CHAIN_ELEMENT_T_HDR_LEN, L_LBMC_APPHDR_CHAIN_ELEMENT_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
if (hdrlen == 0)
|
|
{
|
|
expert_add_info_format(pinfo, hdrlen_item, &ei_lbmc_analysis_zero_length, "Element header length is zero");
|
|
return ((int)hdrlen);
|
|
}
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_element_res, tvb, offset + O_LBMC_APPHDR_CHAIN_ELEMENT_T_RES, L_LBMC_APPHDR_CHAIN_ELEMENT_T_RES, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_APPHDR_CHAIN_ELEMENT_T_MIN;
|
|
datalen = (int) hdrlen - len_dissected;
|
|
if (datalen > 0)
|
|
{
|
|
proto_tree_add_none_format(subtree, hf_lbmc_apphdr_chain_element_data, tvb, offset + O_LBMC_APPHDR_CHAIN_ELEMENT_T_RES + L_LBMC_APPHDR_CHAIN_ELEMENT_T_RES, datalen, "Data (%u bytes)", datalen);
|
|
len_dissected += datalen;
|
|
}
|
|
else
|
|
{
|
|
expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_apphdr_chain_msgprop_element(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, guint8 element, guint32 * msg_prop_len)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
guint32 datalen;
|
|
int len_dissected = 0;
|
|
proto_item * hdrlen_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_none_format(tree, hf_lbmc_apphdr_chain_msgprop, tvb, offset, (gint)hdrlen, "%s element", val_to_str(element, lbmc_apphdr_chain_type, "Unknown (0x%02x)"));
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_apphdr_chain_msgprop);
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_msgprop_next_hdr, tvb, offset + O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_NEXT_HDR, L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_msgprop_hdr_len, tvb, offset + O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_HDR_LEN, L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
if (hdrlen == 0)
|
|
{
|
|
expert_add_info_format(pinfo, hdrlen_item, &ei_lbmc_analysis_zero_length, "Element header length is zero");
|
|
return ((int)hdrlen);
|
|
}
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_msgprop_res, tvb, offset + O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_RES, L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_RES, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_msgprop_len, tvb, offset + O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_LEN, L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_LEN, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T;
|
|
datalen = tvb_get_ntohl(tvb, offset + O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_LEN);
|
|
if (msg_prop_len != NULL)
|
|
{
|
|
*msg_prop_len += datalen;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_apphdr_chain(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, guint32 * msg_prop_len)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
guint8 datalen = 0;
|
|
int elem_offset = 0;
|
|
int elem_len = 0;
|
|
guint8 elem = 0;
|
|
int len_dissected = 0;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_APPHDR_CHAIN_HDR_T_HDR_LEN);
|
|
datalen = hdrlen - L_LBMC_APPHDR_CHAIN_HDR_T;
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_apphdr_chain, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_apphdr_chain);
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_next_hdr, tvb, offset + O_LBMC_APPHDR_CHAIN_HDR_T_NEXT_HDR, L_LBMC_APPHDR_CHAIN_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_hdr_len, tvb, offset + O_LBMC_APPHDR_CHAIN_HDR_T_HDR_LEN, L_LBMC_APPHDR_CHAIN_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_res, tvb, offset + O_LBMC_APPHDR_CHAIN_HDR_T_RES, L_LBMC_APPHDR_CHAIN_HDR_T_RES, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_apphdr_chain_first_chain_hdr, tvb, offset + O_LBMC_APPHDR_CHAIN_HDR_T_FIRST_CHAIN_HDR, L_LBMC_APPHDR_CHAIN_HDR_T_FIRST_CHAIN_HDR, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_APPHDR_CHAIN_HDR_T;
|
|
elem_offset = offset + L_LBMC_APPHDR_CHAIN_HDR_T;
|
|
elem = tvb_get_guint8(tvb, offset + O_LBMC_APPHDR_CHAIN_HDR_T_FIRST_CHAIN_HDR);
|
|
while (datalen > 0)
|
|
{
|
|
switch (elem)
|
|
{
|
|
case LBM_CHAIN_ELEM_PROPERTIES_LENGTH:
|
|
elem_len = dissect_nhdr_apphdr_chain_msgprop_element(tvb, elem_offset, pinfo, subtree, elem, msg_prop_len);
|
|
break;
|
|
default:
|
|
elem_len = dissect_nhdr_apphdr_chain_element(tvb, elem_offset, pinfo, subtree, elem);
|
|
break;
|
|
}
|
|
if (elem_len == 0)
|
|
{
|
|
return (len_dissected);
|
|
}
|
|
elem_offset += elem_len;
|
|
datalen -= elem_len;
|
|
len_dissected += elem_len;
|
|
if (datalen >= L_LBMC_APPHDR_CHAIN_ELEMENT_T_MIN)
|
|
{
|
|
elem = tvb_get_guint8(tvb, elem_offset + O_LBMC_APPHDR_CHAIN_ELEMENT_T_NEXT_HDR);
|
|
}
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_msgid(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_msgid_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_msgid, tvb, offset, L_LBMC_UMQ_MSGID_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_msgid);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_msgid_next_hdr, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_NEXT_HDR, L_LBMC_UMQ_MSGID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_msgid_hdr_len, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_HDR_LEN, L_LBMC_UMQ_MSGID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_FLAGS, hf_lbmc_umq_msgid_flags, ett_lbmc_umq_msgid_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_msgid_msgid_regid, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_MSGID_REGID, L_LBMC_UMQ_MSGID_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_msgid_msgid_stamp, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_MSGID_STAMP, L_LBMC_UMQ_MSGID_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_UMQ_MSGID_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_sqd_rcv(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, gboolean * data_is_response)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_sqd_rcv_flags_ignore,
|
|
&hf_lbmc_umq_sqd_rcv_flags_r_flag,
|
|
&hf_lbmc_umq_sqd_rcv_flags_s_flag,
|
|
&hf_lbmc_umq_sqd_rcv_flags_re_flag,
|
|
&hf_lbmc_umq_sqd_rcv_flags_eoi_flag,
|
|
&hf_lbmc_umq_sqd_rcv_flags_boi_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_sqd_rcv, tvb, offset, L_LBMC_UMQ_SQD_RCV_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_sqd_rcv);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_next_hdr, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_NEXT_HDR, L_LBMC_UMQ_SQD_RCV_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_hdr_len, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_HDR_LEN, L_LBMC_UMQ_SQD_RCV_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, hf_lbmc_umq_sqd_rcv_flags, ett_lbmc_umq_sqd_rcv_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_queue_id, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_ID, L_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_queue_ver, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_VER, L_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_VER, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_rcr_idx, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_RCR_IDX, L_LBMC_UMQ_SQD_RCV_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_assign_id, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_ASSIGN_ID, L_LBMC_UMQ_SQD_RCV_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
if (data_is_response != NULL)
|
|
{
|
|
guint32 rcr_index;
|
|
|
|
rcr_index = tvb_get_ntohl(tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_RCR_IDX);
|
|
if (rcr_index == 0)
|
|
{
|
|
*data_is_response = TRUE;
|
|
}
|
|
else
|
|
{
|
|
*data_is_response = FALSE;
|
|
}
|
|
}
|
|
return (L_LBMC_UMQ_SQD_RCV_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_resub(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_resub_flags_ignore,
|
|
&hf_lbmc_umq_resub_flags_q_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_resub, tvb, offset, L_LBMC_UMQ_RESUB_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_resub);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_next_hdr, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_NEXT_HDR, L_LBMC_UMQ_RESUB_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_hdr_len, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_HDR_LEN, L_LBMC_UMQ_RESUB_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_FLAGS, hf_lbmc_umq_resub_flags, ett_lbmc_umq_resub_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_rcr_idx, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_RCR_IDX, L_LBMC_UMQ_RESUB_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_ip, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_RESP_IP, L_LBMC_UMQ_RESUB_HDR_T_RESP_IP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_port, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_RESP_PORT, L_LBMC_UMQ_RESUB_HDR_T_RESP_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_appset_idx, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_APPSET_IDX, L_LBMC_UMQ_RESUB_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_UMQ_RESUB_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_otid(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_otid_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_otid, tvb, offset, L_LBMC_OTID_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_otid);
|
|
proto_tree_add_item(subtree, hf_lbmc_otid_next_hdr, tvb, offset + O_LBMC_OTID_HDR_T_NEXT_HDR, L_LBMC_OTID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_otid_hdr_len, tvb, offset + O_LBMC_OTID_HDR_T_HDR_LEN, L_LBMC_OTID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_OTID_HDR_T_FLAGS, hf_lbmc_otid_flags, ett_lbmc_otid_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_otid_otid, tvb, offset + O_LBMC_OTID_HDR_T_OTID, L_LBMC_OTID_HDR_T_OTID, ENC_NA);
|
|
return (L_LBMC_OTID_HDR_T);
|
|
}
|
|
|
|
static void dissect_ctxinst(tvbuff_t * tvb, int offset, proto_tree * tree, lbmc_ctxinst_info_t * info)
|
|
{
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ctxinst_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
proto_tree_add_item(tree, hf_lbmc_ctxinst_next_hdr, tvb, offset + O_LBMC_CTXINST_HDR_T_NEXT_HDR, L_LBMC_CTXINST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_lbmc_ctxinst_hdr_len, tvb, offset + O_LBMC_CTXINST_HDR_T_HDR_LEN, L_LBMC_CTXINST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(tree, tvb, offset + O_LBMC_CTXINST_HDR_T_FLAGS, hf_lbmc_ctxinst_flags, ett_lbmc_ctxinst_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(tree, hf_lbmc_ctxinst_ctxinst, tvb, offset + O_LBMC_CTXINST_HDR_T_CTXINST, L_LBMC_CTXINST_HDR_T_CTXINST, ENC_NA);
|
|
if (info != NULL)
|
|
{
|
|
info->set = TRUE;
|
|
tvb_memcpy(tvb, (void *)&(info->ctxinst), offset + O_LBMC_CTXINST_HDR_T_CTXINST, L_LBMC_CTXINST_HDR_T_CTXINST);
|
|
}
|
|
}
|
|
|
|
static int dissect_nhdr_ctxinstd(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_ctxinst_info_t * info)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ctxinstd, tvb, offset, L_LBMC_CTXINST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ctxinstd);
|
|
dissect_ctxinst(tvb, offset, subtree, info);
|
|
return (L_LBMC_CTXINST_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ctxinstr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_ctxinst_info_t * info)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ctxinstr, tvb, offset, L_LBMC_CTXINST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ctxinstr);
|
|
dissect_ctxinst(tvb, offset, subtree, info);
|
|
return (L_LBMC_CTXINST_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ctxinst(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_ctxinst_info_t * info)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ctxinst, tvb, offset, L_LBMC_CTXINST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ctxinst);
|
|
dissect_ctxinst(tvb, offset, subtree, info);
|
|
return (L_LBMC_CTXINST_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_srcidx(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_srcidx_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_srcidx, tvb, offset, L_LBMC_SRCIDX_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_srcidx);
|
|
proto_tree_add_item(subtree, hf_lbmc_srcidx_next_hdr, tvb, offset + O_LBMC_SRCIDX_HDR_T_NEXT_HDR, L_LBMC_SRCIDX_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_srcidx_hdr_len, tvb, offset + O_LBMC_SRCIDX_HDR_T_HDR_LEN, L_LBMC_SRCIDX_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_SRCIDX_HDR_T_FLAGS, hf_lbmc_srcidx_flags, ett_lbmc_srcidx_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_srcidx_srcidx, tvb, offset + O_LBMC_SRCIDX_HDR_T_SRCIDX, L_LBMC_SRCIDX_HDR_T_SRCIDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_SRCIDX_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ulb_msg(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_ulb_msg_flags_ignore,
|
|
&hf_lbmc_umq_ulb_msg_flags_a_flag,
|
|
&hf_lbmc_umq_ulb_msg_flags_r_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ulb_msg, tvb, offset, L_LBMC_UMQ_ULB_MSG_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ulb_msg);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_next_hdr, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_NEXT_HDR, L_LBMC_UMQ_ULB_MSG_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_hdr_len, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_HDR_LEN, L_LBMC_UMQ_ULB_MSG_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS, hf_lbmc_umq_ulb_msg_flags, ett_lbmc_umq_ulb_msg, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_queue_id, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_QUEUE_ID, L_LBMC_UMQ_ULB_MSG_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_ulb_src_id, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_ULB_SRC_ID, L_LBMC_UMQ_ULB_MSG_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_assign_id, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_ASSIGN_ID, L_LBMC_UMQ_ULB_MSG_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_appset_idx, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_APPSET_IDX, L_LBMC_UMQ_ULB_MSG_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_num_ras, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_NUM_RAS, L_LBMC_UMQ_ULB_MSG_HDR_T_NUM_RAS, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_UMQ_ULB_MSG_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ssf_init(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ssf_init_flags_ignore,
|
|
&hf_lbmc_ssf_init_flags_default_exclusions,
|
|
&hf_lbmc_ssf_init_flags_default_inclusions,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ssf_init, tvb, offset, L_LBMC_CNTL_SSF_INIT_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ssf_init);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_init_next_hdr, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_NEXT_HDR, L_LBMC_CNTL_SSF_INIT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_init_hdr_len, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_HDR_LEN, L_LBMC_CNTL_SSF_INIT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS, hf_lbmc_ssf_init_flags, ett_lbmc_ssf_init, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_init_transport, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT, L_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_init_transport_idx, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_init_client_idx, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_CLIENT_IDX, L_LBMC_CNTL_SSF_INIT_HDR_T_CLIENT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_init_ssf_port, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_SSF_PORT, L_LBMC_CNTL_SSF_INIT_HDR_T_SSF_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_init_res, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_RES, L_LBMC_CNTL_SSF_INIT_HDR_T_RES, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_init_ssf_ip, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_SSF_IP, L_LBMC_CNTL_SSF_INIT_HDR_T_SSF_IP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_SSF_INIT_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ssf_creq(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ssf_creq_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ssf_creq, tvb, offset, L_LBMC_CNTL_SSF_CREQ_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ssf_creq);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_creq_next_hdr, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_SSF_CREQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_creq_hdr_len, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_HDR_LEN, L_LBMC_CNTL_SSF_CREQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS, hf_lbmc_ssf_creq_flags, ett_lbmc_ssf_creq, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_creq_mode, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_MODE, L_LBMC_CNTL_SSF_CREQ_HDR_T_MODE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_creq_transport_idx, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_SSF_CREQ_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_creq_topic_idx, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_TOPIC_IDX, L_LBMC_CNTL_SSF_CREQ_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ssf_creq_client_idx, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_CLIENT_IDX, L_LBMC_CNTL_SSF_CREQ_HDR_T_CLIENT_IDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_SSF_CREQ_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_preg(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_preg_flags_ignore,
|
|
&hf_lbmc_ume_preg_flags_f_flag,
|
|
&hf_lbmc_ume_preg_flags_p_flag,
|
|
&hf_lbmc_ume_preg_flags_w_flag,
|
|
&hf_lbmc_ume_preg_flags_d_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_preg, tvb, offset, L_LBMC_CNTL_UME_PREG_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_preg);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_next_hdr, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_PREG_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_hdr_len, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_PREG_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, hf_lbmc_ume_preg_flags, ett_lbmc_ume_preg_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_s_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_HDR_T_MARKER, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_marker, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_HDR_T_MARKER, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_reg_id, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_REG_ID, L_LBMC_CNTL_UME_PREG_HDR_T_REG_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_transport_idx, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_PREG_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_topic_idx, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_TOPIC_IDX, L_LBMC_CNTL_UME_PREG_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_src_reg_id, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_SRC_REG_ID, L_LBMC_CNTL_UME_PREG_HDR_T_SRC_REG_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_port, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_RESP_PORT, L_LBMC_CNTL_UME_PREG_HDR_T_RESP_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_res2, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_RES2, L_LBMC_CNTL_UME_PREG_HDR_T_RES2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_ip, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_RESP_IP, L_LBMC_CNTL_UME_PREG_HDR_T_RESP_IP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_PREG_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_preg_resp(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 code = 0;
|
|
static const int * codes[] =
|
|
{
|
|
&hf_lbmc_ume_preg_resp_code_ignore,
|
|
&hf_lbmc_ume_preg_resp_code_o_flag,
|
|
&hf_lbmc_ume_preg_resp_code_e_flag,
|
|
&hf_lbmc_ume_preg_resp_code_n_flag,
|
|
&hf_lbmc_ume_preg_resp_code_w_flag,
|
|
&hf_lbmc_ume_preg_resp_code_d_flag,
|
|
NULL
|
|
};
|
|
static const int * codes_e[] =
|
|
{
|
|
&hf_lbmc_ume_preg_resp_code_ignore,
|
|
&hf_lbmc_ume_preg_resp_code_o_flag,
|
|
&hf_lbmc_ume_preg_resp_code_e_flag,
|
|
&hf_lbmc_ume_preg_resp_code_code,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_preg_resp, tvb, offset, L_LBMC_CNTL_UME_PREG_RESP_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_preg_resp);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_next_hdr, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_hdr_len, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
code = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE);
|
|
if ((code & LBMC_UME_PREG_RESP_E_FLAG) == 0)
|
|
{
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, hf_lbmc_ume_preg_resp_code, ett_lbmc_ume_preg_resp_code, codes, ENC_BIG_ENDIAN);
|
|
}
|
|
else
|
|
{
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, hf_lbmc_ume_preg_resp_code, ett_lbmc_ume_preg_resp_code, codes_e, ENC_BIG_ENDIAN);
|
|
}
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_s_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_marker, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_reg_id, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_REG_ID, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_REG_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_transport_idx, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_topic_idx, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_TOPIC_IDX, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_low_seqnum, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_LOW_SEQNUM, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_LOW_SEQNUM, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_high_seqnum, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_HIGH_SEQNUM, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_HIGH_SEQNUM, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_PREG_RESP_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_ack(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_ack_flags_ignore,
|
|
&hf_lbmc_ume_ack_flags_o_flag,
|
|
&hf_lbmc_ume_ack_flags_f_flag,
|
|
&hf_lbmc_ume_ack_flags_u_flag,
|
|
&hf_lbmc_ume_ack_flags_e_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_ack, tvb, offset, L_LBMC_CNTL_UME_ACK_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_ack);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ack_next_hdr, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_ACK_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ack_hdr_len, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_ACK_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, hf_lbmc_ume_ack_flags, ett_lbmc_ume_ack_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ack_type, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_TYPE, L_LBMC_CNTL_UME_ACK_HDR_T_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ack_transport_idx, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_ACK_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ack_id_2, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_ID_2, L_LBMC_CNTL_UME_ACK_HDR_T_ID_2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ack_rcv_reg_id, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_RCV_REG_ID, L_LBMC_CNTL_UME_ACK_HDR_T_RCV_REG_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ack_seqnum, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_SEQNUM, L_LBMC_CNTL_UME_ACK_HDR_T_SEQNUM, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_ACK_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_rxreq(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_rxreq_flags_ignore,
|
|
&hf_lbmc_ume_rxreq_flags_tsni_req,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_rxreq, tvb, offset, L_LBMC_CNTL_UME_RXREQ_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_rxreq);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_next_hdr, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_RXREQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_hdr_len, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_RXREQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, hf_lbmc_ume_rxreq_flags, ett_lbmc_ume_rxreq_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_marker, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_request_idx, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_REQUEST_IDX, L_LBMC_CNTL_UME_RXREQ_HDR_T_REQUEST_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_transport_idx, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_RXREQ_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_id_2, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_ID_2, L_LBMC_CNTL_UME_RXREQ_HDR_T_ID_2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_seqnum, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_SEQNUM, L_LBMC_CNTL_UME_RXREQ_HDR_T_SEQNUM, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_rx_port, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_RX_PORT, L_LBMC_CNTL_UME_RXREQ_HDR_T_RX_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_res, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_RES, L_LBMC_CNTL_UME_RXREQ_HDR_T_RES, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_rx_ip, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_RX_IP, L_LBMC_CNTL_UME_RXREQ_HDR_T_RX_IP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_RXREQ_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_keepalive(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_keepalive_flags_ignore,
|
|
&hf_lbmc_ume_keepalive_flags_r_flag,
|
|
&hf_lbmc_ume_keepalive_flags_t_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_keepalive, tvb, offset, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_keepalive);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_next_hdr, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_hdr_len, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS, hf_lbmc_ume_keepalive_flags, ett_lbmc_ume_keepalive_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_type, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TYPE, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_transport_idx, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_topic_idx, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TOPIC_IDX, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_reg_id, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_REG_ID, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_REG_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_KEEPALIVE_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_storeid(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_storeid, tvb, offset, L_LBMC_CNTL_UME_STOREID_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_storeid);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_storeid_next_hdr, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_STOREID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_storeid_hdr_len, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_STOREID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_storeid_ignore, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_storeid_store_id, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_STOREID_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_ranged_ack(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_ranged_ack_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_ranged_ack, tvb, offset, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_ranged_ack);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ranged_ack_next_hdr, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ranged_ack_hdr_len, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS, hf_lbmc_ume_ranged_ack_flags, ett_lbmc_ume_ranged_ack_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ranged_ack_first_seqnum, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FIRST_SEQNUM, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FIRST_SEQNUM, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ranged_ack_last_seqnum, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_LAST_SEQNUM, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_LAST_SEQNUM, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_RANGED_ACK_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_ack_id(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_ack_id_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_ack_id, tvb, offset, L_LBMC_CNTL_UME_ACK_ID_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_ack_id);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ack_id_next_hdr, tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_ACK_ID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ack_id_hdr_len, tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_ACK_ID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS, hf_lbmc_ume_ack_id_flags, ett_lbmc_ume_ack_id_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_ack_id_id, tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_ID, L_LBMC_CNTL_UME_ACK_ID_HDR_T_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_ACK_ID_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_capability(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_capability_flags_ignore,
|
|
&hf_lbmc_ume_capability_flags_qc_flag,
|
|
&hf_lbmc_ume_capability_flags_client_lifetime_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_capability, tvb, offset, L_LBMC_CNTL_UME_CAPABILITY_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_capability);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_capability_next_hdr, tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_capability_hdr_len, tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS, hf_lbmc_ume_capability_flags, ett_lbmc_ume_capability_flags, flags, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_CAPABILITY_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_proxy_src(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_proxy_src_flags_ignore,
|
|
&hf_lbmc_ume_proxy_src_flags_enable,
|
|
&hf_lbmc_ume_proxy_src_flags_compatibility,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_proxy_src, tvb, offset, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_proxy_src);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_proxy_src_next_hdr, tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_proxy_src_hdr_len, tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS, hf_lbmc_ume_proxy_src_flags, ett_lbmc_ume_proxy_src_flags, flags, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_PROXY_SRC_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_store_group(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_store_group_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store_group, tvb, offset, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store_group);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_group_next_hdr, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_group_hdr_len, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS, hf_lbmc_ume_store_group_flags, ett_lbmc_ume_store_group_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_group_grp_idx, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_IDX, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_group_grp_sz, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_SZ, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_SZ, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_group_res1, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_RES1, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_RES1, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_STORE_GROUP_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_store(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_store_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store, tvb, offset, L_LBMC_CNTL_UME_STORE_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_next_hdr, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_STORE_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_hdr_len, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_STORE_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_FLAGS, hf_lbmc_ume_store_flags, ett_lbmc_ume_store_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_grp_idx, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_GRP_IDX, L_LBMC_CNTL_UME_STORE_HDR_T_GRP_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_store_tcp_port, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_STORE_TCP_PORT, L_LBMC_CNTL_UME_STORE_HDR_T_STORE_TCP_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_store_idx, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_STORE_IDX, L_LBMC_CNTL_UME_STORE_HDR_T_STORE_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_store_ip_addr, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_STORE_IP_ADDR, L_LBMC_CNTL_UME_STORE_HDR_T_STORE_IP_ADDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_src_reg_id, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_SRC_REG_ID, L_LBMC_CNTL_UME_STORE_HDR_T_SRC_REG_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_STORE_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_lj_info(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_lj_info_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_lj_info, tvb, offset, L_LBMC_CNTL_UME_LJ_INFO_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_lj_info);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_lj_info_next_hdr, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_lj_info_hdr_len, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS, hf_lbmc_ume_lj_info_flags, ett_lbmc_ume_lj_info_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_lj_info_low_seqnum, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_LOW_SEQNUM, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_LOW_SEQNUM, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_lj_info_high_seqnum, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_HIGH_SEQNUM, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_HIGH_SEQNUM, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_lj_info_qidx, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_QIDX, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_QIDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_LJ_INFO_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_tsni_rec(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
proto_item * sqn_item = NULL;
|
|
guint32 sqn = 0;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_tsni_rec, tvb, offset, L_LBMC_CNTL_TSNI_REC_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tsni_rec);
|
|
proto_tree_add_item(subtree, hf_lbmc_tsni_rec_tidx, tvb, offset + O_LBMC_CNTL_TSNI_REC_HDR_T_TIDX, L_LBMC_CNTL_TSNI_REC_HDR_T_TIDX, ENC_BIG_ENDIAN);
|
|
sqn_item = proto_tree_add_item(subtree, hf_lbmc_tsni_rec_sqn, tvb, offset + O_LBMC_CNTL_TSNI_REC_HDR_T_SQN, L_LBMC_CNTL_TSNI_REC_HDR_T_SQN, ENC_BIG_ENDIAN);
|
|
sqn = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_TSNI_REC_HDR_T_SQN);
|
|
expert_add_info_format(pinfo, sqn_item, &ei_lbmc_analysis_tsni, "TSNI Sqn 0x%08x", sqn);
|
|
return (L_LBMC_CNTL_TSNI_REC_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_tsni(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
guint8 hdrlen_remaining;
|
|
int rec_offset = 0;
|
|
int len_dissected = 0;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_tsni, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tsni);
|
|
proto_tree_add_item(subtree, hf_lbmc_tsni_next_hdr, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_NEXT_HDR, L_LBMC_CNTL_TSNI_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tsni_hdr_len, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_HDR_LEN, L_LBMC_CNTL_TSNI_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tsni_ignore, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tsni_num_recs, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_TSNI_HDR_T;
|
|
hdrlen_remaining = hdrlen - L_LBMC_CNTL_TSNI_HDR_T;
|
|
rec_offset = L_LBMC_CNTL_TSNI_HDR_T;
|
|
while (hdrlen_remaining >= L_LBMC_CNTL_TSNI_REC_HDR_T)
|
|
{
|
|
int reclen;
|
|
|
|
reclen = dissect_nhdr_tsni_rec(tvb, offset + rec_offset, pinfo, subtree);
|
|
hdrlen_remaining -= reclen;
|
|
rec_offset += reclen;
|
|
len_dissected += reclen;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_ctx(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_reg_ctx, tvb, offset, L_LBMC_CNTL_UMQ_REG_CTX_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_reg_ctx);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ctx_port, tvb, offset + O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_PORT, L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ctx_reserved, tvb, offset + O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ctx_ip, tvb, offset + O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_IP, L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_IP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ctx_capabilities, tvb, offset + O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_CAPABILITIES, L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_CAPABILITIES, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_CTX_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_src(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_reg_src, tvb, offset, L_LBMC_CNTL_UMQ_REG_SRC_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_reg_src);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_src_transport_idx, tvb, offset + O_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_src_topic_idx, tvb, offset + O_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TOPIC_IDX, L_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_SRC_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_rcv(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_reg_rcv, tvb, offset, L_LBMC_CNTL_UMQ_REG_RCV_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_reg_rcv);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_rcv_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_RCV_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_REG_RCV_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_rcv_rcv_type_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_RCV_HDR_T_RCV_TYPE_ID, L_LBMC_CNTL_UMQ_REG_RCV_HDR_T_RCV_TYPE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_rcv_last_topic_rcr_tsp, tvb, offset + O_LBMC_CNTL_UMQ_REG_RCV_HDR_T_LAST_TOPIC_RCR_TSP, L_LBMC_CNTL_UMQ_REG_RCV_HDR_T_LAST_TOPIC_RCR_TSP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_RCV_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rcv_dereg(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_rcv_dereg, tvb, offset, L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_rcv_dereg);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_rcv_dereg_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_rcv_dereg_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_ulb_rcv(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_reg_ulb_rcv, tvb, offset, L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_reg_ulb_rcv);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ulb_rcv_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ulb_rcv_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ulb_rcv_rcv_type_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_RCV_TYPE_ID, L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_RCV_TYPE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ulb_rcv_port, tvb, offset + O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_PORT, L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ulb_rcv_reserved, tvb, offset + O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ulb_rcv_ip, tvb, offset + O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_IP, L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_IP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_ulb_rcv_capabilities, tvb, offset + O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_CAPABILITIES, L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_CAPABILITIES, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ulb_rcv_dereg(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_ulb_rcv_dereg, tvb, offset, L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_ulb_rcv_dereg);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_ulb_rcv_dereg_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_ulb_rcv_dereg_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_observer_rcv(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_reg_observer_rcv, tvb, offset, L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_reg_observer_rcv);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_observer_rcv_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_observer_rcv_rcv_type_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_RCV_TYPE_ID, L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_RCV_TYPE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_observer_rcv_last_topic_rcr_tsp, tvb, offset + O_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_LAST_TOPIC_RCR_TSP, L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_LAST_TOPIC_RCR_TSP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_observer_rcv_dereg(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_observer_rcv_dereg, tvb, offset, L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_observer_rcv_dereg);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_observer_rcv_dereg_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_observer_rcv_dereg_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
guint8 reg_type = 0;
|
|
int len_dissected = 0;
|
|
int len = 0;
|
|
proto_item * reg_type_item = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_reg_flags_ignore,
|
|
&hf_lbmc_umq_reg_flags_r_flag,
|
|
&hf_lbmc_umq_reg_flags_t_flag,
|
|
&hf_lbmc_umq_reg_flags_i_flag,
|
|
&hf_lbmc_umq_reg_flags_msg_sel_flag,
|
|
NULL
|
|
};
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_REG_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, hf_lbmc_umq_reg_flags, ett_lbmc_umq_reg_flags, flags, ENC_BIG_ENDIAN);
|
|
reg_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_type, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_REG_TYPE, L_LBMC_CNTL_UMQ_REG_HDR_T_REG_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_REG_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_cmd_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_CMD_ID, L_LBMC_CNTL_UMQ_REG_HDR_T_CMD_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_inst_idx, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_INST_IDX, L_LBMC_CNTL_UMQ_REG_HDR_T_INST_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_regid, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_REGID, L_LBMC_CNTL_UMQ_REG_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
|
|
len_dissected = L_LBMC_CNTL_UMQ_REG_HDR_T;
|
|
reg_type = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_REG_TYPE);
|
|
switch (reg_type)
|
|
{
|
|
case LBMC_UMQ_REG_CTX_TYPE:
|
|
len = dissect_nhdr_umq_reg_ctx(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_SRC_TYPE:
|
|
len = dissect_nhdr_umq_reg_src(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RCV_TYPE:
|
|
len = dissect_nhdr_umq_reg_rcv(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RCV_DEREG_TYPE:
|
|
len = dissect_nhdr_umq_rcv_dereg(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_ULB_RCV_TYPE:
|
|
len = dissect_nhdr_umq_reg_ulb_rcv(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_ULB_RCV_DEREG_TYPE:
|
|
len = dissect_nhdr_umq_ulb_rcv_dereg(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_OBSERVER_RCV_TYPE:
|
|
len = dissect_nhdr_umq_reg_observer_rcv(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_OBSERVER_RCV_DEREG_TYPE:
|
|
len = dissect_nhdr_umq_observer_rcv_dereg(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, reg_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ REG type 0x%02x", reg_type);
|
|
len = 0;
|
|
break;
|
|
}
|
|
len_dissected += len;
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_resp_ctx(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_reg_ctx, tvb, offset, L_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_ctx);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ctx_capabilities, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T_CAPABILITIES, L_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T_CAPABILITIES, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_resp_ctx_ex(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_reg_resp_reg_ctx_ex_flags_firstmsg,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_reg_ctx_ex, tvb, offset, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_ctx_ex);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ctx_ex_capabilities, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_CAPABILITIES, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_CAPABILITIES, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ctx_ex_reserved, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS, hf_lbmc_umq_reg_resp_reg_ctx_ex_flags, ett_lbmc_umq_reg_resp_reg_ctx_ex_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ctx_ex_stamp, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_STAMP, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_STAMP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_resp_err(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_err, tvb, offset, L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_err);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_err_reserved, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_err_code, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_CODE, L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_CODE, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_resp_src(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_reg_src, tvb, offset, L_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_src);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_src_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_resp_rcv(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_reg_rcv, tvb, offset, L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_rcv);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_rcv_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_rcv_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_rcv_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_rcv_reserved, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rcv_dereg_resp(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_rcv_dereg, tvb, offset, L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_rcv_dereg);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_rcv_dereg_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_rcv_dereg_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_resp_ulb_rcv(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_reg_ulb_rcv, tvb, offset, L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_ulb_rcv);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ulb_rcv_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ulb_rcv_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ulb_rcv_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ulb_rcv_reserved, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ulb_rcv_capabilities, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_CAPABILITIES, L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_CAPABILITIES, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ulb_rcv_dereg_resp(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_ulb_rcv_dereg, tvb, offset, L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_ulb_rcv_dereg);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_ulb_rcv_dereg_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_ulb_rcv_dereg_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_resp_observer_rcv(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_reg_observer_rcv, tvb, offset, L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_observer_rcv);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_observer_rcv_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_observer_rcv_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_observer_rcv_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_observer_rcv_reserved, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_observer_rcv_dereg_resp(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_observer_rcv_dereg, tvb, offset, L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_observer_rcv_dereg);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_observer_rcv_dereg_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_observer_rcv_dereg_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_reg_resp(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
guint8 resp_type = 0;
|
|
int len_dissected = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_reg_resp_flags_ignore,
|
|
&hf_lbmc_umq_reg_resp_flags_r_flag,
|
|
NULL
|
|
};
|
|
static const int * flags_err[] =
|
|
{
|
|
&hf_lbmc_umq_reg_resp_flags_ignore,
|
|
&hf_lbmc_umq_reg_resp_flags_r_flag,
|
|
&hf_lbmc_umq_reg_resp_flags_l_flag,
|
|
NULL
|
|
};
|
|
static const int * flags_src[] =
|
|
{
|
|
&hf_lbmc_umq_reg_resp_flags_ignore,
|
|
&hf_lbmc_umq_reg_resp_flags_r_flag,
|
|
&hf_lbmc_umq_reg_resp_flags_src_s_flag,
|
|
&hf_lbmc_umq_reg_resp_flags_src_d_flag,
|
|
NULL
|
|
};
|
|
|
|
int len = 0;
|
|
proto_item * resp_type_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_HDR_LEN);
|
|
resp_type = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESP_TYPE);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
switch (resp_type)
|
|
{
|
|
case LBMC_UMQ_REG_RESP_CTX_TYPE:
|
|
case LBMC_UMQ_REG_RESP_CTX_EX_TYPE:
|
|
case LBMC_UMQ_REG_RESP_RCV_TYPE:
|
|
case LBMC_UMQ_REG_RESP_OBSERVER_RCV_TYPE:
|
|
case LBMC_UMQ_REG_RESP_RCV_DEREG_TYPE:
|
|
case LBMC_UMQ_REG_RESP_OBSERVER_RCV_DEREG_TYPE:
|
|
case LBMC_UMQ_REG_RESP_ULB_RCV_TYPE:
|
|
case LBMC_UMQ_REG_RESP_ULB_RCV_DEREG_TYPE:
|
|
default:
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, hf_lbmc_umq_reg_resp_flags, ett_lbmc_umq_reg_resp_flags, flags, ENC_BIG_ENDIAN);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_ERR_TYPE:
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, hf_lbmc_umq_reg_resp_flags, ett_lbmc_umq_reg_resp_flags, flags_err, ENC_BIG_ENDIAN);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_SRC_TYPE:
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, hf_lbmc_umq_reg_resp_flags, ett_lbmc_umq_reg_resp_flags, flags_src, ENC_BIG_ENDIAN);
|
|
break;
|
|
}
|
|
resp_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_resp_type, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESP_TYPE, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESP_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_cmd_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_CMD_ID, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_CMD_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_inst_idx, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_INST_IDX, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_INST_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_regid, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESPID, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESPID, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_UMQ_REG_RESP_HDR_T;
|
|
switch (resp_type)
|
|
{
|
|
case LBMC_UMQ_REG_RESP_CTX_TYPE:
|
|
len = dissect_nhdr_umq_reg_resp_ctx(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_CTX_EX_TYPE:
|
|
len = dissect_nhdr_umq_reg_resp_ctx_ex(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_ERR_TYPE:
|
|
len = dissect_nhdr_umq_reg_resp_err(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_SRC_TYPE:
|
|
len = dissect_nhdr_umq_reg_resp_src(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_RCV_TYPE:
|
|
len = dissect_nhdr_umq_reg_resp_rcv(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_RCV_DEREG_TYPE:
|
|
len = dissect_nhdr_umq_rcv_dereg_resp(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_ULB_RCV_TYPE:
|
|
len = dissect_nhdr_umq_reg_resp_ulb_rcv(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_ULB_RCV_DEREG_TYPE:
|
|
len = dissect_nhdr_umq_ulb_rcv_dereg_resp(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_OBSERVER_RCV_TYPE:
|
|
len = dissect_nhdr_umq_reg_resp_observer_rcv(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_REG_RESP_OBSERVER_RCV_DEREG_TYPE:
|
|
len = dissect_nhdr_umq_observer_rcv_dereg_resp(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, resp_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ REG RESP type 0x%02x", resp_type);
|
|
len = 0;
|
|
break;
|
|
}
|
|
len_dissected += len;
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ack_msgid(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ack_msgid, tvb, offset, L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack_msgid);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_REGID, L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_msgid_stamp, tvb, offset + O_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_STAMP, L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_STAMP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ack_stable(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ack_stable, tvb, offset, L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack_stable);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_stable_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_stable_inst_idx, tvb, offset + O_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_INST_IDX, L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_INST_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_stable_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ack_cr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ack_cr, tvb, offset, L_LBMC_CNTL_UMQ_ACK_CR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack_cr);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_cr_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_cr_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_cr_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_cr_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_ACK_CR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ack_ulb_cr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ack_ulb_cr, tvb, offset, L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack_ulb_cr);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_ulb_cr_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_ulb_cr_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_ulb_cr_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_ulb_cr_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ack(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
guint8 ack_type = 0;
|
|
guint8 num_ids = 0;
|
|
guint8 idx;
|
|
int len_dissected = 0;
|
|
guint8 msg_count;
|
|
static const int * msgs[] =
|
|
{
|
|
&hf_lbmc_umq_ack_msgs_ignore,
|
|
&hf_lbmc_umq_ack_msgs_t_flag,
|
|
&hf_lbmc_umq_ack_msgs_d_flag,
|
|
NULL
|
|
};
|
|
int len;
|
|
int packet_len = 0;
|
|
proto_item * ack_type_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ack, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_ACK_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_ACK_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
msg_count = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, hf_lbmc_umq_ack_msgs, ett_lbmc_umq_ack_msgs, msgs, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ack_numids, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, ENC_BIG_ENDIAN);
|
|
ack_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_ack_ack_type, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_ACK_TYPE, L_LBMC_CNTL_UMQ_ACK_HDR_T_ACK_TYPE, ENC_BIG_ENDIAN);
|
|
packet_len = tvb_reported_length_remaining(tvb, offset);
|
|
len_dissected = L_LBMC_CNTL_UMQ_ACK_HDR_T;
|
|
num_ids = msg_count & LBMC_UMQ_ACK_NUMIDS_MASK;
|
|
for (idx = 0; (idx < num_ids) && (len_dissected < packet_len); idx++)
|
|
{
|
|
len = dissect_nhdr_umq_ack_msgid(tvb, offset + len_dissected, pinfo, subtree);
|
|
len_dissected += len;
|
|
}
|
|
ack_type = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_ACK_TYPE);
|
|
switch (ack_type)
|
|
{
|
|
case LBMC_UMQ_ACK_STABLE_TYPE:
|
|
len = dissect_nhdr_umq_ack_stable(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_ACK_CR_TYPE:
|
|
len = dissect_nhdr_umq_ack_cr(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_ACK_ULB_CR_TYPE:
|
|
len = dissect_nhdr_umq_ack_ulb_cr(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, ack_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ ACK type 0x%02x", ack_type);
|
|
len = 0;
|
|
break;
|
|
}
|
|
len_dissected += len;
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rcr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_rcr_flags_ignore,
|
|
&hf_lbmc_umq_rcr_flags_r_flag,
|
|
&hf_lbmc_umq_rcr_flags_d_flag,
|
|
&hf_lbmc_umq_rcr_flags_s_flag,
|
|
&hf_lbmc_umq_rcr_flags_eoi_flag,
|
|
&hf_lbmc_umq_rcr_flags_boi_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rcr, tvb, offset, L_LBMC_CNTL_UMQ_RCR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rcr);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_RCR_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_RCR_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, hf_lbmc_umq_rcr_flags, ett_lbmc_umq_rcr_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RCR_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_msgid_stamp, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_STAMP, L_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_topic_tsp, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_TOPIC_TSP, L_LBMC_CNTL_UMQ_RCR_HDR_T_TOPIC_TSP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_q_tsp, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_Q_TSP, L_LBMC_CNTL_UMQ_RCR_HDR_T_Q_TSP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RCR_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_RCR_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_num_ras, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_NUM_RAS, L_LBMC_CNTL_UMQ_RCR_HDR_T_NUM_RAS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rcr_queue_ver, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_VER, L_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_VER, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RCR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ka_src(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ka_src, tvb, offset, L_LBMC_CNTL_UMQ_KA_SRC_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka_src);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ka_src_transport_idx, tvb, offset + O_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ka_src_topic_idx, tvb, offset + O_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TOPIC_IDX, L_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_KA_SRC_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ka_rcv(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ka_rcv, tvb, offset, L_LBMC_CNTL_UMQ_KA_RCV_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka_rcv);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ka_rcv_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_KA_RCV_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_KA_RCV_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ka_rcv_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_KA_RCV_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_KA_RCV_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_KA_RCV_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ka_ulb_rcv(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ka_ulb_rcv, tvb, offset, L_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka_ulb_rcv);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ka_ulb_rcv_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ka_ulb_rcv_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ka_ulb_rcv_resp(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ka_ulb_rcv_resp, tvb, offset, L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka_ulb_rcv_resp);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ka_ulb_rcv_resp_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ka_ulb_rcv_resp_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ka_ulb_rcv_resp_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ka_ulb_rcv_resp_reserved, tvb, offset + O_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ka(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
guint8 type;
|
|
int len_dissected = 0;
|
|
int len;
|
|
proto_item * ka_type_item = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_cntl_umq_ka_flags_ignore,
|
|
&hf_lbmc_cntl_umq_ka_flags_r_flag,
|
|
NULL
|
|
};
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_cntl_umq_ka, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka);
|
|
proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_KA_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS, hf_lbmc_cntl_umq_ka_flags, ett_lbmc_umq_ka_flags, flags, ENC_BIG_ENDIAN);
|
|
ka_type_item = proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_ka_type, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_KA_TYPE, L_LBMC_CNTL_UMQ_KA_HDR_T_KA_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_KA_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_regid, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_REGID, L_LBMC_CNTL_UMQ_KA_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_inst_idx, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_INST_IDX, L_LBMC_CNTL_UMQ_KA_HDR_T_INST_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_reserved, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_KA_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_UMQ_KA_HDR_T;
|
|
type = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_KA_TYPE);
|
|
switch (type)
|
|
{
|
|
case LBMC_UMQ_KA_SRC_TYPE:
|
|
case LBMC_UMQ_KA_SRC_RESP_TYPE:
|
|
len = dissect_nhdr_umq_ka_src(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_KA_RCV_TYPE:
|
|
case LBMC_UMQ_KA_RCV_RESP_TYPE:
|
|
len = dissect_nhdr_umq_ka_rcv(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_KA_ULB_RCV_TYPE:
|
|
len = dissect_nhdr_umq_ka_ulb_rcv(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_KA_ULB_RCV_RESP_TYPE:
|
|
len = dissect_nhdr_umq_ka_ulb_rcv_resp(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_KA_CTX_TYPE:
|
|
case LBMC_UMQ_KA_CTX_RESP_TYPE:
|
|
len = 0;
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, ka_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ KA type 0x%02x", type);
|
|
len = 0;
|
|
break;
|
|
}
|
|
len_dissected += len;
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rxreq_regid_resp(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_regid_resp, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_regid_resp);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_regid_resp_regid, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T_REGID, L_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rxreq_addr_resp(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_addr_resp, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_addr_resp);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_addr_resp_ip, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_IP, L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_IP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_addr_resp_port, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_PORT, L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_addr_resp_reserved, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rxreq_mr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_mr, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_mr);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_mr_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_mr_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_mr_msgid_stamp, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_STAMP, L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rxreq_ulb_mr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_ulb_mr, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_ulb_mr);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_mr_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_mr_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_mr_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_mr_reserved, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_mr_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_mr_msgid_stamp, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_STAMP, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rxreq_ulb_mr_abort(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_ulb_mr_abort, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_ulb_mr_abort);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_mr_abort_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_mr_abort_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_mr_abort_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_mr_abort_msgid_stamp, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_MSGID_STAMP, L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rxreq_qrcrr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_qrcrr, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_qrcrr);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_qrcrr_tsp, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T_TSP, L_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T_TSP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rxreq_trcrr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_trcrr, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_trcrr);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_trcrr_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_trcrr_tsp, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_TSP, L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_TSP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rxreq_ulb_trcrr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_ulb_trcrr, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_ulb_trcrr);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_trcrr_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_trcrr_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_trcrr_tsp, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_TSP, L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_TSP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rxreq_ulb_trcrr_abort(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_ulb_trcrr_abort, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_ulb_trcrr_abort);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_trcrr_abort_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_trcrr_abort_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_ulb_trcrr_abort_tsp, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_TSP, L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_TSP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rxreq(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
guint8 type;
|
|
guint8 flags_val;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_rxreq_flags_ignore,
|
|
&hf_lbmc_umq_rxreq_flags_r_flag,
|
|
NULL
|
|
};
|
|
int len_dissected = 0;
|
|
int len = 0;
|
|
proto_item * rxreq_type_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS, hf_lbmc_umq_rxreq_flags, ett_lbmc_umq_rxreq_flags, flags, ENC_BIG_ENDIAN);
|
|
rxreq_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_rxreq_type, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_RXREQ_TYPE, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_RXREQ_TYPE, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_UMQ_RXREQ_HDR_T;
|
|
flags_val = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS);
|
|
if ((flags_val & LBMC_UMQ_RXREQ_R_FLAG) != 0)
|
|
{
|
|
len = dissect_nhdr_umq_rxreq_regid_resp(tvb, offset + len_dissected, pinfo, subtree);
|
|
}
|
|
else
|
|
{
|
|
len = dissect_nhdr_umq_rxreq_addr_resp(tvb, offset + len_dissected, pinfo, subtree);
|
|
}
|
|
len_dissected += len;
|
|
type = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_RXREQ_TYPE);
|
|
switch (type)
|
|
{
|
|
case LBMC_UMQ_RXREQ_MR_TYPE:
|
|
len = dissect_nhdr_umq_rxreq_mr(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_RXREQ_ULB_MR_TYPE:
|
|
len = dissect_nhdr_umq_rxreq_ulb_mr(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_RXREQ_ULB_MR_ABORT_TYPE:
|
|
len = dissect_nhdr_umq_rxreq_ulb_mr_abort(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_RXREQ_QRCRR_TYPE:
|
|
len = dissect_nhdr_umq_rxreq_qrcrr(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_RXREQ_TRCRR_TYPE:
|
|
len = dissect_nhdr_umq_rxreq_trcrr(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_RXREQ_ULB_TRCRR_TYPE:
|
|
len = dissect_nhdr_umq_rxreq_ulb_trcrr(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_RXREQ_ULB_TRCRR_ABORT_TYPE:
|
|
len = dissect_nhdr_umq_rxreq_ulb_trcrr_abort(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, rxreq_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ RXREQ type 0x%02x", type);
|
|
len = 0;
|
|
break;
|
|
}
|
|
len_dissected += len;
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_qmgmt(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
int len_dissected = 0;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_QMGMT_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_qmgmt, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_qmgmt);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_qmgmt_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_QMGMT_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_QMGMT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_qmgmt_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_QMGMT_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_QMGMT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
len_dissected = lbmr_dissect_umq_qmgmt(tvb, (offset + L_LBMC_CNTL_UMQ_QMGMT_HDR_T) - 2, pinfo, subtree);
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_resub_req(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_resub_req_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_resub_req, tvb, offset, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_resub_req);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS, hf_lbmc_umq_resub_req_flags, ett_lbmc_umq_resub_req_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_msgid_stamp, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_STAMP, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_resp_ip, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_IP, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_IP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_resp_port, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_PORT, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_resub_resp(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_resub_resp_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_resub_resp, tvb, offset, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_resub_resp);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS, hf_lbmc_umq_resub_resp_flags, ett_lbmc_umq_resub_resp_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_code, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_CODE, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_CODE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_msgid_stamp, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_STAMP, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_reserved, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_topic_interest(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_topic_interest_flags_ignore,
|
|
&hf_lbmc_topic_interest_flags_cancel,
|
|
&hf_lbmc_topic_interest_flags_refresh,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_interest, tvb, offset, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_interest);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_interest_next_hdr, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_NEXT_HDR, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_interest_hdr_len, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_HDR_LEN, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS, hf_lbmc_topic_interest_flags, ett_lbmc_topic_interest_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_interest_domain_id, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_DOMAIN_ID, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_TOPIC_INTEREST_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_pattern_interest(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_pattern_interest_flags_ignore,
|
|
&hf_lbmc_pattern_interest_flags_cancel,
|
|
&hf_lbmc_pattern_interest_flags_refresh,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_pattern_interest, tvb, offset, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_pattern_interest);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_interest_next_hdr, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_NEXT_HDR, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_interest_hdr_len, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_HDR_LEN, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS, hf_lbmc_pattern_interest_flags, ett_lbmc_pattern_interest_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_interest_type, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_TYPE, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_interest_domain_id, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_DOMAIN_ID, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_interest_index, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_INDEX, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_INDEX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_PATTERN_INTEREST_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_advertisement(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_advertisement_flags_ignore,
|
|
&hf_lbmc_advertisement_flags_eos,
|
|
&hf_lbmc_advertisement_flags_pattern,
|
|
&hf_lbmc_advertisement_flags_change,
|
|
&hf_lbmc_advertisement_flags_ctxinst,
|
|
NULL
|
|
};
|
|
static const int * ad_flags[] =
|
|
{
|
|
&hf_lbmc_advertisement_ad_flags_lj,
|
|
&hf_lbmc_advertisement_ad_flags_ume,
|
|
&hf_lbmc_advertisement_ad_flags_acktosrc,
|
|
&hf_lbmc_advertisement_ad_flags_queue,
|
|
&hf_lbmc_advertisement_ad_flags_ulb,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_advertisement, tvb, offset, L_LBMC_CNTL_ADVERTISEMENT_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_advertisement);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_next_hdr, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_NEXT_HDR, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_hdr_len, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HDR_LEN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, hf_lbmc_advertisement_flags, ett_lbmc_advertisement_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, hf_lbmc_advertisement_ad_flags, ett_lbmc_advertisement_ad_flags, ad_flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_hop_count, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HOP_COUNT, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HOP_COUNT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_cost, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_COST, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_COST, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_transport_idx, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_topic_idx, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_TOPIC_IDX, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_low_seqno, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_LOW_SEQNO, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_LOW_SEQNO, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_high_seqno, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HIGH_SEQNO, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HIGH_SEQNO, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_domain_id, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_DOMAIN_ID, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_pat_idx, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_PAT_IDX, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_PAT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_advertisement_ctxinst, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_CTXINST, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_CTXINST, ENC_NA);
|
|
return (L_LBMC_CNTL_ADVERTISEMENT_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_storename(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_storename_flags_ignore,
|
|
NULL
|
|
};
|
|
int len_dissected = 0;
|
|
int namelen = 0;
|
|
proto_item * hdrlen_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_UME_STORENAME_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_storename, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_storename);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_storename_next_hdr, tvb, offset + O_LBMC_UME_STORENAME_HDR_T_NEXT_HDR, L_LBMC_UME_STORENAME_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_ume_storename_hdr_len, tvb, offset + O_LBMC_UME_STORENAME_HDR_T_HDR_LEN, L_LBMC_UME_STORENAME_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_UME_STORENAME_HDR_T_FLAGS, hf_lbmc_ume_storename_flags, ett_lbmc_ume_storename_flags, flags, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_BASIC_HDR_T;
|
|
namelen = (int) hdrlen - len_dissected;
|
|
if (namelen > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_storename_store, tvb, offset + O_LBMC_UME_STORENAME_HDR_T_FLAGS + L_LBMC_UME_STORENAME_HDR_T_FLAGS, namelen, ENC_ASCII | ENC_NA);
|
|
len_dissected += namelen;
|
|
}
|
|
else
|
|
{
|
|
expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ulb_rcr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_ulb_rcr_flags_ignore,
|
|
&hf_lbmc_umq_ulb_rcr_flags_r_flag,
|
|
&hf_lbmc_umq_ulb_rcr_flags_d_flag,
|
|
&hf_lbmc_umq_ulb_rcr_flags_eoi_flag,
|
|
&hf_lbmc_umq_ulb_rcr_flags_boi_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ulb_rcr, tvb, offset, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ulb_rcr);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, hf_lbmc_umq_ulb_rcr_flags, ett_lbmc_umq_ulb_rcr_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_msgid_stamp, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_STAMP, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_topic_tsp, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_TOPIC_TSP, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_TOPIC_TSP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_num_ras, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NUM_RAS, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NUM_RAS, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_lf(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_lf_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_lf, tvb, offset, L_LBMC_CNTL_UMQ_LF_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_lf);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_lf_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_LF_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_lf_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_LF_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS, hf_lbmc_umq_lf_flags, ett_lbmc_umq_lf_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_lf_type, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_TYPE, L_LBMC_CNTL_UMQ_LF_HDR_T_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_lf_num_srcs, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_NUM_SRCS, L_LBMC_CNTL_UMQ_LF_HDR_T_NUM_SRCS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_lf_lf, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_LF, L_LBMC_CNTL_UMQ_LF_HDR_T_LF, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_LF_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ctxinfo(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
guint16 flags_val = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ctxinfo_flags_ignore,
|
|
&hf_lbmc_ctxinfo_flags_query,
|
|
&hf_lbmc_ctxinfo_flags_addr,
|
|
&hf_lbmc_ctxinfo_flags_ctxinst,
|
|
&hf_lbmc_ctxinfo_flags_name,
|
|
&hf_lbmc_ctxinfo_flags_tnwgsrc,
|
|
&hf_lbmc_ctxinfo_flags_tnwgrcv,
|
|
&hf_lbmc_ctxinfo_flags_proxy,
|
|
NULL
|
|
};
|
|
int len_dissected = 0;
|
|
proto_item * hdrlen_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ctxinfo, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ctxinfo);
|
|
proto_tree_add_item(subtree, hf_lbmc_ctxinfo_next_hdr, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_NEXT_HDR, L_LBMC_CNTL_CTXINFO_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_ctxinfo_hdr_len, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_HDR_LEN, L_LBMC_CNTL_CTXINFO_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
flags_val = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, hf_lbmc_ctxinfo_flags, ett_lbmc_ctxinfo_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ctxinfo_reserved, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_RESERVED, L_LBMC_CNTL_CTXINFO_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ctxinfo_hop_count, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_HOP_COUNT, L_LBMC_CNTL_CTXINFO_HDR_T_HOP_COUNT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ctxinfo_port, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_PORT, L_LBMC_CNTL_CTXINFO_HDR_T_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ctxinfo_addr, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_ADDR, L_LBMC_CNTL_CTXINFO_HDR_T_ADDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ctxinfo_domain_id, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_DOMAIN_ID, L_LBMC_CNTL_CTXINFO_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ctxinfo_ctxinst, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_CTXINST, L_LBMC_CNTL_CTXINFO_HDR_T_CTXINST, ENC_NA);
|
|
len_dissected = L_LBMC_CNTL_CTXINFO_HDR_T;
|
|
if ((flags_val & LBMC_CTXINFO_NAME_FLAG) != 0)
|
|
{
|
|
int namelen = (int) hdrlen - len_dissected;
|
|
if (namelen > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_ctxinfo_name, tvb, offset + L_LBMC_CNTL_CTXINFO_HDR_T, hdrlen - L_LBMC_CNTL_CTXINFO_HDR_T, ENC_ASCII | ENC_NA);
|
|
len_dissected += namelen;
|
|
}
|
|
else
|
|
{
|
|
expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
|
|
}
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_pser(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_pser_flags_ignore,
|
|
&hf_lbmc_ume_pser_flags_source_ctxinst,
|
|
&hf_lbmc_ume_pser_flags_store_ctxinst,
|
|
&hf_lbmc_ume_pser_flags_reelect,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_pser, tvb, offset, L_LBMC_CNTL_UME_PSER_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_pser);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_pser_next_hdr, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_PSER_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_pser_hdr_len, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_PSER_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, hf_lbmc_ume_pser_flags, ett_lbmc_ume_pser_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_pser_source_ip, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_IP, L_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_IP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_pser_store_ip, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_STORE_IP, L_LBMC_CNTL_UME_PSER_HDR_T_STORE_IP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_pser_transport_idx, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_PSER_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_pser_topic_idx, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_TOPIC_IDX, L_LBMC_CNTL_UME_PSER_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_pser_source_port, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_PORT, L_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_pser_store_port, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_STORE_PORT, L_LBMC_CNTL_UME_PSER_HDR_T_STORE_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_pser_source_ctxinst, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_CTXINST, L_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_CTXINST, ENC_NA);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_pser_store_ctxinst, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_STORE_CTXINST, L_LBMC_CNTL_UME_PSER_HDR_T_STORE_CTXINST, ENC_NA);
|
|
return (L_LBMC_CNTL_UME_PSER_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_domain(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_domain_flags_ignore,
|
|
&hf_lbmc_domain_flags_active,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_domain, tvb, offset, L_LBMC_DOMAIN_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_domain);
|
|
proto_tree_add_item(subtree, hf_lbmc_domain_next_hdr, tvb, offset + O_LBMC_DOMAIN_HDR_T_NEXT_HDR, L_LBMC_DOMAIN_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_domain_hdr_len, tvb, offset + O_LBMC_DOMAIN_HDR_T_HDR_LEN, L_LBMC_DOMAIN_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_DOMAIN_HDR_T_FLAGS, hf_lbmc_domain_flags, ett_lbmc_domain_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_domain_domain, tvb, offset + O_LBMC_DOMAIN_HDR_T_DOMAIN, L_LBMC_DOMAIN_HDR_T_DOMAIN, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_DOMAIN_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_tnwg_capabilities(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_tnwg_capabilities_flags_ignore,
|
|
&hf_lbmc_tnwg_capabilities_flags_version,
|
|
NULL
|
|
};
|
|
static const int * cap1[] =
|
|
{
|
|
&hf_lbmc_tnwg_capabilities_capabilities1_ume,
|
|
&hf_lbmc_tnwg_capabilities_capabilities1_umq,
|
|
NULL
|
|
};
|
|
static const int * cap3[] =
|
|
{
|
|
&hf_lbmc_tnwg_capabilities_capabilities3_pcre,
|
|
&hf_lbmc_tnwg_capabilities_capabilities3_regex,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_tnwg_capabilities, tvb, offset, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tnwg_capabilities);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_capabilities_next_hdr, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_NEXT_HDR, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_capabilities_hdr_len, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_HDR_LEN, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS, hf_lbmc_tnwg_capabilities_flags, ett_lbmc_tnwg_capabilities_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1, hf_lbmc_tnwg_capabilities_capabilities1, ett_lbmc_tnwg_capabilities_capabilities1, cap1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_capabilities_capabilities2, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES2, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3, hf_lbmc_tnwg_capabilities_capabilities3, ett_lbmc_tnwg_capabilities_capabilities3, cap3, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_capabilities_capabilities4, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES4, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES4, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_patidx(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_patidx_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_patidx, tvb, offset, L_LBMC_PATIDX_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_patidx);
|
|
proto_tree_add_item(subtree, hf_lbmc_patidx_next_hdr, tvb, offset + O_LBMC_PATIDX_HDR_T_NEXT_HDR, L_LBMC_PATIDX_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_patidx_hdr_len, tvb, offset + O_LBMC_PATIDX_HDR_T_HDR_LEN, L_LBMC_PATIDX_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_PATIDX_HDR_T_FLAGS, hf_lbmc_patidx_flags, ett_lbmc_patidx_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_patidx_patidx, tvb, offset + O_LBMC_PATIDX_HDR_T_PATIDX, L_LBMC_PATIDX_HDR_T_PATIDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_PATIDX_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_client_lifetime(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_client_lifetime_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_client_lifetime, tvb, offset, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_client_lifetime);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_client_lifetime_next_hdr, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_client_lifetime_hdr_len, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS, hf_lbmc_ume_client_lifetime_flags, ett_lbmc_ume_client_lifetime_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_client_lifetime_activity_tmo, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_ACTIVITY_TMO, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_ACTIVITY_TMO, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_client_lifetime_lifetime, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_LIFETIME, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_LIFETIME, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_client_lifetime_ttl, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_TTL, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_TTL, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_sid(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_sid_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_sid, tvb, offset, L_LBMC_CNTL_UME_SID_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_sid);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_sid_next_hdr, tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_SID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_sid_hdr_len, tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_SID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_FLAGS, hf_lbmc_ume_sid_flags, ett_lbmc_ume_sid_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_sid_sid, tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_SID, L_LBMC_CNTL_UME_SID_HDR_T_SID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_SID_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_idx_cmd(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_idx_cmd_flags_ignore,
|
|
NULL
|
|
};
|
|
guint8 cmd_type = 0;
|
|
proto_item * opt_subtree_item = NULL;
|
|
proto_tree * opt_subtree = NULL;
|
|
guint32 opt_flags = 0;
|
|
static const int * release_assign_flags[] =
|
|
{
|
|
&hf_lbmc_umq_idx_cmd_release_assign_flags_numeric,
|
|
NULL
|
|
};
|
|
static const int * ulb_release_assign_flags[] =
|
|
{
|
|
&hf_lbmc_umq_idx_cmd_ulb_release_assign_flags_numeric,
|
|
NULL
|
|
};
|
|
static const int * reserve_assign_flags[] =
|
|
{
|
|
&hf_lbmc_umq_idx_cmd_reserve_assign_flags_numeric,
|
|
NULL
|
|
};
|
|
static const int * ulb_reserve_assign_flags[] =
|
|
{
|
|
&hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags_numeric,
|
|
NULL
|
|
};
|
|
guint8 index_len = 0;
|
|
int len_dissected = 0;
|
|
proto_item * cmd_type_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_idx_cmd, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_idx_cmd);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_flags, ett_lbmc_umq_idx_cmd_flags, flags, ENC_BIG_ENDIAN);
|
|
cmd_type = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_TYPE);
|
|
cmd_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_cmd_type, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_TYPE, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_cmd_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_ID, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_inst_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_INST_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_INST_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_regid, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_REGID, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T;
|
|
offset += L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T;
|
|
switch (cmd_type)
|
|
{
|
|
case LBMC_UMQ_IDX_CMD_RCV_STOP_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_stop_assign, tvb, offset, L_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_stop_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_stop_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_stop_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
len_dissected += L_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RCV_START_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_start_assign, tvb, offset, L_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_start_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_start_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_start_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
len_dissected += L_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_ULB_RCV_STOP_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_ulb_stop_assign, tvb, offset, L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_ulb_stop_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_stop_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_stop_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_stop_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_stop_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
len_dissected += L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_ULB_RCV_START_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_ulb_start_assign, tvb, offset, L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_ulb_start_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_start_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_start_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_start_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_start_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
len_dissected += L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_release_assign, tvb, offset, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T + index_len, ENC_NA);
|
|
index_len = hdrlen - L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T;
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_release_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS);
|
|
proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_release_assign_flags, ett_lbmc_umq_idx_cmd_release_assign_flags, release_assign_flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA);
|
|
if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_numeric_index, tvb, offset + L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_BIG_ENDIAN);
|
|
}
|
|
else
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_string_index, tvb, offset + L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_ASCII|ENC_NA);
|
|
}
|
|
len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T + index_len;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign, tvb, offset, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T + index_len, ENC_NA);
|
|
index_len = hdrlen - L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T;
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_ulb_release_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS);
|
|
proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_ulb_release_assign_flags, ett_lbmc_umq_idx_cmd_ulb_release_assign_flags, ulb_release_assign_flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA);
|
|
if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_numeric_index, tvb, offset + L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_BIG_ENDIAN);
|
|
}
|
|
else
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_string_index, tvb, offset + L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_ASCII|ENC_NA);
|
|
}
|
|
len_dissected += L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T + index_len;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_reserve_assign, tvb, offset, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len, ENC_NA);
|
|
index_len = hdrlen - L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T;
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_reserve_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS);
|
|
proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_reserve_assign_flags, ett_lbmc_umq_idx_cmd_reserve_assign_flags, reserve_assign_flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA);
|
|
if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_numeric_index, tvb, offset + L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_BIG_ENDIAN);
|
|
}
|
|
else
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_string_index, tvb, offset + L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_ASCII|ENC_NA);
|
|
}
|
|
len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign, tvb, offset, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len, ENC_NA);
|
|
index_len = hdrlen - L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T;
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_ulb_reserve_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS);
|
|
proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags, ett_lbmc_umq_idx_cmd_ulb_reserve_assign_flags, ulb_reserve_assign_flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA);
|
|
if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_numeric_index, tvb, offset + L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_BIG_ENDIAN);
|
|
}
|
|
else
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_string_index, tvb, offset + L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_ASCII|ENC_NA);
|
|
}
|
|
len_dissected += L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len;
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, cmd_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ IDX CMD type 0x%02x", cmd_type);
|
|
break;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_idx_cmd_resp(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_idx_cmd_resp_flags_ignore,
|
|
&hf_lbmc_umq_idx_cmd_resp_flags_ulb,
|
|
NULL
|
|
};
|
|
static const int * reserve_assign_flags[] =
|
|
{
|
|
&hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags_numeric,
|
|
NULL
|
|
};
|
|
static const int * ulb_reserve_assign_flags[] =
|
|
{
|
|
&hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags_numeric,
|
|
NULL
|
|
};
|
|
guint8 resp_type = 0;
|
|
proto_item * opt_subtree_item = NULL;
|
|
proto_tree * opt_subtree = NULL;
|
|
int string_len = 0;
|
|
int len_dissected = 0;
|
|
guint32 opt_flags = 0;
|
|
guint8 index_len = 0;
|
|
proto_item * resp_type_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_idx_cmd_resp, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_idx_cmd_resp);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_resp_flags, ett_lbmc_umq_idx_cmd_resp_flags, flags, ENC_BIG_ENDIAN);
|
|
resp_type = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_RESP_TYPE);
|
|
resp_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_resp_type, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_RESP_TYPE, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_RESP_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_cmd_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_CMD_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_CMD_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_inst_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_INST_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_INST_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_regid, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_REGID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T;
|
|
offset += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T;
|
|
switch (resp_type)
|
|
{
|
|
case LBMC_UMQ_IDX_CMD_RESP_ERR_TYPE:
|
|
string_len = hdrlen - (L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T + L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T);
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_err, tvb, offset, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T + string_len, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_err);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_err_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_err_code, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_CODE, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_CODE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_err_error_string, tvb, offset + L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T, string_len, ENC_ASCII|ENC_NA);
|
|
len_dissected += (L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T + string_len);
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_stop_assign, tvb, offset, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_stop_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_stop_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_stop_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_start_assign, tvb, offset, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_start_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_start_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_start_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_start_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_start_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign, tvb, offset, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_ulb_stop_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_ulb_start_assign, tvb, offset, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_ulb_start_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_release_assign, tvb, offset, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_release_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_release_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_release_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_release_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_release_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE:
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_ulb_release_assign, tvb, offset, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_ulb_release_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T;
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_TYPE:
|
|
index_len = hdrlen - (L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T + L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T);
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign, tvb, offset, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_reserve_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS);
|
|
proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags, ett_lbmc_umq_idx_cmd_resp_reserve_assign_flags, reserve_assign_flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA);
|
|
if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_numeric_index, tvb, offset + L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_BIG_ENDIAN);
|
|
}
|
|
else
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_string_index, tvb, offset + L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_ASCII|ENC_NA);
|
|
}
|
|
len_dissected += (L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len);
|
|
break;
|
|
case LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE:
|
|
index_len = hdrlen - (L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T);
|
|
opt_subtree_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign, tvb, offset, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len, ENC_NA);
|
|
opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS);
|
|
proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags, ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags, ulb_reserve_assign_flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA);
|
|
if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_numeric_index, tvb, offset + L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_BIG_ENDIAN);
|
|
}
|
|
else
|
|
{
|
|
proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_string_index, tvb, offset + L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T, (gint)index_len, ENC_ASCII|ENC_NA);
|
|
}
|
|
len_dissected += (L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len);
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, resp_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ IDX CMD RESP type 0x%02x", resp_type);
|
|
break;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_odomain(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_odomain_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_odomain, tvb, offset, L_LBMC_ODOMAIN_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_odomain);
|
|
proto_tree_add_item(subtree, hf_lbmc_odomain_next_hdr, tvb, offset + O_LBMC_ODOMAIN_HDR_T_NEXT_HDR, L_LBMC_ODOMAIN_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_odomain_hdr_len, tvb, offset + O_LBMC_ODOMAIN_HDR_T_HDR_LEN, L_LBMC_ODOMAIN_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_ODOMAIN_HDR_T_FLAGS, hf_lbmc_odomain_flags, ett_lbmc_odomain_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_odomain_domain, tvb, offset + O_LBMC_ODOMAIN_HDR_T_ODOMAIN, L_LBMC_ODOMAIN_HDR_T_ODOMAIN, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_ODOMAIN_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_stream(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_stream_info_t * info)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_stream_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_stream, tvb, offset, L_LBMC_STREAM_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_stream);
|
|
proto_tree_add_item(subtree, hf_lbmc_stream_next_hdr, tvb, offset + O_LBMC_STREAM_HDR_T_NEXT_HDR, L_LBMC_STREAM_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_stream_hdr_len, tvb, offset + O_LBMC_STREAM_HDR_T_HDR_LEN, L_LBMC_STREAM_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_STREAM_HDR_T_FLAGS, hf_lbmc_stream_flags, ett_lbmc_stream_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_stream_stream_id, tvb, offset + O_LBMC_STREAM_HDR_T_STREAM_ID, L_LBMC_STREAM_HDR_T_STREAM_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_stream_sqn, tvb, offset + O_LBMC_STREAM_HDR_T_SQN, L_LBMC_STREAM_HDR_T_SQN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_stream_ctxinst, tvb, offset + O_LBMC_STREAM_HDR_T_CTXINST, L_LBMC_STREAM_HDR_T_CTXINST, ENC_NA);
|
|
if (info != NULL)
|
|
{
|
|
info->set = TRUE;
|
|
info->stream_id = tvb_get_ntohl(tvb, offset + O_LBMC_STREAM_HDR_T_STREAM_ID);
|
|
info->sqn = tvb_get_ntohl(tvb, offset + O_LBMC_STREAM_HDR_T_SQN);
|
|
tvb_memcpy(tvb, (void *)&(info->ctxinst), offset + O_LBMC_STREAM_HDR_T_CTXINST, L_LBMC_STREAM_HDR_T_CTXINST);
|
|
}
|
|
return (L_LBMC_STREAM_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_topic_md_interest(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_topic_md_interest_flags_ignore,
|
|
&hf_lbmc_topic_md_interest_flags_cancel,
|
|
&hf_lbmc_topic_md_interest_flags_refresh,
|
|
NULL
|
|
};
|
|
guint16 dom_count = 0;
|
|
int idx = 0;
|
|
int len_dissected = 0;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_md_interest, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_md_interest);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_md_interest_next_hdr, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_NEXT_HDR, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_md_interest_hdr_len, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_HDR_LEN, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS, hf_lbmc_topic_md_interest_flags, ett_lbmc_topic_md_interest_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_md_interest_domain_count, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_DOMAIN_COUNT, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_DOMAIN_COUNT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_md_interest_res1, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_RES1, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_RES1, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T;
|
|
dom_count = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_DOMAIN_COUNT);
|
|
offset += L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T;
|
|
for (idx = 0; idx < dom_count; ++idx)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_md_interest_domain_id, tvb, offset, (gint)sizeof(lbm_uint32_t), ENC_BIG_ENDIAN);
|
|
offset += (int)sizeof(lbm_uint32_t);
|
|
len_dissected += (int)sizeof(lbm_uint32_t);
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_pattern_md_interest(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_pattern_md_interest_flags_ignore,
|
|
&hf_lbmc_pattern_md_interest_flags_cancel,
|
|
&hf_lbmc_pattern_md_interest_flags_refresh,
|
|
NULL
|
|
};
|
|
guint16 dom_count = 0;
|
|
int idx = 0;
|
|
int len_dissected = 0;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_pattern_md_interest, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_pattern_md_interest);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_next_hdr, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_NEXT_HDR, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_hdr_len, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_HDR_LEN, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS, hf_lbmc_pattern_md_interest_flags, ett_lbmc_pattern_md_interest_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_type, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_TYPE, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_domain_count, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_DOMAIN_COUNT, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_DOMAIN_COUNT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_res1, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_RES1, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_RES1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_index, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_INDEX, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_INDEX, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T;
|
|
dom_count = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_DOMAIN_COUNT);
|
|
offset += L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T;
|
|
for (idx = 0; idx < dom_count; ++idx)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_domain_id, tvb, offset, (gint)sizeof(lbm_uint32_t), ENC_BIG_ENDIAN);
|
|
offset += (int)sizeof(lbm_uint32_t);
|
|
len_dissected += (int)sizeof(lbm_uint32_t);
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_lji_req(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_lji_req_flags_ignore,
|
|
&hf_lbmc_lji_req_flags_l_flag,
|
|
&hf_lbmc_lji_req_flags_m_flag,
|
|
&hf_lbmc_lji_req_flags_o_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_lji_req, tvb, offset, L_LBMC_CNTL_LJI_REQ_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_lji_req);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_next_hdr, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_LJI_REQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_hdr_len, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_HDR_LEN, L_LBMC_CNTL_LJI_REQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, hf_lbmc_lji_req_flags, ett_lbmc_lji_req_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_request_idx, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_REQUEST_IDX, L_LBMC_CNTL_LJI_REQ_HDR_T_REQUEST_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_transport_idx, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_LJI_REQ_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_topic_idx, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_TOPIC_IDX, L_LBMC_CNTL_LJI_REQ_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_req_ip, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_REQ_IP, L_LBMC_CNTL_LJI_REQ_HDR_T_REQ_IP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_req_port, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_REQ_PORT, L_LBMC_CNTL_LJI_REQ_HDR_T_REQ_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_res, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_RES, L_LBMC_CNTL_LJI_REQ_HDR_T_RES, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_tx_low_sqn, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_TX_LOW_SQN, L_LBMC_CNTL_LJI_REQ_HDR_T_TX_LOW_SQN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_rx_req_max, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_MAX, L_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_MAX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_lji_req_rx_req_outstanding_max, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_OUTSTANDING_MAX, L_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_OUTSTANDING_MAX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_LJI_REQ_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_tnwg_ka(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_tnwg_ka_flags_ignore,
|
|
&hf_lbmc_tnwg_ka_flags_q_flag,
|
|
&hf_lbmc_tnwg_ka_flags_r_flag,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_tnwg_ka, tvb, offset, L_LBMC_CNTL_TNWG_KA_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tnwg_ka);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_next_hdr, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_NEXT_HDR, L_LBMC_CNTL_TNWG_KA_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_hdr_len, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_HDR_LEN, L_LBMC_CNTL_TNWG_KA_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS, hf_lbmc_tnwg_ka_flags, ett_lbmc_tnwg_ka_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_index, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_INDEX, L_LBMC_CNTL_TNWG_KA_HDR_T_INDEX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_ts_seconds, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_TS_SECONDS, L_LBMC_CNTL_TNWG_KA_HDR_T_TS_SECONDS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_ts_microseconds, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_TS_MICROSECONDS, L_LBMC_CNTL_TNWG_KA_HDR_T_TS_MICROSECONDS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_reserved_1, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_1, L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_reserved_2, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_2, L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_2, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_reserved_3, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_3, L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_3, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_reserved_4, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_4, L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_4, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_reserved_5, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_5, L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_5, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_reserved_6, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_6, L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_6, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_TNWG_KA_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_receiver_keepalive(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_receiver_keepalive_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_receiver_keepalive, tvb, offset, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_receiver_keepalive);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_receiver_keepalive_next_hdr, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_receiver_keepalive_hdr_len, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS, hf_lbmc_ume_receiver_keepalive_flags, ett_lbmc_ume_receiver_keepalive_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_receiver_keepalive_rcv_regid, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_RCV_REGID, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_RCV_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_receiver_keepalive_session_id, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_SESSION_ID, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_SESSION_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_receiver_keepalive_ctxinst, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_CTXINST, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_CTXINST, ENC_NA);
|
|
return (L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_ctx_queue_topic_list(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_topic_list, tvb, offset, L_LBMC_CNTL_UMQ_CTX_QUEUE_TOPIC_LIST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_topic_list);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_topic_list_serial_num, tvb, offset + O_LBMC_CNTL_UMQ_CTX_QUEUE_TOPIC_LIST_HDR_T_SERIAL_NUM, L_LBMC_CNTL_UMQ_CTX_QUEUE_TOPIC_LIST_HDR_T_SERIAL_NUM, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_CTX_QUEUE_TOPIC_LIST_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rcv_msg_retrieve_entry(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_msg_retrieve_entry, tvb, offset, L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_msg_retrieve_entry);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_msg_retrieve_entry_regid, tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_REGID, L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_msg_retrieve_entry_stamp, tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STAMP, L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STAMP, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rcv_msg_retrieve(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
int len = 0;
|
|
int dissected_len = 0;
|
|
guint8 num_msgids;
|
|
guint8 idx;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_msg_retrieve, tvb, offset, L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_msg_retrieve);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_msg_retrieve_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_msg_retrieve_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_msg_retrieve_info_only, tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_INFO_ONLY, L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_INFO_ONLY, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_msg_retrieve_num_msgids, tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGIDS, L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGIDS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_msg_retrieve_flags, tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_FLAGS, ENC_BIG_ENDIAN);
|
|
|
|
dissected_len = L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T;
|
|
num_msgids = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGIDS);
|
|
for (idx = 0; idx < num_msgids; ++idx)
|
|
{
|
|
len = dissect_nhdr_umq_rcv_msg_retrieve_entry(tvb, offset + dissected_len, pinfo, subtree);
|
|
dissected_len += len;
|
|
}
|
|
proto_item_set_len(subtree_item, dissected_len);
|
|
return (dissected_len);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_rcv_msg_list(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_msg_list, tvb, offset, L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_msg_list);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_msg_list_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_msg_list_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_cmd(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_cmd_flags_ignore,
|
|
NULL
|
|
};
|
|
int len_dissected = 0;
|
|
guint8 cmd_type = 0;
|
|
proto_item * cmd_type_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_CMD_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_CMD_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS, hf_lbmc_umq_cmd_flags, ett_lbmc_umq_cmd_flags, flags, ENC_BIG_ENDIAN);
|
|
cmd_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_cmd_cmd_type, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_TYPE, L_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_CMD_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_cmd_id, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_ID, L_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_inst_idx, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_INST_IDX, L_LBMC_CNTL_UMQ_CMD_HDR_T_INST_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_regid, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_REGID, L_LBMC_CNTL_UMQ_CMD_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_UMQ_CMD_HDR_T;
|
|
cmd_type = tvb_get_guint8(tvb, O_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_TYPE);
|
|
switch (cmd_type)
|
|
{
|
|
case LBMC_UMQ_CMD_TYPE_TOPIC_LIST:
|
|
len_dissected += dissect_nhdr_umq_ctx_queue_topic_list(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_CMD_TYPE_RCV_MSG_RETRIEVE:
|
|
len_dissected += dissect_nhdr_umq_rcv_msg_retrieve(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_CMD_TYPE_RCV_MSG_LIST:
|
|
len_dissected += dissect_nhdr_umq_rcv_msg_list(tvb, offset + len_dissected, pinfo, subtree);
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, cmd_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ CMD cmd_type 0x%02x", cmd_type);
|
|
break;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_cmd_resp_rcv_msg_retrieve(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_resp_msg_retrieve, tvb, offset, L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_msg_retrieve);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_msg_retrieve_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_msg_retrieve_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_cmd_resp_rcv_xmsg_retrieve(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
int len_dissected;
|
|
int num_msgs;
|
|
int entry_offset;
|
|
proto_item * entry_item = NULL;
|
|
proto_tree * entry_tree = NULL;
|
|
int idx;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_resp_xmsg_retrieve, tvb, offset, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_xmsg_retrieve);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_xmsg_retrieve_num_msgs, tvb, offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGS, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_xmsg_retrieve_flags, tvb, offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_FLAGS, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_FLAGS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_xmsg_retrieve_reserved, tvb, offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_RESERVED, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T;
|
|
entry_offset = offset + len_dissected;
|
|
num_msgs = (int)tvb_get_guint8(tvb, offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGS);
|
|
for (idx = 0; idx < num_msgs; ++idx)
|
|
{
|
|
entry_item = proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry, tvb, entry_offset, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T, ENC_NA);
|
|
entry_tree = proto_item_add_subtree(entry_item, ett_lbmc_umq_cmd_resp_xmsg_retrieve_entry);
|
|
proto_tree_add_item(entry_tree, hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_regid, tvb, entry_offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_REGID, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(entry_tree, hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_stamp, tvb, entry_offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STAMP, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STAMP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(entry_tree, hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_assign_id, tvb, entry_offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_ASSIGN_ID, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(entry_tree, hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_num_ras, tvb, entry_offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_NUM_RAS, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_NUM_RAS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(entry_tree, hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_status, tvb, entry_offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STATUS, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STATUS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(entry_tree, hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_reserved, tvb, entry_offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_RESERVED, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
entry_offset += L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T;
|
|
len_dissected += L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_cmd_resp_rcv_msg_list(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_resp_msg_list, tvb, offset, L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_msg_list);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_msg_list_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_msg_list_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_cmd_resp_rcv_xmsg_list(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
int len_dissected = 0;
|
|
guint64 num_msgs = 0;
|
|
int entry_offset = 0;
|
|
proto_item * entry_item = NULL;
|
|
proto_tree * entry_tree = NULL;
|
|
guint64 idx;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_resp_xmsg_list, tvb, offset, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_xmsg_list);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_xmsg_list_num_msgs, tvb, offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_NUM_MSGS, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_NUM_MSGS, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T;
|
|
entry_offset = offset + len_dissected;
|
|
num_msgs = tvb_get_ntoh64(tvb, offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_NUM_MSGS);
|
|
for (idx = 0; idx < num_msgs; ++idx)
|
|
{
|
|
entry_item = proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_xmsg_list_entry, tvb, entry_offset, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T, ENC_NA);
|
|
entry_tree = proto_item_add_subtree(entry_item, ett_lbmc_umq_cmd_resp_xmsg_list_entry);
|
|
proto_tree_add_item(entry_tree, hf_lbmc_umq_cmd_resp_xmsg_list_entry_regid, tvb, entry_offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T_REGID, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(entry_tree, hf_lbmc_umq_cmd_resp_xmsg_list_entry_stamp, tvb, entry_offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T_STAMP, L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T_STAMP, ENC_BIG_ENDIAN);
|
|
entry_offset += L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T;
|
|
len_dissected += L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_cmd_resp_ctx_topic_list_appset_entry(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
int len_dissected = 0;
|
|
guint8 appset_name_len;
|
|
guint16 num_receiver_type_ids;
|
|
guint16 idx;
|
|
int receiver_type_id_offset;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry, tvb, offset, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_num_receiver_type_ids, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_NUM_RECEIVER_TYPE_IDS, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_NUM_RECEIVER_TYPE_IDS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_appset_name_len, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_APPSET_NAME_LEN, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_APPSET_NAME_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_reserved, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_RESERVED, ENC_NA);
|
|
len_dissected = L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T;
|
|
appset_name_len = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_APPSET_NAME_LEN);
|
|
len_dissected += (int)appset_name_len;
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_name, tvb, offset + L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T, (int)appset_name_len, ENC_ASCII|ENC_NA);
|
|
num_receiver_type_ids = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_NUM_RECEIVER_TYPE_IDS);
|
|
if (num_receiver_type_ids > 0)
|
|
{
|
|
receiver_type_id_offset = offset + len_dissected;
|
|
for (idx = 0; idx < num_receiver_type_ids; ++idx)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_receiver_type_id, tvb, receiver_type_id_offset, sizeof(lbm_uint32_t), ENC_BIG_ENDIAN);
|
|
len_dissected += (int)sizeof(lbm_uint32_t);
|
|
receiver_type_id_offset += (int)sizeof(lbm_uint32_t);
|
|
}
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_cmd_resp_ctx_topic_list_topic_entry(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
int len_dissected = 0;
|
|
guint8 topic_len;
|
|
guint16 num_appsets;
|
|
guint16 idx;
|
|
int appset_offset;
|
|
int len;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry, tvb, offset, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_topic_list_topic_entry);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_RCR_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_num_appsets, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_NUM_APPSETS, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_NUM_APPSETS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_topic_len, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_TOPIC_LEN, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_TOPIC_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_reserved, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T;
|
|
topic_len = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_TOPIC_LEN);
|
|
len_dissected += (int)topic_len;
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_topic_entry_topic, tvb, offset + L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T, (int)topic_len, ENC_ASCII|ENC_NA);
|
|
num_appsets = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_NUM_APPSETS);
|
|
if (num_appsets > 0)
|
|
{
|
|
appset_offset = offset + len_dissected;
|
|
for (idx = 0; idx < num_appsets; ++idx)
|
|
{
|
|
len = dissect_nhdr_umq_cmd_resp_ctx_topic_list_appset_entry(tvb, appset_offset, pinfo, subtree);
|
|
appset_offset += len;
|
|
len_dissected += len;
|
|
}
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_cmd_resp_ctx_topic_list(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
int len_dissected = 0;
|
|
int len;
|
|
guint32 num_topics;
|
|
guint32 idx;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_resp_topic_list, tvb, offset, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_topic_list);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_topic_list_num_topics, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T_NUM_TOPICS, L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T_NUM_TOPICS, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T;
|
|
num_topics = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T_NUM_TOPICS);
|
|
for (idx = 0; idx < num_topics; ++idx)
|
|
{
|
|
len = dissect_nhdr_umq_cmd_resp_ctx_topic_list_topic_entry(tvb, offset + len_dissected, pinfo, subtree);
|
|
len_dissected += len;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_cmd_resp_err(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
int len_dissected = 0;
|
|
int errmsg_len;
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_resp_err, tvb, offset, L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_err);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_err_reserved, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_err_code, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_CODE, L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_CODE, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T;
|
|
errmsg_len = tvb_reported_length_remaining(tvb, offset + L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_err_errmsg, tvb, offset + L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T, errmsg_len, ENC_ASCII|ENC_NA);
|
|
len_dissected += errmsg_len;
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_cmd_resp(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree, gboolean data_msg)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_cmd_resp_flags_ignore,
|
|
NULL
|
|
};
|
|
int len_dissected = 0;
|
|
int len;
|
|
guint8 resp_type;
|
|
proto_item * resp_type_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_resp, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS, hf_lbmc_umq_cmd_resp_flags, ett_lbmc_umq_cmd_resp, flags, ENC_BIG_ENDIAN);
|
|
resp_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_resp_type, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_RESP_TYPE, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_RESP_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_cmd_id, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_CMD_ID, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_CMD_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_inst_idx, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_INST_IDX, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_INST_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_regid, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_REGID, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_REGID, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T;
|
|
resp_type = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_RESP_TYPE);
|
|
if (tvb_reported_length_remaining(tvb, offset + L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T) > 0)
|
|
{
|
|
switch (resp_type)
|
|
{
|
|
case LBMC_UMQ_CMD_RESP_TYPE_CTX_TOPIC_LIST:
|
|
len = dissect_nhdr_umq_cmd_resp_ctx_topic_list(tvb, len_dissected, pinfo, subtree);
|
|
break;
|
|
case LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_RETRIEVE:
|
|
if (data_msg)
|
|
{
|
|
len = dissect_nhdr_umq_cmd_resp_rcv_xmsg_retrieve(tvb, len_dissected, pinfo, subtree);
|
|
}
|
|
else
|
|
{
|
|
len = dissect_nhdr_umq_cmd_resp_rcv_msg_retrieve(tvb, len_dissected, pinfo, subtree);
|
|
}
|
|
break;
|
|
case LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_LIST:
|
|
if (data_msg)
|
|
{
|
|
len = dissect_nhdr_umq_cmd_resp_rcv_xmsg_list(tvb, len_dissected, pinfo, subtree);
|
|
}
|
|
else
|
|
{
|
|
len = dissect_nhdr_umq_cmd_resp_rcv_msg_list(tvb, len_dissected, pinfo, subtree);
|
|
}
|
|
break;
|
|
case LBMC_UMQ_CMD_RESP_TYPE_ERROR:
|
|
len = dissect_nhdr_umq_cmd_resp_err(tvb, len_dissected, pinfo, subtree);
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, resp_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ CMD_RESP cmd_type 0x%02x", resp_type);
|
|
len = 0;
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
len = 0;
|
|
}
|
|
len_dissected += len;
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_sri_req(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_sri_req_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_sri_req, tvb, offset, L_LBMC_CNTL_SRI_REQ_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_sri_req);
|
|
proto_tree_add_item(subtree, hf_lbmc_sri_req_next_hdr, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_SRI_REQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_sri_req_hdr_len, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_HDR_LEN, L_LBMC_CNTL_SRI_REQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS, hf_lbmc_sri_req_flags, ett_lbmc_sri_req_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_sri_req_transport_idx, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_SRI_REQ_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_sri_req_topic_idx, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_TOPIC_IDX, L_LBMC_CNTL_SRI_REQ_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_SRI_REQ_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_store_domain(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_store_domain_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store_domain, tvb, offset, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store_domain);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_domain_next_hdr, tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_domain_hdr_len, tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS, hf_lbmc_ume_store_domain_flags, ett_lbmc_ume_store_domain_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_domain_domain, tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_DOMAIN, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_DOMAIN, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_sri(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_sri_flags_ignore,
|
|
&hf_lbmc_sri_flags_acktosrc,
|
|
&hf_lbmc_sri_flags_initial_sqn_known,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_sri, tvb, offset, L_LBMC_CNTL_SRI_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_sri);
|
|
proto_tree_add_item(subtree, hf_lbmc_sri_next_hdr, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_NEXT_HDR, L_LBMC_CNTL_SRI_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_sri_hdr_len, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_HDR_LEN, L_LBMC_CNTL_SRI_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_FLAGS, hf_lbmc_sri_flags, ett_lbmc_sri_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_sri_version, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_VERSION, L_LBMC_CNTL_SRI_HDR_T_VERSION, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_sri_low_sqn, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_LOW_SQN, L_LBMC_CNTL_SRI_HDR_T_LOW_SQN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_sri_high_sqn, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_HIGH_SQN, L_LBMC_CNTL_SRI_HDR_T_HIGH_SQN, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_SRI_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_route_info(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_route_info_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_route_info, tvb, offset, L_LBMC_CNTL_ROUTE_INFO_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_route_info);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_next_hdr, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_NEXT_HDR, L_LBMC_CNTL_ROUTE_INFO_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_hdr_len, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_HDR_LEN, L_LBMC_CNTL_ROUTE_INFO_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS, hf_lbmc_route_info_flags, ett_lbmc_route_info_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_gateway_version, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_GATEWAY_VERSION, L_LBMC_CNTL_ROUTE_INFO_HDR_T_GATEWAY_VERSION, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_configuration_signature, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_CONFIGURATION_SIGNATURE, L_LBMC_CNTL_ROUTE_INFO_HDR_T_CONFIGURATION_SIGNATURE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_node_id, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_NODE_ID, L_LBMC_CNTL_ROUTE_INFO_HDR_T_NODE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_topology, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_TOPOLOGY, L_LBMC_CNTL_ROUTE_INFO_HDR_T_TOPOLOGY, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_vers, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_VERS, L_LBMC_CNTL_ROUTE_INFO_HDR_T_VERS, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_sqn, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_SQN, L_LBMC_CNTL_ROUTE_INFO_HDR_T_SQN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_ttl, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_TTL, L_LBMC_CNTL_ROUTE_INFO_HDR_T_TTL, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_reserved1, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED1, L_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED1, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_reserved2, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED2, L_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED2, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_ROUTE_INFO_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_route_info_neighbor(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_route_info_neighbor_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_route_info_neighbor, tvb, offset, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_route_info_neighbor);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_neighbor_next_hdr, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NEXT_HDR, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_neighbor_hdr_len, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_HDR_LEN, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS, hf_lbmc_route_info_neighbor_flags, ett_lbmc_route_info_neighbor_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_neighbor_node_id, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NODE_ID, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NODE_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_neighbor_ingress_cost, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_INGRESS_COST, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_INGRESS_COST, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_route_info_neighbor_egress_cost, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_EGRESS_COST, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_EGRESS_COST, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_gateway_name(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_gateway_name_flags_ignore,
|
|
NULL
|
|
};
|
|
int len_dissected = 0;
|
|
int namelen = 0;
|
|
proto_item * hdrlen_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_gateway_name, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_gateway_name);
|
|
proto_tree_add_item(subtree, hf_lbmc_gateway_name_next_hdr, tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_NEXT_HDR, L_LBMC_CNTL_GATEWAY_NAME_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_gateway_name_hdr_len, tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_HDR_LEN, L_LBMC_CNTL_GATEWAY_NAME_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS, hf_lbmc_gateway_name_flags, ett_lbmc_gateway_name_flags, flags, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_BASIC_HDR_T;
|
|
namelen = (int) hdrlen - len_dissected;
|
|
if (namelen > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_gateway_name_gateway_name, tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS + L_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS, namelen, ENC_ASCII | ENC_NA);
|
|
len_dissected += namelen;
|
|
}
|
|
else
|
|
{
|
|
expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_auth_request(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_auth_request_flags_ignore,
|
|
NULL
|
|
};
|
|
int len_dissected = 0;
|
|
guint8 user_len;
|
|
int data_offset;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_request, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_request);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_request_next_hdr, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_NEXT_HDR, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_request_hdr_len, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_HDR_LEN, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS, hf_lbmc_auth_request_flags, ett_lbmc_auth_request_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_request_opid, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_OPID, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_OPID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_request_user_len, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_USER_LEN, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_USER_LEN, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_AUTH_REQUEST_HDR_T;
|
|
data_offset = offset + len_dissected;
|
|
user_len = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_USER_LEN);
|
|
if (user_len > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_request_user_name, tvb, data_offset, (int)user_len, ENC_ASCII|ENC_NA);
|
|
len_dissected += (int)user_len;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_auth_challenge(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_auth_challenge_flags_ignore,
|
|
NULL
|
|
};
|
|
int len_dissected = 0;
|
|
guint8 mod_len;
|
|
guint8 gen_len;
|
|
guint8 salt_len;
|
|
guint8 pubkey_len;
|
|
int data_offset;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_challenge, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_challenge);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_next_hdr, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_NEXT_HDR, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_hdr_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_HDR_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS, hf_lbmc_auth_challenge_flags, ett_lbmc_auth_challenge_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_opid, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_OPID, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_OPID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_mod_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_MOD_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_MOD_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_gen_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_GEN_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_GEN_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_salt_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_SALT_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_SALT_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_pubkey_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_PUBKEY_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_PUBKEY_LEN, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T;
|
|
data_offset = offset + len_dissected;
|
|
mod_len = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_MOD_LEN);
|
|
if (mod_len > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_mod, tvb, data_offset, (int)mod_len, ENC_NA);
|
|
len_dissected += (int)mod_len;
|
|
data_offset += (int)mod_len;
|
|
}
|
|
gen_len = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_GEN_LEN);
|
|
if (gen_len > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_gen, tvb, data_offset, (int)gen_len, ENC_NA);
|
|
len_dissected += (int)gen_len;
|
|
data_offset += (int)gen_len;
|
|
}
|
|
salt_len = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_SALT_LEN);
|
|
if (salt_len > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_salt, tvb, data_offset, (int)salt_len, ENC_NA);
|
|
len_dissected += (int)salt_len;
|
|
data_offset += (int)salt_len;
|
|
}
|
|
pubkey_len = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_PUBKEY_LEN);
|
|
if (pubkey_len > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_pubkey, tvb, data_offset, (int)pubkey_len, ENC_NA);
|
|
len_dissected += (int)pubkey_len;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_auth_challenge_rsp(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_auth_challenge_rsp_flags_ignore,
|
|
NULL
|
|
};
|
|
int len_dissected = 0;
|
|
guint8 pubkey_len;
|
|
guint8 evidence_len;
|
|
int data_offset;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_challenge_rsp, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_challenge_rsp);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_next_hdr, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_NEXT_HDR, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_hdr_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_HDR_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS, hf_lbmc_auth_challenge_rsp_flags, ett_lbmc_auth_challenge_rsp_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_opid, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_OPID, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_OPID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_pubkey_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_PUBKEY_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_PUBKEY_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_evidence_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_EVIDENCE_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_EVIDENCE_LEN, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T;
|
|
data_offset = offset + len_dissected;
|
|
pubkey_len = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_PUBKEY_LEN);
|
|
if (pubkey_len > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_pubkey, tvb, data_offset, (int)pubkey_len, ENC_NA);
|
|
len_dissected += (int)pubkey_len;
|
|
data_offset += (int)pubkey_len;
|
|
}
|
|
evidence_len = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_EVIDENCE_LEN);
|
|
if (evidence_len > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_evidence, tvb, data_offset, (int)evidence_len, ENC_NA);
|
|
len_dissected += (int)evidence_len;
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_auth_result(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_auth_result_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_result, tvb, offset, L_LBMC_CNTL_AUTH_RESULT_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_result);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_result_next_hdr, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_NEXT_HDR, L_LBMC_CNTL_AUTH_RESULT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_result_hdr_len, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_HDR_LEN, L_LBMC_CNTL_AUTH_RESULT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS, hf_lbmc_auth_result_flags, ett_lbmc_auth_result_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_result_opid, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_OPID, L_LBMC_CNTL_AUTH_RESULT_HDR_T_OPID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_result_result, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_RESULT, L_LBMC_CNTL_AUTH_RESULT_HDR_T_RESULT, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_AUTH_RESULT_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_auth_unknown(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
proto_item * opid_item = NULL;
|
|
guint8 opid;
|
|
int len_dissected = 0;
|
|
int datalen = 0;
|
|
proto_item * hdrlen_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_GENERIC_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_unknown, tvb, offset, (int) hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_unknown);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_unknown_next_hdr, tvb, offset + O_LBMC_CNTL_AUTH_GENERIC_HDR_T_NEXT_HDR, L_LBMC_CNTL_AUTH_GENERIC_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_auth_unknown_hdr_len, tvb, offset + O_LBMC_CNTL_AUTH_GENERIC_HDR_T_HDR_LEN, L_LBMC_CNTL_AUTH_GENERIC_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_unknown_flags, tvb, offset + O_LBMC_CNTL_AUTH_GENERIC_HDR_T_FLAGS, L_LBMC_CNTL_AUTH_GENERIC_HDR_T_FLAGS, ENC_BIG_ENDIAN);
|
|
opid_item = proto_tree_add_item(subtree, hf_lbmc_auth_unknown_opid, tvb, offset + O_LBMC_CNTL_AUTH_GENERIC_HDR_T_OPID, L_LBMC_CNTL_AUTH_GENERIC_HDR_T_OPID, ENC_BIG_ENDIAN);
|
|
opid = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_GENERIC_HDR_T_OPID);
|
|
expert_add_info_format(pinfo, opid_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC AUTH OPID 0x%02x", opid);
|
|
len_dissected = L_LBMC_CNTL_AUTH_GENERIC_HDR_T;
|
|
datalen = (int) hdrlen - len_dissected;
|
|
if (datalen > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_auth_unknown_data, tvb, offset + L_LBMC_CNTL_AUTH_GENERIC_HDR_T, datalen, ENC_NA);
|
|
len_dissected += datalen;
|
|
}
|
|
else
|
|
{
|
|
expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_hmac(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_hmac_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_hmac, tvb, offset, L_LBMC_CNTL_HMAC_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_hmac);
|
|
proto_tree_add_item(subtree, hf_lbmc_hmac_next_hdr, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_NEXT_HDR, L_LBMC_CNTL_HMAC_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_hmac_hdr_len, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_HDR_LEN, L_LBMC_CNTL_HMAC_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_FLAGS, hf_lbmc_hmac_flags, ett_lbmc_hmac_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_hmac_padding, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_PADDING, L_LBMC_CNTL_HMAC_HDR_T_PADDING, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_hmac_data, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_DATA, L_LBMC_CNTL_HMAC_HDR_T_DATA, ENC_NA);
|
|
return (L_LBMC_CNTL_HMAC_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_umq_sid(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_umq_sid_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_sid, tvb, offset, L_LBMC_CNTL_UMQ_SID_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_sid);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_sid_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_SID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_sid_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_SID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS, hf_lbmc_umq_sid_flags, ett_lbmc_umq_sid_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_sid_key, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_KEY, L_LBMC_CNTL_UMQ_SID_HDR_T_KEY, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_umq_sid_sid, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_SID, L_LBMC_CNTL_UMQ_SID_HDR_T_SID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UMQ_SID_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_destination(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_destination_info_t * info)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_destination_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_destination, tvb, offset, L_LBMC_DESTINATION_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_destination);
|
|
proto_tree_add_item(subtree, hf_lbmc_destination_next_hdr, tvb, offset + O_LBMC_DESTINATION_HDR_T_NEXT_HDR, L_LBMC_DESTINATION_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_destination_hdr_len, tvb, offset + O_LBMC_DESTINATION_HDR_T_HDR_LEN, L_LBMC_DESTINATION_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_DESTINATION_HDR_T_FLAGS, hf_lbmc_destination_flags, ett_lbmc_destination_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_destination_domain_id, tvb, offset + O_LBMC_DESTINATION_HDR_T_DOMAIN_ID, L_LBMC_DESTINATION_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_destination_ipaddr, tvb, offset + O_LBMC_DESTINATION_HDR_T_IPADDR, L_LBMC_DESTINATION_HDR_T_IPADDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_destination_port, tvb, offset + O_LBMC_DESTINATION_HDR_T_PORT, L_LBMC_DESTINATION_HDR_T_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_destination_hops_taken, tvb, offset + O_LBMC_DESTINATION_HDR_T_HOPS_TAKEN, L_LBMC_DESTINATION_HDR_T_HOPS_TAKEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_destination_orig_domain_id, tvb, offset + O_LBMC_DESTINATION_HDR_T_ORIG_DOMAIN_ID, L_LBMC_DESTINATION_HDR_T_ORIG_DOMAIN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_destination_orig_ipaddr, tvb, offset + O_LBMC_DESTINATION_HDR_T_ORIG_IPADDR, L_LBMC_DESTINATION_HDR_T_ORIG_IPADDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_destination_orig_port, tvb, offset + O_LBMC_DESTINATION_HDR_T_ORIG_PORT, L_LBMC_DESTINATION_HDR_T_ORIG_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_destination_reserved, tvb, offset + O_LBMC_DESTINATION_HDR_T_RESERVED, L_LBMC_DESTINATION_HDR_T_RESERVED, ENC_BIG_ENDIAN);
|
|
if (info != NULL)
|
|
{
|
|
info->set = TRUE;
|
|
info->endpoint_a.domain = tvb_get_ntohl(tvb, offset + O_LBMC_DESTINATION_HDR_T_DOMAIN_ID);
|
|
TVB_SET_ADDRESS(&(info->endpoint_a.addr), AT_IPv4, tvb, offset + O_LBMC_DESTINATION_HDR_T_IPADDR, L_LBMC_DESTINATION_HDR_T_IPADDR);
|
|
info->endpoint_a.port = tvb_get_ntohs(tvb, offset + O_LBMC_DESTINATION_HDR_T_PORT);
|
|
info->endpoint_b.domain = tvb_get_ntohl(tvb, offset + O_LBMC_DESTINATION_HDR_T_ORIG_DOMAIN_ID);
|
|
TVB_SET_ADDRESS(&(info->endpoint_b.addr), AT_IPv4, tvb, offset + O_LBMC_DESTINATION_HDR_T_ORIG_IPADDR, L_LBMC_DESTINATION_HDR_T_ORIG_IPADDR);
|
|
info->endpoint_b.port = tvb_get_ntohs(tvb, offset + O_LBMC_DESTINATION_HDR_T_ORIG_PORT);
|
|
}
|
|
return (L_LBMC_DESTINATION_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_topic_idx(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_topic_idx_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_idx, tvb, offset, L_LBMC_TOPIC_IDX_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_idx);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_idx_next_hdr, tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_NEXT_HDR, L_LBMC_TOPIC_IDX_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_idx_hdr_len, tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_HDR_LEN, L_LBMC_TOPIC_IDX_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_FLAGS, hf_lbmc_topic_idx_flags, ett_lbmc_topic_idx_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_idx_tidx, tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_TIDX, L_LBMC_TOPIC_IDX_HDR_T_TIDX, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_TOPIC_IDX_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_topic_source(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_topic_source_flags_ignore,
|
|
&hf_lbmc_topic_source_flags_eos,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_source, tvb, offset, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_source);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_source_next_hdr, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_NEXT_HDR, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_source_hdr_len, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_HDR_LEN, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS, hf_lbmc_topic_source_flags, ett_lbmc_topic_source_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_source_domain_id, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_DOMAIN_ID, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_TOPIC_SOURCE_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_topic_source_exfunc(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_topic_source_exfunc_flags_ignore,
|
|
NULL
|
|
};
|
|
static const int * functionality_flags[] =
|
|
{
|
|
&hf_lbmc_topic_source_exfunc_functionality_flags_lj,
|
|
&hf_lbmc_topic_source_exfunc_functionality_flags_ume,
|
|
&hf_lbmc_topic_source_exfunc_functionality_flags_umq,
|
|
&hf_lbmc_topic_source_exfunc_functionality_flags_ulb,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_source_exfunc, tvb, offset, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_source_exfunc);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_source_exfunc_next_hdr, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_NEXT_HDR, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_source_exfunc_hdr_len, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_HDR_LEN, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS, hf_lbmc_topic_source_exfunc_flags, ett_lbmc_topic_source_exfunc_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_source_exfunc_src_ip, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_IP, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_IP, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_source_exfunc_src_port, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_PORT, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_topic_source_exfunc_unused, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_UNUSED, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_UNUSED, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, hf_lbmc_topic_source_exfunc_functionality_flags, ett_lbmc_topic_source_exfunc_functionality_flags, functionality_flags, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_store_ext(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_store_ext_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store_ext, tvb, offset, L_LBMC_CNTL_UME_STORE_EXT_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store_ext);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_next_hdr, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_hdr_len, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS, hf_lbmc_ume_store_ext_flags, ett_lbmc_ume_store_ext_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_grp_idx, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_GRP_IDX, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_GRP_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_store_tcp_port, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_TCP_PORT, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_TCP_PORT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_store_idx, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IDX, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IDX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_store_ip_addr, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IP_ADDR, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IP_ADDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_src_reg_id, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_SRC_REG_ID, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_SRC_REG_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_domain_id, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_DOMAIN_ID, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_version, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_VERSION, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_VERSION, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_STORE_EXT_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_ume_psrc_election_token(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_ume_psrc_election_token_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_psrc_election_token, tvb, offset, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_psrc_election_token);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_psrc_election_token_next_hdr, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_psrc_election_token_hdr_len, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS, hf_lbmc_ume_psrc_election_token_flags, ett_lbmc_ume_psrc_election_token_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_psrc_election_token_store_index, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_STORE_INDEX, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_STORE_INDEX, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_ume_psrc_election_token_token, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_TOKEN, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_TOKEN, ENC_BIG_ENDIAN);
|
|
return (L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_tcp_sid(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_tcp_sid_info_t * info)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_tcp_sid_flags_ignore,
|
|
NULL
|
|
};
|
|
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_tcp_sid, tvb, offset, L_LBMC_CNTL_TCP_SID_HDR_T, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tcp_sid);
|
|
proto_tree_add_item(subtree, hf_lbmc_tcp_sid_next_hdr, tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_NEXT_HDR, L_LBMC_CNTL_TCP_SID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tcp_sid_hdr_len, tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_HDR_LEN, L_LBMC_CNTL_TCP_SID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_FLAGS, hf_lbmc_tcp_sid_flags, ett_lbmc_tcp_sid_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_tcp_sid_sid, tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_SID, L_LBMC_CNTL_TCP_SID_HDR_T_SID, ENC_BIG_ENDIAN);
|
|
if (info != NULL)
|
|
{
|
|
info->set = TRUE;
|
|
info->session_id = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_SID);
|
|
}
|
|
return (L_LBMC_CNTL_TCP_SID_HDR_T);
|
|
}
|
|
|
|
static int dissect_nhdr_extopt_cfgopt(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
|
|
{
|
|
/*
|
|
Returns number of bytes dissected (>=0), or -1 if an error occurs. In either case, *bytes_dissected
|
|
will contain the number of bytes successfully dissected.
|
|
*/
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
int curr_offset = offset;
|
|
int len_dissected = 0;
|
|
|
|
while (tvb_reported_length_remaining(tvb, curr_offset) > L_LBMC_EXTOPT_CFGOPT_HDR_T)
|
|
{
|
|
int name_offset = 0;
|
|
int name_len = 0;
|
|
int value_offset = 0;
|
|
int value_len = 0;
|
|
int optlen = L_LBMC_EXTOPT_CFGOPT_HDR_T;
|
|
|
|
name_offset = curr_offset + L_LBMC_EXTOPT_CFGOPT_HDR_T;
|
|
name_len = tvb_strsize(tvb, name_offset);
|
|
optlen += name_len;
|
|
value_offset = name_offset + name_len;
|
|
value_len = tvb_strsize(tvb, value_offset);
|
|
optlen += value_len;
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_extopt_cfgopt, tvb, curr_offset, optlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_extopt_cfgopt);
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_cfgopt_scope, tvb, curr_offset + O_LBMC_EXTOPT_CFGOPT_HDR_T_SCOPE, L_LBMC_EXTOPT_CFGOPT_HDR_T_SCOPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_cfgopt_parent, tvb, curr_offset + O_LBMC_EXTOPT_CFGOPT_HDR_T_PARENT, L_LBMC_EXTOPT_CFGOPT_HDR_T_PARENT, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_cfgopt_name, tvb, name_offset, name_len, ENC_ASCII|ENC_NA);
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_cfgopt_value, tvb, value_offset, value_len, ENC_ASCII|ENC_NA);
|
|
curr_offset += optlen;
|
|
len_dissected += optlen;
|
|
}
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_extopt(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree, lbmc_extopt_reassembled_data_t * reassembly)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
static const int * flags[] =
|
|
{
|
|
&hf_lbmc_extopt_flags_ignore,
|
|
&hf_lbmc_extopt_flags_ignore_subtype,
|
|
&hf_lbmc_extopt_flags_more_fragments,
|
|
NULL
|
|
};
|
|
proto_item * ritem = NULL;
|
|
proto_tree * rtree = NULL;
|
|
guint8 flags_val = 0;
|
|
int len_dissected = 0;
|
|
int data_len = 0;
|
|
guint16 subtype;
|
|
guint16 fragment_offset;
|
|
int data_offset;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_EXTOPT_HDR_T_HDR_LEN);
|
|
flags_val = tvb_get_guint8(tvb, offset + O_LBMC_EXTOPT_HDR_T_FLAGS);
|
|
subtype = tvb_get_ntohs(tvb, offset + O_LBMC_EXTOPT_HDR_T_SUBTYPE);
|
|
fragment_offset = tvb_get_ntohs(tvb, offset + O_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_extopt, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_extopt);
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_next_hdr, tvb, offset + O_LBMC_EXTOPT_HDR_T_NEXT_HDR, L_LBMC_EXTOPT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_hdr_len, tvb, offset + O_LBMC_EXTOPT_HDR_T_HDR_LEN, L_LBMC_EXTOPT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_EXTOPT_HDR_T_FLAGS, hf_lbmc_extopt_flags, ett_lbmc_extopt_flags, flags, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_id, tvb, offset + O_LBMC_EXTOPT_HDR_T_ID, L_LBMC_EXTOPT_HDR_T_ID, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_subtype, tvb, offset + O_LBMC_EXTOPT_HDR_T_SUBTYPE, L_LBMC_EXTOPT_HDR_T_SUBTYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_fragment_offset, tvb, offset + O_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET, L_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_EXTOPT_HDR_T;
|
|
data_len = (int)hdrlen - len_dissected;
|
|
data_offset = offset + len_dissected;
|
|
len_dissected += data_len;
|
|
if ((flags_val & LBMC_EXTOPT_FLAG_MORE_FRAGMENT) == 0)
|
|
{
|
|
/* No more fragments. Do we have a reassembly already started? */
|
|
if (reassembly->reassembly_in_progress)
|
|
{
|
|
tvbuff_t * reassembly_tvb;
|
|
gchar * buf;
|
|
proto_item * pi = NULL;
|
|
|
|
tvb_memcpy(tvb, reassembly->data + fragment_offset, data_offset, data_len);
|
|
reassembly->len += data_len;
|
|
buf = (gchar *) wmem_memdup(wmem_file_scope(), reassembly->data, reassembly->len);
|
|
reassembly_tvb = tvb_new_real_data(buf, reassembly->len, reassembly->len);
|
|
add_new_data_source(pinfo, reassembly_tvb, "Reassembled EXTOPT fragment data");
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_data, tvb, data_offset, data_len, ENC_NA);
|
|
ritem = proto_tree_add_item(tree, hf_lbmc_extopt_reassembled_data, reassembly_tvb, 0, reassembly->len, ENC_NA);
|
|
rtree = proto_item_add_subtree(ritem, ett_lbmc_extopt_reassembled_data);
|
|
pi = proto_tree_add_uint(rtree, hf_lbmc_extopt_reassembled_data_subtype, reassembly_tvb, 0, 0, reassembly->subtype);
|
|
PROTO_ITEM_SET_GENERATED(pi);
|
|
pi = proto_tree_add_uint(rtree, hf_lbmc_extopt_reassembled_data_len, reassembly_tvb, 0, 0, (guint32)reassembly->len);
|
|
PROTO_ITEM_SET_GENERATED(pi);
|
|
switch (reassembly->subtype)
|
|
{
|
|
case LBMC_EXT_NHDR_MSGSEL:
|
|
proto_tree_add_item(rtree, hf_lbmc_extopt_reassembled_data_msgsel, reassembly_tvb, 0, reassembly->len, ENC_ASCII|ENC_NA);
|
|
break;
|
|
case LBMC_EXT_NHDR_CFGOPT:
|
|
len_dissected += dissect_nhdr_extopt_cfgopt(reassembly_tvb, 0, pinfo, rtree);
|
|
break;
|
|
default:
|
|
proto_tree_add_item(rtree, hf_lbmc_extopt_reassembled_data_data, reassembly_tvb, 0, reassembly->len, ENC_NA);
|
|
break;
|
|
}
|
|
lbmc_init_extopt_reassembled_data(reassembly);
|
|
}
|
|
else
|
|
{
|
|
switch (subtype)
|
|
{
|
|
case LBMC_EXT_NHDR_MSGSEL:
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_msgsel, tvb, data_offset, data_len, ENC_ASCII|ENC_NA);
|
|
break;
|
|
case LBMC_EXT_NHDR_CFGOPT:
|
|
len_dissected += dissect_nhdr_extopt_cfgopt(tvb, data_offset, pinfo, subtree);
|
|
break;
|
|
default:
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_data, tvb, data_offset, data_len, ENC_NA);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
/* Self-contained extended option. */
|
|
if (reassembly->reassembly_in_progress)
|
|
{
|
|
tvb_memcpy(tvb, reassembly->data + fragment_offset, data_offset, data_len);
|
|
reassembly->len += data_len;
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_data, tvb, offset + len_dissected, data_len, ENC_NA);
|
|
}
|
|
else
|
|
{
|
|
reassembly->reassembly_in_progress = TRUE;
|
|
reassembly->subtype = subtype;
|
|
reassembly->len = 0;
|
|
if (fragment_offset != 0)
|
|
{
|
|
expert_add_info_format(pinfo, NULL, &ei_lbmc_analysis_no_reassembly, "LBMC EXTOPT: reassembly not in progress but fragment_offset not zero (%" G_GUINT16_FORMAT ")", fragment_offset);
|
|
}
|
|
else
|
|
{
|
|
tvb_memcpy(tvb, reassembly->data + fragment_offset, data_offset, data_len);
|
|
reassembly->len += data_len;
|
|
}
|
|
proto_tree_add_item(subtree, hf_lbmc_extopt_data, tvb, data_offset, data_len, ENC_NA);
|
|
}
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_nhdr_unhandled(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 next_hdr)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 hdrlen = 0;
|
|
int len_dissected = 0;
|
|
int datalen = 0;
|
|
proto_item * hdrlen_item = NULL;
|
|
|
|
hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_BASIC_HDR_T_HDR_LEN);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbmc_unhandled, tvb, offset, (gint)hdrlen, ENC_NA);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc_unhandled_hdr);
|
|
expert_add_info_format(pinfo, subtree_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC header type 0x%02x", next_hdr);
|
|
proto_tree_add_item(subtree, hf_lbmc_unhandled_next_hdr, tvb, offset + O_LBMC_UNHANDLED_HDR_T_NEXT_HDR, L_LBMC_UNHANDLED_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_unhandled_hdr_len, tvb, offset + O_LBMC_UNHANDLED_HDR_T_HDR_LEN, L_LBMC_UNHANDLED_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
|
|
len_dissected = L_LBMC_UNHANDLED_HDR_T_NEXT_HDR + L_LBMC_UNHANDLED_HDR_T_HDR_LEN;
|
|
datalen = (int) hdrlen - len_dissected;
|
|
if (datalen > 0)
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_unhandled_data, tvb, offset + O_LBMC_UNHANDLED_HDR_T_HDR_LEN + L_LBMC_UNHANDLED_HDR_T_HDR_LEN, datalen, ENC_NA);
|
|
len_dissected += datalen;
|
|
}
|
|
else
|
|
{
|
|
expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
|
|
}
|
|
proto_item_set_len(subtree_item, len_dissected);
|
|
return (len_dissected);
|
|
}
|
|
|
|
static int dissect_msg_properties(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
proto_item * data_item = NULL;
|
|
proto_tree * data_tree = NULL;
|
|
proto_item * field_item = NULL;
|
|
proto_tree * field_tree = NULL;
|
|
guint32 magic;
|
|
guint16 num_fields;
|
|
guint16 idx;
|
|
guint encoding;
|
|
int field_offset;
|
|
int data_length;
|
|
proto_item * magic_item = NULL;
|
|
|
|
magic = tvb_get_letohl(tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_MAGIC);
|
|
encoding = ENC_LITTLE_ENDIAN;
|
|
if (magic == LBM_MSG_PROPERTIES_MAGIC)
|
|
{
|
|
encoding = ENC_LITTLE_ENDIAN;
|
|
}
|
|
else if (magic == LBM_MSG_PROPERTIES_ANTIMAGIC)
|
|
{
|
|
encoding = ENC_BIG_ENDIAN;
|
|
}
|
|
else
|
|
{
|
|
magic = 0xffffffff;
|
|
}
|
|
data_length = tvb_reported_length_remaining(tvb, offset);
|
|
subtree_item = proto_tree_add_item(tree, hf_lbm_msg_properties, tvb, offset, data_length, encoding);
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbm_msg_properties);
|
|
data_item = proto_tree_add_item(subtree, hf_lbm_msg_properties_data, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_MAGIC, L_LBM_MSG_PROPERTIES_DATA_T, encoding);
|
|
data_tree = proto_item_add_subtree(data_item, ett_lbm_msg_properties_data);
|
|
magic_item = proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_magic, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_MAGIC, L_LBM_MSG_PROPERTIES_DATA_T_MAGIC, ENC_LITTLE_ENDIAN);
|
|
proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_num_fields, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS, L_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS, encoding);
|
|
proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_version, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, L_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, encoding);
|
|
proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_type, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, L_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, encoding);
|
|
proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_res, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_RES, L_LBM_MSG_PROPERTIES_DATA_T_RES, encoding);
|
|
if ((magic != LBM_MSG_PROPERTIES_MAGIC) && (magic != LBM_MSG_PROPERTIES_ANTIMAGIC))
|
|
{
|
|
expert_add_info_format(pinfo, magic_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC Message Properties MAGIC value");
|
|
return (L_LBM_MSG_PROPERTIES_DATA_T);
|
|
}
|
|
if (encoding == ENC_LITTLE_ENDIAN)
|
|
{
|
|
num_fields = tvb_get_letohs(tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS);
|
|
}
|
|
else
|
|
{
|
|
num_fields = tvb_get_ntohs(tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS);
|
|
}
|
|
field_offset = offset + L_LBM_MSG_PROPERTIES_DATA_T;
|
|
for (idx = 0; idx < num_fields; ++idx)
|
|
{
|
|
guint32 key_offset;
|
|
guint32 value_offset;
|
|
guint32 type;
|
|
int actual_key_offset;
|
|
int actual_value_offset;
|
|
int key_len;
|
|
int value_len;
|
|
proto_item * type_item = NULL;
|
|
|
|
if (encoding == ENC_LITTLE_ENDIAN)
|
|
{
|
|
key_offset = tvb_get_letohl(tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_KEY_OFFSET);
|
|
value_offset = tvb_get_letohl(tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_VALUE_OFFSET);
|
|
type = tvb_get_letohl(tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_TYPE);
|
|
}
|
|
else
|
|
{
|
|
key_offset = tvb_get_ntohl(tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_KEY_OFFSET);
|
|
value_offset = tvb_get_ntohl(tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_VALUE_OFFSET);
|
|
type = tvb_get_ntohl(tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_TYPE);
|
|
}
|
|
actual_key_offset = (int) key_offset;
|
|
actual_value_offset = (int) value_offset;
|
|
field_item = proto_tree_add_item(subtree, hf_lbm_msg_properties_hdr, tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_KEY_OFFSET, L_LBM_MSG_PROPERTIES_HDR_T, encoding);
|
|
field_tree = proto_item_add_subtree(field_item, ett_lbm_msg_properties_hdr);
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_key_offset, tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_KEY_OFFSET, L_LBM_MSG_PROPERTIES_HDR_T_KEY_OFFSET, encoding);
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_value_offset, tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_VALUE_OFFSET, L_LBM_MSG_PROPERTIES_HDR_T_VALUE_OFFSET, encoding);
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_hash, tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_HASH, L_LBM_MSG_PROPERTIES_HDR_T_HASH, encoding);
|
|
type_item = proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_type, tvb, field_offset + O_LBM_MSG_PROPERTIES_HDR_T_TYPE, L_LBM_MSG_PROPERTIES_HDR_T_TYPE, encoding);
|
|
switch (type)
|
|
{
|
|
case LBM_MSG_PROPERTY_BOOLEAN:
|
|
case LBM_MSG_PROPERTY_BYTE:
|
|
value_len = 1;
|
|
break;
|
|
case LBM_MSG_PROPERTY_SHORT:
|
|
value_len = 2;
|
|
break;
|
|
case LBM_MSG_PROPERTY_INT:
|
|
case LBM_MSG_PROPERTY_FLOAT:
|
|
value_len = 4;
|
|
break;
|
|
case LBM_MSG_PROPERTY_LONG:
|
|
case LBM_MSG_PROPERTY_DOUBLE:
|
|
value_len = 8;
|
|
break;
|
|
case LBM_MSG_PROPERTY_STRING:
|
|
value_len = (int)tvb_strsize(tvb, actual_value_offset);
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC Message Properties type 0x%08x", type);
|
|
value_len = 4;
|
|
break;
|
|
}
|
|
key_len = (int)tvb_strsize(tvb, actual_key_offset);
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_key, tvb, offset + actual_key_offset, key_len, encoding);
|
|
switch (type)
|
|
{
|
|
case LBM_MSG_PROPERTY_BOOLEAN:
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_boolean_value, tvb, offset + actual_value_offset, value_len, encoding);
|
|
break;
|
|
case LBM_MSG_PROPERTY_BYTE:
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_byte_value, tvb, offset + actual_value_offset, value_len, encoding);
|
|
break;
|
|
case LBM_MSG_PROPERTY_SHORT:
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_short_value, tvb, offset + actual_value_offset, value_len, encoding);
|
|
break;
|
|
case LBM_MSG_PROPERTY_INT:
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_int_value, tvb, offset + actual_value_offset, value_len, encoding);
|
|
break;
|
|
case LBM_MSG_PROPERTY_FLOAT:
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_float_value, tvb, offset + actual_value_offset, value_len, encoding);
|
|
break;
|
|
case LBM_MSG_PROPERTY_LONG:
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_long_value, tvb, offset + actual_value_offset, value_len, encoding);
|
|
break;
|
|
case LBM_MSG_PROPERTY_DOUBLE:
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_double_value, tvb, offset + actual_value_offset, value_len, encoding);
|
|
break;
|
|
case LBM_MSG_PROPERTY_STRING:
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_string_value, tvb, offset + actual_value_offset, value_len, encoding);
|
|
break;
|
|
default:
|
|
proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_unknown_value, tvb, offset + actual_value_offset, value_len, encoding);
|
|
break;
|
|
}
|
|
field_offset += L_LBM_MSG_PROPERTIES_HDR_T;
|
|
}
|
|
return (data_length);
|
|
}
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Miscellaneous functions. */
|
|
/*----------------------------------------------------------------------------*/
|
|
static const gchar * lbmc_determine_msg_type(const guint8 * header_array)
|
|
{
|
|
if (header_array[LBMC_NHDR_SSF_INIT] != 0)
|
|
{
|
|
return ("SSF-INIT");
|
|
}
|
|
else if (header_array[LBMC_NHDR_SSF_CREQ] != 0)
|
|
{
|
|
return ("SSF-CREQ");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UME_PREG] != 0)
|
|
{
|
|
return ("PREG");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UME_PREG_RESP] != 0)
|
|
{
|
|
return ("PREG-RESP");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UME_ACK] != 0)
|
|
{
|
|
return ("ACK");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UME_RXREQ] != 0)
|
|
{
|
|
return ("RXREQ");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UME_KEEPALIVE] != 0)
|
|
{
|
|
return ("UME-KA");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UME_CAPABILITY] != 0)
|
|
{
|
|
return ("UME-CAP");
|
|
}
|
|
else if (header_array[LBMC_NHDR_TSNI] != 0)
|
|
{
|
|
return ("TSNI");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_REG] != 0)
|
|
{
|
|
return ("UMQ-REG");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_REG_RESP] != 0)
|
|
{
|
|
return ("UMQ-REG-RSP");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_ACK] != 0)
|
|
{
|
|
return ("UMQ-ACK");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_KA] != 0)
|
|
{
|
|
return ("UMQ-KA");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_RCR] != 0)
|
|
{
|
|
return ("UMQ-RCR");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_RXREQ] != 0)
|
|
{
|
|
return ("UMQ-RXREQ");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_QMGMT] != 0)
|
|
{
|
|
return ("UMQ-QMGMT");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UME_LJ_INFO] != 0)
|
|
{
|
|
return ("LJINFO");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_RESUB_REQ] != 0)
|
|
{
|
|
return ("UMQ-RESUB-REQ");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_RESUB_RESP] != 0)
|
|
{
|
|
return ("UMQ-RESUB-RESP");
|
|
}
|
|
else if (header_array[LBMC_NHDR_TOPIC_INTEREST] != 0)
|
|
{
|
|
return ("TOPIC-INT");
|
|
}
|
|
else if (header_array[LBMC_NHDR_PATTERN_INTEREST] != 0)
|
|
{
|
|
return ("PAT-INT");
|
|
}
|
|
else if (header_array[LBMC_NHDR_ADVERTISEMENT] != 0)
|
|
{
|
|
return ("AD");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_ULB_RCR] != 0)
|
|
{
|
|
return ("UMQ-ULB-RCR");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_LF] != 0)
|
|
{
|
|
return ("UMQ-LF");
|
|
}
|
|
else if (header_array[LBMC_NHDR_CTXINFO] != 0)
|
|
{
|
|
return ("CTXINFO");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UME_PSER] != 0)
|
|
{
|
|
return ("PSER");
|
|
}
|
|
else if (header_array[LBMC_NHDR_DOMAIN] != 0)
|
|
{
|
|
return ("DOMAIN");
|
|
}
|
|
else if (header_array[LBMC_NHDR_TNWG_CAPABILITIES] != 0)
|
|
{
|
|
return ("TNWG_CAP");
|
|
}
|
|
else if (header_array[LBMC_NHDR_PATIDX] != 0)
|
|
{
|
|
return ("PATIDX");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_IDX_CMD] != 0)
|
|
{
|
|
return ("UMQ-IDX-CMD");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_IDX_CMD_RESP] != 0)
|
|
{
|
|
return ("UMQ-IDX-CMD-RESP");
|
|
}
|
|
else if (header_array[LBMC_NHDR_TOPIC_MD_INTEREST] != 0)
|
|
{
|
|
return ("TOPIC-MD-INT");
|
|
}
|
|
else if (header_array[LBMC_NHDR_PATTERN_MD_INTEREST] != 0)
|
|
{
|
|
return ("PAT-MD-INT");
|
|
}
|
|
else if (header_array[LBMC_NHDR_LJI_REQ] != 0)
|
|
{
|
|
return ("LJI-REQ");
|
|
}
|
|
else if (header_array[LBMC_NHDR_TNWG_KA] != 0)
|
|
{
|
|
return ("TNWG-KA");
|
|
}
|
|
else if (header_array[LBMC_NHDR_AUTHENTICATION] != 0)
|
|
{
|
|
return ("AUTH");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UME_RCV_KEEPALIVE] != 0)
|
|
{
|
|
return ("UME-RCV-KA");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_CMD] != 0)
|
|
{
|
|
return ("UMQ-CMD");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UMQ_CMD_RESP] != 0)
|
|
{
|
|
return ("UMQ-CMD-RESP");
|
|
}
|
|
else if (header_array[LBMC_NHDR_EXTOPT] != 0)
|
|
{
|
|
return ("EXTOPT");
|
|
}
|
|
else if (header_array[LBMC_NHDR_HMAC] != 0)
|
|
{
|
|
return ("HMAC");
|
|
}
|
|
else if (header_array[LBMC_NHDR_SRI_REQ] != 0)
|
|
{
|
|
return ("SRI-REQ");
|
|
}
|
|
else if (header_array[LBMC_NHDR_SRI] != 0)
|
|
{
|
|
return ("SRI");
|
|
}
|
|
else if (header_array[LBMC_NHDR_UME_PSRC_ELECTION_TOKEN] != 0)
|
|
{
|
|
return ("PSRC-ETOK");
|
|
}
|
|
else if (header_array[LBMC_NHDR_TOPIC_SOURCE] != 0)
|
|
{
|
|
return ("TOPIC-SRC");
|
|
}
|
|
else if (header_array[LBMC_NHDR_ROUTE_INFO] != 0)
|
|
{
|
|
return ("RTE-INFO");
|
|
}
|
|
else if (header_array[LBMC_NHDR_TCP_SID] != 0)
|
|
{
|
|
return ("TCP-SID");
|
|
}
|
|
return (NULL);
|
|
}
|
|
|
|
static const gchar * lbmc_determine_data_msg_type(gboolean retransmission, const guint8 * header_array)
|
|
{
|
|
if (retransmission)
|
|
{
|
|
if (header_array[LBMC_NHDR_REQUEST] != 0)
|
|
{
|
|
return ("RX-DATA[REQ]");
|
|
}
|
|
else
|
|
{
|
|
return ("RX-DATA");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (header_array[LBMC_NHDR_REQUEST] != 0)
|
|
{
|
|
return ("DATA[REQ]");
|
|
}
|
|
else
|
|
{
|
|
return ("DATA");
|
|
}
|
|
}
|
|
}
|
|
|
|
static lbm_uim_stream_info_t * lbmc_dup_stream_info(const lbm_uim_stream_info_t * info)
|
|
{
|
|
/* Returns a packet-scoped copy. */
|
|
lbm_uim_stream_info_t * ptr = NULL;
|
|
|
|
ptr = wmem_new(wmem_packet_scope(), lbm_uim_stream_info_t);
|
|
ptr->channel = info->channel;
|
|
ptr->sqn = info->sqn;
|
|
ptr->endpoint_a.type = info->endpoint_a.type;
|
|
if (ptr->endpoint_a.type == lbm_uim_instance_stream)
|
|
{
|
|
memcpy((void *)ptr->endpoint_a.stream_info.ctxinst.ctxinst, (const void *)info->endpoint_a.stream_info.ctxinst.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
}
|
|
else
|
|
{
|
|
ptr->endpoint_a.stream_info.dest = info->endpoint_a.stream_info.dest;
|
|
}
|
|
ptr->endpoint_b.type = info->endpoint_b.type;
|
|
if (ptr->endpoint_b.type == lbm_uim_instance_stream)
|
|
{
|
|
memcpy((void *)ptr->endpoint_b.stream_info.ctxinst.ctxinst, (const void *)info->endpoint_b.stream_info.ctxinst.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
}
|
|
else
|
|
{
|
|
ptr->endpoint_b.stream_info.dest = info->endpoint_b.stream_info.dest;
|
|
}
|
|
ptr->description = wmem_strdup(wmem_packet_scope(), info->description);
|
|
return (ptr);
|
|
}
|
|
|
|
gboolean lbmc_test_lbmc_header(tvbuff_t * tvb, int offset)
|
|
{
|
|
guint8 type;
|
|
guint8 version;
|
|
guint8 ver_type;
|
|
guint8 next_header;
|
|
guint16 msglen;
|
|
|
|
if (tvb_reported_length_remaining(tvb, offset) < (O_LBMC_HDR_T_MSGLEN + L_LBMC_HDR_T_MSGLEN))
|
|
{
|
|
return (FALSE);
|
|
}
|
|
ver_type = tvb_get_guint8(tvb, offset + O_LBMC_HDR_T_VER_TYPE);
|
|
version = LBMC_HDR_VER(ver_type);
|
|
type = LBMC_HDR_TYPE(ver_type);
|
|
if (version != LBMC_VERSION)
|
|
{
|
|
return (FALSE);
|
|
}
|
|
switch (type)
|
|
{
|
|
case LBMC_TYPE_MESSAGE:
|
|
case LBMC_TYPE_PRORX:
|
|
case LBMC_TYPE_EOT:
|
|
case LBMC_TYPE_CONTROL:
|
|
case LBMC_TYPE_RETRANS:
|
|
break;
|
|
default:
|
|
return (FALSE);
|
|
}
|
|
next_header = tvb_get_guint8(tvb, offset + O_LBMC_HDR_T_NEXT_HDR);
|
|
switch (next_header)
|
|
{
|
|
case LBMC_NHDR_DATA:
|
|
case LBMC_NHDR_FRAG:
|
|
case LBMC_NHDR_BATCH:
|
|
case LBMC_NHDR_TGIDX:
|
|
case LBMC_NHDR_REQUEST:
|
|
case LBMC_NHDR_TOPICNAME:
|
|
case LBMC_NHDR_APPHDR:
|
|
case LBMC_NHDR_APPHDR_CHAIN:
|
|
case LBMC_NHDR_UMQ_MSGID:
|
|
case LBMC_NHDR_UMQ_SQD_RCV:
|
|
case LBMC_NHDR_UMQ_RESUB:
|
|
case LBMC_NHDR_OTID:
|
|
case LBMC_NHDR_CTXINSTD:
|
|
case LBMC_NHDR_CTXINSTR:
|
|
case LBMC_NHDR_SRCIDX:
|
|
case LBMC_NHDR_UMQ_ULB_MSG:
|
|
case LBMC_NHDR_SSF_INIT:
|
|
case LBMC_NHDR_SSF_CREQ:
|
|
case LBMC_NHDR_UME_PREG:
|
|
case LBMC_NHDR_UME_PREG_RESP:
|
|
case LBMC_NHDR_UME_ACK:
|
|
case LBMC_NHDR_UME_RXREQ:
|
|
case LBMC_NHDR_UME_KEEPALIVE:
|
|
case LBMC_NHDR_UME_STOREID:
|
|
case LBMC_NHDR_UME_RANGED_ACK:
|
|
case LBMC_NHDR_UME_ACK_ID:
|
|
case LBMC_NHDR_UME_CAPABILITY:
|
|
case LBMC_NHDR_UME_PROXY_SRC:
|
|
case LBMC_NHDR_UME_STORE_GROUP:
|
|
case LBMC_NHDR_UME_STORE_INFO:
|
|
case LBMC_NHDR_UME_LJ_INFO:
|
|
case LBMC_NHDR_TSNI:
|
|
case LBMC_NHDR_UMQ_REG:
|
|
case LBMC_NHDR_UMQ_REG_RESP:
|
|
case LBMC_NHDR_UMQ_ACK:
|
|
case LBMC_NHDR_UMQ_RCR:
|
|
case LBMC_NHDR_UMQ_KA:
|
|
case LBMC_NHDR_UMQ_RXREQ:
|
|
case LBMC_NHDR_UMQ_QMGMT:
|
|
case LBMC_NHDR_UMQ_RESUB_REQ:
|
|
case LBMC_NHDR_UMQ_RESUB_RESP:
|
|
case LBMC_NHDR_TOPIC_INTEREST:
|
|
case LBMC_NHDR_PATTERN_INTEREST:
|
|
case LBMC_NHDR_ADVERTISEMENT:
|
|
case LBMC_NHDR_UME_CTXINSTS:
|
|
case LBMC_NHDR_UME_STORENAME:
|
|
case LBMC_NHDR_UMQ_ULB_RCR:
|
|
case LBMC_NHDR_UMQ_LF:
|
|
case LBMC_NHDR_CTXINFO:
|
|
case LBMC_NHDR_UME_PSER:
|
|
case LBMC_NHDR_CTXINST:
|
|
case LBMC_NHDR_DOMAIN:
|
|
case LBMC_NHDR_TNWG_CAPABILITIES:
|
|
case LBMC_NHDR_PATIDX:
|
|
case LBMC_NHDR_UME_CLIENT_LIFETIME:
|
|
case LBMC_NHDR_UME_SID:
|
|
case LBMC_NHDR_UMQ_IDX_CMD:
|
|
case LBMC_NHDR_UMQ_IDX_CMD_RESP:
|
|
case LBMC_NHDR_ODOMAIN:
|
|
case LBMC_NHDR_STREAM:
|
|
case LBMC_NHDR_TOPIC_MD_INTEREST:
|
|
case LBMC_NHDR_PATTERN_MD_INTEREST:
|
|
case LBMC_NHDR_LJI_REQ:
|
|
case LBMC_NHDR_TNWG_KA:
|
|
case LBMC_NHDR_UME_RCV_KEEPALIVE:
|
|
case LBMC_NHDR_UMQ_CMD:
|
|
case LBMC_NHDR_UMQ_CMD_RESP:
|
|
case LBMC_NHDR_SRI_REQ:
|
|
case LBMC_NHDR_UME_STORE_DOMAIN:
|
|
case LBMC_NHDR_SRI:
|
|
case LBMC_NHDR_ROUTE_INFO:
|
|
case LBMC_NHDR_ROUTE_INFO_NEIGHBOR:
|
|
case LBMC_NHDR_GATEWAY_NAME:
|
|
case LBMC_NHDR_AUTHENTICATION:
|
|
case LBMC_NHDR_HMAC:
|
|
case LBMC_NHDR_UMQ_SID:
|
|
case LBMC_NHDR_DESTINATION:
|
|
case LBMC_NHDR_TOPIC_IDX:
|
|
case LBMC_NHDR_TOPIC_SOURCE:
|
|
case LBMC_NHDR_TOPIC_SOURCE_EXFUNC:
|
|
case LBMC_NHDR_UME_STORE_INFO_EXT:
|
|
case LBMC_NHDR_UME_PSRC_ELECTION_TOKEN:
|
|
case LBMC_NHDR_TCP_SID:
|
|
case LBMC_NHDR_EXTOPT:
|
|
break;
|
|
default:
|
|
return (FALSE);
|
|
}
|
|
msglen = tvb_get_ntohs(tvb, offset + O_LBMC_HDR_T_MSGLEN);
|
|
if (msglen == 0)
|
|
{
|
|
return (FALSE);
|
|
}
|
|
return (TRUE);
|
|
}
|
|
|
|
int lbmc_dissect_lbmc_packet(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree, const char * tag_name, guint64 channel)
|
|
{
|
|
proto_item * subtree_item = NULL;
|
|
proto_tree * subtree = NULL;
|
|
guint8 type;
|
|
guint8 ver_type;
|
|
guint8 next_hdr;
|
|
guint16 msglen = 0;
|
|
int pkt_offset = 0;
|
|
lbmc_basic_hdr_t bhdr;
|
|
tvbuff_t * lbmc_tvb = NULL;
|
|
int tvb_lbmc_offset = offset;
|
|
const char * topic_name = NULL;
|
|
guint32 topic_index = 0;
|
|
int len_dissected = 0;
|
|
int lbmc_hdr_len;
|
|
guint32 msgprop_len = 0;
|
|
lbmc_fragment_info_t frag_info;
|
|
lbmc_extopt_reassembled_data_t reassembly;
|
|
gboolean data_is_umq_cmd_resp;
|
|
gboolean packet_is_data;
|
|
lbmc_stream_info_t stream_info;
|
|
lbmc_ctxinst_info_t ctxinstd_info;
|
|
lbmc_ctxinst_info_t ctxinstr_info;
|
|
lbmc_destination_info_t destination_info;
|
|
lbm_istream_entry_t * inst_stream;
|
|
lbm_istream_substream_entry_t * inst_substream;
|
|
lbm_dstream_entry_t * dom_stream;
|
|
lbm_dstream_substream_entry_t * dom_substream;
|
|
proto_item * last_initial_item = NULL;
|
|
guint8 found_header[256];
|
|
lbm_uim_stream_info_t uim_stream_info;
|
|
lbm_uim_stream_info_t * puim_stream_info = NULL;
|
|
lbmc_tcp_sid_info_t tcp_sid_info;
|
|
gboolean has_source_index;
|
|
address tcp_addr;
|
|
guint16 tcp_port = 0;
|
|
guint64 actual_channel = channel;
|
|
gboolean tcp_address_valid = FALSE;
|
|
|
|
while (tvb_reported_length_remaining(tvb, tvb_lbmc_offset) >= L_LBMC_MINIMAL_HDR_T)
|
|
{
|
|
proto_item * type_item = NULL;
|
|
const gchar * msg_type = NULL;
|
|
|
|
/* Get the version and type. */
|
|
ver_type = tvb_get_guint8(tvb, tvb_lbmc_offset + O_LBMC_HDR_T_VER_TYPE);
|
|
type = LBMC_HDR_TYPE(ver_type);
|
|
/* Get the message length. */
|
|
msglen = tvb_get_ntohs(tvb, tvb_lbmc_offset + O_LBMC_MINIMAL_HDR_T_MSGLEN);
|
|
if (msglen == 0)
|
|
{
|
|
expert_add_info_format(pinfo, NULL, &ei_lbmc_analysis_zero_length, "LBMC packet header length is zero");
|
|
return (len_dissected);
|
|
}
|
|
/* Create a new tvb for just this LBMC message. */
|
|
lbmc_tvb = tvb_new_subset_length(tvb, tvb_lbmc_offset, (gint)msglen);
|
|
if ((type == LBMC_TYPE_MESSAGE) || (type == LBMC_TYPE_RETRANS) || (type == LBMC_TYPE_PRORX))
|
|
{
|
|
topic_index = tvb_get_ntohl(lbmc_tvb, O_LBMC_HDR_T_TIDX);
|
|
if (lbm_channel_is_transport(channel) && lbm_channel_is_known(channel))
|
|
{
|
|
topic_name = lbm_topic_find(channel, topic_index);
|
|
}
|
|
lbmc_hdr_len = L_LBMC_HDR_T;
|
|
}
|
|
else
|
|
{
|
|
lbmc_hdr_len = L_LBMC_CNTL_HDR_T;
|
|
}
|
|
|
|
if (topic_name == NULL)
|
|
{
|
|
if (tag_name == NULL)
|
|
{
|
|
subtree_item = proto_tree_add_protocol_format(tree, proto_lbmc, lbmc_tvb, 0, tvb_reported_length_remaining(tvb, 0), "LBMC Protocol");
|
|
}
|
|
else
|
|
{
|
|
subtree_item = proto_tree_add_protocol_format(tree, proto_lbmc, lbmc_tvb, 0, tvb_reported_length_remaining(tvb, 0), "LBMC Protocol (Tag: %s)", tag_name);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (tag_name == NULL)
|
|
{
|
|
subtree_item = proto_tree_add_protocol_format(tree, proto_lbmc, lbmc_tvb, 0, tvb_reported_length_remaining(tvb, 0), "LBMC Protocol for topic [%s]", topic_name);
|
|
}
|
|
else
|
|
{
|
|
subtree_item = proto_tree_add_protocol_format(tree, proto_lbmc, lbmc_tvb, 0, tvb_reported_length_remaining(tvb, 0), "LBMC Protocol (Tag: %s) for topic [%s]", tag_name, topic_name);
|
|
}
|
|
}
|
|
subtree = proto_item_add_subtree(subtree_item, ett_lbmc);
|
|
if (tag_name != NULL)
|
|
{
|
|
proto_item * pi = NULL;
|
|
|
|
pi = proto_tree_add_string(subtree, hf_lbmc_tag, tvb, 0, 0, tag_name);
|
|
PROTO_ITEM_SET_GENERATED(pi);
|
|
}
|
|
if (topic_name != NULL)
|
|
{
|
|
proto_item * pi = NULL;
|
|
|
|
pi = proto_tree_add_string(subtree, hf_lbmc_topic, tvb, 0, 0, topic_name);
|
|
PROTO_ITEM_SET_GENERATED(pi);
|
|
}
|
|
proto_tree_add_item(subtree, hf_lbmc_version, lbmc_tvb, O_LBMC_HDR_T_VER_TYPE, L_LBMC_HDR_T_VER_TYPE, ENC_BIG_ENDIAN);
|
|
type_item = proto_tree_add_item(subtree, hf_lbmc_type, lbmc_tvb, O_LBMC_HDR_T_VER_TYPE, L_LBMC_HDR_T_VER_TYPE, ENC_BIG_ENDIAN);
|
|
proto_tree_add_item(subtree, hf_lbmc_next_hdr, lbmc_tvb, O_LBMC_HDR_T_NEXT_HDR, L_LBMC_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
|
|
last_initial_item = proto_tree_add_item(subtree, hf_lbmc_msglen, lbmc_tvb, O_LBMC_HDR_T_MSGLEN, L_LBMC_HDR_T_MSGLEN, ENC_BIG_ENDIAN);
|
|
len_dissected += (L_LBMC_HDR_T_VER_TYPE + L_LBMC_HDR_T_NEXT_HDR + L_LBMC_HDR_T_MSGLEN);
|
|
switch (type)
|
|
{
|
|
case LBMC_TYPE_EOT:
|
|
case LBMC_TYPE_CONTROL:
|
|
packet_is_data = FALSE;
|
|
break;
|
|
case LBMC_TYPE_MESSAGE:
|
|
case LBMC_TYPE_RETRANS:
|
|
case LBMC_TYPE_PRORX:
|
|
packet_is_data = TRUE;
|
|
break;
|
|
default:
|
|
expert_add_info_format(pinfo, type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC type 0x%02x", type);
|
|
tvb_lbmc_offset += msglen;
|
|
len_dissected += (msglen - (L_LBMC_HDR_T_VER_TYPE + L_LBMC_HDR_T_NEXT_HDR + L_LBMC_HDR_T_MSGLEN));
|
|
continue;
|
|
break;
|
|
}
|
|
next_hdr = tvb_get_guint8(lbmc_tvb, O_LBMC_HDR_T_NEXT_HDR);
|
|
pkt_offset = lbmc_hdr_len;
|
|
if ((type == LBMC_TYPE_MESSAGE) || (type == LBMC_TYPE_RETRANS) || (type == LBMC_TYPE_PRORX))
|
|
{
|
|
proto_tree_add_item(subtree, hf_lbmc_tidx, lbmc_tvb, O_LBMC_HDR_T_TIDX, L_LBMC_HDR_T_TIDX, ENC_BIG_ENDIAN);
|
|
last_initial_item = proto_tree_add_item(subtree, hf_lbmc_sqn, lbmc_tvb, O_LBMC_HDR_T_SQN, L_LBMC_HDR_T_SQN, ENC_BIG_ENDIAN);
|
|
}
|
|
frag_info.fragment_found = 0;
|
|
frag_info.first_sqn = 0;
|
|
frag_info.offset = 0;
|
|
frag_info.len = 0;
|
|
msgprop_len = 0;
|
|
lbmc_init_extopt_reassembled_data(&reassembly);
|
|
data_is_umq_cmd_resp = FALSE;
|
|
stream_info.set = FALSE;
|
|
ctxinstd_info.set = FALSE;
|
|
ctxinstr_info.set = FALSE;
|
|
destination_info.set = FALSE;
|
|
inst_stream = NULL;
|
|
inst_substream = NULL;
|
|
dom_stream = NULL;
|
|
dom_substream = NULL;
|
|
memset((void *)found_header, 0, sizeof(found_header));
|
|
puim_stream_info = NULL;
|
|
tcp_sid_info.set = FALSE;
|
|
tcp_sid_info.session_id = G_MAXUINT32;
|
|
has_source_index = FALSE;
|
|
|
|
while ((tvb_reported_length_remaining(lbmc_tvb, pkt_offset) >= L_LBMC_BASIC_HDR_T) && (next_hdr != LBMC_NHDR_DATA) && (next_hdr != LBMC_NHDR_NONE))
|
|
{
|
|
tvbuff_t * hdr_tvb = NULL;
|
|
int dissected_hdr_len;
|
|
guint8 opid;
|
|
|
|
bhdr.next_hdr = tvb_get_guint8(lbmc_tvb, pkt_offset + O_LBMC_BASIC_HDR_T_NEXT_HDR);
|
|
bhdr.hdr_len = tvb_get_guint8(lbmc_tvb, pkt_offset + O_LBMC_BASIC_HDR_T_HDR_LEN);
|
|
if (bhdr.hdr_len == 0)
|
|
{
|
|
expert_add_info_format(pinfo, NULL, &ei_lbmc_analysis_zero_length, "LBMC header length is zero");
|
|
return (len_dissected);
|
|
}
|
|
hdr_tvb = tvb_new_subset_length(lbmc_tvb, pkt_offset, (gint)bhdr.hdr_len);
|
|
found_header[next_hdr] = 1;
|
|
switch (next_hdr)
|
|
{
|
|
case LBMC_NHDR_FRAG:
|
|
dissected_hdr_len = dissect_nhdr_frag(hdr_tvb, 0, pinfo, subtree, &frag_info);
|
|
break;
|
|
case LBMC_NHDR_BATCH:
|
|
dissected_hdr_len = dissect_nhdr_batch(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_TGIDX:
|
|
/* Not implemented */
|
|
dissected_hdr_len = dissect_nhdr_unhandled(hdr_tvb, 0, pinfo, subtree, next_hdr);
|
|
break;
|
|
case LBMC_NHDR_REQUEST:
|
|
dissected_hdr_len = dissect_nhdr_request(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_TOPICNAME:
|
|
dissected_hdr_len = dissect_nhdr_topicname(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_APPHDR:
|
|
dissected_hdr_len = dissect_nhdr_apphdr(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_APPHDR_CHAIN:
|
|
dissected_hdr_len = dissect_nhdr_apphdr_chain(hdr_tvb, 0, pinfo, subtree, &msgprop_len);
|
|
break;
|
|
case LBMC_NHDR_UMQ_MSGID:
|
|
dissected_hdr_len = dissect_nhdr_umq_msgid(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_SQD_RCV:
|
|
dissected_hdr_len = dissect_nhdr_umq_sqd_rcv(hdr_tvb, 0, pinfo, subtree, &data_is_umq_cmd_resp);
|
|
break;
|
|
case LBMC_NHDR_UMQ_RESUB:
|
|
dissected_hdr_len = dissect_nhdr_umq_resub(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_OTID:
|
|
dissected_hdr_len = dissect_nhdr_otid(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_CTXINSTD:
|
|
dissected_hdr_len = dissect_nhdr_ctxinstd(hdr_tvb, 0, pinfo, subtree, &ctxinstd_info);
|
|
break;
|
|
case LBMC_NHDR_CTXINSTR:
|
|
dissected_hdr_len = dissect_nhdr_ctxinstr(hdr_tvb, 0, pinfo, subtree, &ctxinstr_info);
|
|
break;
|
|
case LBMC_NHDR_SRCIDX:
|
|
dissected_hdr_len = dissect_nhdr_srcidx(hdr_tvb, 0, pinfo, subtree);
|
|
has_source_index = TRUE;
|
|
break;
|
|
case LBMC_NHDR_UMQ_ULB_MSG:
|
|
dissected_hdr_len = dissect_nhdr_umq_ulb_msg(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_SSF_INIT:
|
|
dissected_hdr_len = dissect_nhdr_ssf_init(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_SSF_CREQ:
|
|
dissected_hdr_len = dissect_nhdr_ssf_creq(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_PREG:
|
|
dissected_hdr_len = dissect_nhdr_ume_preg(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_PREG_RESP:
|
|
dissected_hdr_len = dissect_nhdr_ume_preg_resp(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_ACK:
|
|
dissected_hdr_len = dissect_nhdr_ume_ack(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_RXREQ:
|
|
dissected_hdr_len = dissect_nhdr_ume_rxreq(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_KEEPALIVE:
|
|
dissected_hdr_len = dissect_nhdr_ume_keepalive(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_STOREID:
|
|
dissected_hdr_len = dissect_nhdr_ume_storeid(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_RANGED_ACK:
|
|
dissected_hdr_len = dissect_nhdr_ume_ranged_ack(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_ACK_ID:
|
|
dissected_hdr_len = dissect_nhdr_ume_ack_id(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_CAPABILITY:
|
|
dissected_hdr_len = dissect_nhdr_ume_capability(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_PROXY_SRC:
|
|
dissected_hdr_len = dissect_nhdr_ume_proxy_src(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_STORE_GROUP:
|
|
dissected_hdr_len = dissect_nhdr_ume_store_group(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_STORE_INFO:
|
|
dissected_hdr_len = dissect_nhdr_ume_store(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_LJ_INFO:
|
|
dissected_hdr_len = dissect_nhdr_ume_lj_info(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_TSNI:
|
|
dissected_hdr_len = dissect_nhdr_tsni(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_REG:
|
|
dissected_hdr_len = dissect_nhdr_umq_reg(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_REG_RESP:
|
|
dissected_hdr_len = dissect_nhdr_umq_reg_resp(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_ACK:
|
|
dissected_hdr_len = dissect_nhdr_umq_ack(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_RCR:
|
|
dissected_hdr_len = dissect_nhdr_umq_rcr(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_KA:
|
|
dissected_hdr_len = dissect_nhdr_umq_ka(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_RXREQ:
|
|
dissected_hdr_len = dissect_nhdr_umq_rxreq(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_QMGMT:
|
|
dissected_hdr_len = dissect_nhdr_umq_qmgmt(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_RESUB_REQ:
|
|
dissected_hdr_len = dissect_nhdr_umq_resub_req(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_RESUB_RESP:
|
|
dissected_hdr_len = dissect_nhdr_umq_resub_resp(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_TOPIC_INTEREST:
|
|
dissected_hdr_len = dissect_nhdr_topic_interest(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_PATTERN_INTEREST:
|
|
dissected_hdr_len = dissect_nhdr_pattern_interest(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_ADVERTISEMENT:
|
|
dissected_hdr_len = dissect_nhdr_advertisement(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_CTXINSTS:
|
|
dissected_hdr_len = dissect_nhdr_ctxinst(hdr_tvb, 0, pinfo, subtree, NULL);
|
|
break;
|
|
case LBMC_NHDR_UME_STORENAME:
|
|
dissected_hdr_len = dissect_nhdr_storename(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_ULB_RCR:
|
|
dissected_hdr_len = dissect_nhdr_umq_ulb_rcr(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_LF:
|
|
dissected_hdr_len = dissect_nhdr_umq_lf(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_CTXINFO:
|
|
dissected_hdr_len = dissect_nhdr_ctxinfo(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_PSER:
|
|
dissected_hdr_len = dissect_nhdr_ume_pser(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_CTXINST:
|
|
dissected_hdr_len = dissect_nhdr_ctxinst(hdr_tvb, 0, pinfo, subtree, NULL);
|
|
break;
|
|
case LBMC_NHDR_DOMAIN:
|
|
dissected_hdr_len = dissect_nhdr_domain(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_TNWG_CAPABILITIES:
|
|
dissected_hdr_len = dissect_nhdr_tnwg_capabilities(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_PATIDX:
|
|
dissected_hdr_len = dissect_nhdr_patidx(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_CLIENT_LIFETIME:
|
|
dissected_hdr_len = dissect_nhdr_ume_client_lifetime(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_SID:
|
|
dissected_hdr_len = dissect_nhdr_ume_sid(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_IDX_CMD:
|
|
dissected_hdr_len = dissect_nhdr_umq_idx_cmd(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_IDX_CMD_RESP:
|
|
dissected_hdr_len = dissect_nhdr_umq_idx_cmd_resp(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_ODOMAIN:
|
|
dissected_hdr_len = dissect_nhdr_odomain(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_STREAM:
|
|
dissected_hdr_len = dissect_nhdr_stream(hdr_tvb, 0, pinfo, subtree, &stream_info);
|
|
break;
|
|
case LBMC_NHDR_TOPIC_MD_INTEREST:
|
|
dissected_hdr_len = dissect_nhdr_topic_md_interest(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_PATTERN_MD_INTEREST:
|
|
dissected_hdr_len = dissect_nhdr_pattern_md_interest(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_LJI_REQ:
|
|
dissected_hdr_len = dissect_nhdr_lji_req(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_TNWG_KA:
|
|
dissected_hdr_len = dissect_nhdr_tnwg_ka(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_RCV_KEEPALIVE:
|
|
dissected_hdr_len = dissect_nhdr_ume_receiver_keepalive(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_CMD:
|
|
dissected_hdr_len = dissect_nhdr_umq_cmd(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_CMD_RESP:
|
|
dissected_hdr_len = dissect_nhdr_umq_cmd_resp(hdr_tvb, 0, pinfo, subtree, packet_is_data);
|
|
break;
|
|
case LBMC_NHDR_SRI_REQ:
|
|
dissected_hdr_len = dissect_nhdr_sri_req(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_STORE_DOMAIN:
|
|
dissected_hdr_len = dissect_nhdr_ume_store_domain(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_SRI:
|
|
dissected_hdr_len = dissect_nhdr_sri(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_ROUTE_INFO:
|
|
dissected_hdr_len = dissect_nhdr_route_info(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_ROUTE_INFO_NEIGHBOR:
|
|
dissected_hdr_len = dissect_nhdr_route_info_neighbor(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_GATEWAY_NAME:
|
|
dissected_hdr_len = dissect_nhdr_gateway_name(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_AUTHENTICATION:
|
|
opid = tvb_get_guint8(hdr_tvb, O_LBMC_CNTL_AUTH_GENERIC_HDR_T_OPID);
|
|
switch (opid)
|
|
{
|
|
case AUTH_OP_REQ:
|
|
dissected_hdr_len = dissect_nhdr_auth_request(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case AUTH_OP_CHALLENGE:
|
|
dissected_hdr_len = dissect_nhdr_auth_challenge(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case AUTH_OP_CHALLENGE_RSP:
|
|
dissected_hdr_len = dissect_nhdr_auth_challenge_rsp(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case AUTH_OP_RESULT:
|
|
dissected_hdr_len = dissect_nhdr_auth_result(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
default:
|
|
dissected_hdr_len = dissect_nhdr_auth_unknown(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
}
|
|
break;
|
|
case LBMC_NHDR_HMAC:
|
|
dissected_hdr_len = dissect_nhdr_hmac(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UMQ_SID:
|
|
dissected_hdr_len = dissect_nhdr_umq_sid(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_DESTINATION:
|
|
dissected_hdr_len = dissect_nhdr_destination(hdr_tvb, 0, pinfo, subtree, &destination_info);
|
|
break;
|
|
case LBMC_NHDR_TOPIC_IDX:
|
|
dissected_hdr_len = dissect_nhdr_topic_idx(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_TOPIC_SOURCE:
|
|
dissected_hdr_len = dissect_nhdr_topic_source(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_TOPIC_SOURCE_EXFUNC:
|
|
dissected_hdr_len = dissect_nhdr_topic_source_exfunc(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_STORE_INFO_EXT:
|
|
dissected_hdr_len = dissect_nhdr_ume_store_ext(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_UME_PSRC_ELECTION_TOKEN:
|
|
dissected_hdr_len = dissect_nhdr_ume_psrc_election_token(hdr_tvb, 0, pinfo, subtree);
|
|
break;
|
|
case LBMC_NHDR_TCP_SID:
|
|
dissected_hdr_len = dissect_nhdr_tcp_sid(hdr_tvb, 0, pinfo, subtree, &tcp_sid_info);
|
|
break;
|
|
case LBMC_NHDR_EXTOPT:
|
|
dissected_hdr_len = dissect_nhdr_extopt(hdr_tvb, 0, pinfo, subtree, &reassembly);
|
|
break;
|
|
/* Headers that are not implemented. */
|
|
case LBMC_NHDR_NONE:
|
|
default:
|
|
dissected_hdr_len = dissect_nhdr_unhandled(hdr_tvb, 0, pinfo, subtree, next_hdr);
|
|
break;
|
|
}
|
|
len_dissected += dissected_hdr_len;
|
|
next_hdr = bhdr.next_hdr;
|
|
pkt_offset += bhdr.hdr_len;
|
|
}
|
|
/* If transport is TCP and we got a TCP SID header, process it. */
|
|
tcp_address_valid = TRUE;
|
|
if (lbm_channel_is_unknown_transport_source_lbttcp(channel))
|
|
{
|
|
COPY_ADDRESS_SHALLOW(&tcp_addr, &(pinfo->src));
|
|
tcp_port = (guint16)pinfo->srcport;
|
|
}
|
|
else if (lbm_channel_is_unknown_transport_client_lbttcp(channel))
|
|
{
|
|
COPY_ADDRESS_SHALLOW(&tcp_addr, &(pinfo->dst));
|
|
tcp_port = (guint16)pinfo->destport;
|
|
}
|
|
else
|
|
{
|
|
tcp_address_valid = FALSE;
|
|
}
|
|
/* Note: it *is* possible for a TCP SID to appear in an LBTTCP non-transport (UIM) message. */
|
|
if ((pinfo->fd->flags.visited == 0) && (tcp_sid_info.set) && lbm_channel_is_unknown_transport_lbttcp(channel) && tcp_address_valid)
|
|
{
|
|
lbttcp_transport_sid_add(&tcp_addr, tcp_port, pinfo->fd->num, tcp_sid_info.session_id);
|
|
}
|
|
/* Try to determine the TCP transport channel. */
|
|
if (lbm_channel_type(channel) == LBM_CHANNEL_TRANSPORT_LBTTCP)
|
|
{
|
|
if (lbm_channel_is_known(channel))
|
|
{
|
|
if (topic_name != NULL)
|
|
{
|
|
topic_name = lbm_topic_find(channel, topic_index);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
guint32 tcp_session_id = 0;
|
|
|
|
if (lbttcp_transport_sid_find(&tcp_addr, tcp_port, pinfo->fd->num, &tcp_session_id))
|
|
{
|
|
lbttcp_transport_t * tcp_transport = NULL;
|
|
|
|
tcp_transport = lbttcp_transport_find(&tcp_addr, tcp_port, tcp_session_id, pinfo->fd->num);
|
|
if (tcp_transport != NULL)
|
|
{
|
|
actual_channel = tcp_transport->channel;
|
|
topic_name = lbm_topic_find(actual_channel, topic_index);
|
|
}
|
|
}
|
|
}
|
|
if (topic_name != NULL)
|
|
{
|
|
if (tag_name == NULL)
|
|
{
|
|
proto_item_set_text(subtree_item, "LBMC Protocol for topic [%s]", topic_name);
|
|
}
|
|
else
|
|
{
|
|
proto_item_set_text(subtree_item, "LBMC Protocol (Tag: %s) for topic [%s]", tag_name, topic_name);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* If TCP, handle stream info. */
|
|
if (pinfo->ptype == PT_TCP)
|
|
{
|
|
if (stream_info.set && ctxinstd_info.set && !destination_info.set)
|
|
{
|
|
inst_stream = lbm_stream_istream_find(stream_info.ctxinst, ctxinstd_info.ctxinst);
|
|
if (inst_stream == NULL)
|
|
{
|
|
inst_stream = lbm_stream_istream_add(stream_info.ctxinst, ctxinstd_info.ctxinst);
|
|
}
|
|
if (inst_stream != NULL)
|
|
{
|
|
inst_substream = lbm_stream_istream_substream_find(inst_stream, &(pinfo->src), pinfo->srcport, &(pinfo->dst), pinfo->destport, stream_info.stream_id);
|
|
if (inst_substream == NULL)
|
|
{
|
|
inst_substream = lbm_stream_istream_substream_add(inst_stream, &(pinfo->src), pinfo->srcport, &(pinfo->dst), pinfo->destport, stream_info.stream_id);
|
|
}
|
|
if (inst_substream != NULL)
|
|
{
|
|
proto_item * stream_item = NULL;
|
|
proto_tree * stream_tree = NULL;
|
|
proto_item * pi = NULL;
|
|
lbm_uim_stream_tap_info_t * stream_tap_info = NULL;
|
|
|
|
lbm_stream_istream_substream_update(inst_substream, msglen, pinfo->fd->num);
|
|
stream_item = proto_tree_add_item(subtree, hf_lbm_stream, tvb, 0, 0, ENC_NA);
|
|
PROTO_ITEM_SET_GENERATED(stream_item);
|
|
stream_tree = proto_item_add_subtree(stream_item, ett_lbm_stream);
|
|
pi = proto_tree_add_uint64(stream_tree, hf_lbm_stream_stream_id, tvb, 0, 0, inst_stream->channel);
|
|
PROTO_ITEM_SET_GENERATED(pi);
|
|
pi = proto_tree_add_uint(stream_tree, hf_lbm_stream_substream_id, tvb, 0, 0, inst_substream->substream_id);
|
|
PROTO_ITEM_SET_GENERATED(pi);
|
|
proto_tree_move_item(subtree, last_initial_item, stream_item);
|
|
|
|
stream_tap_info = wmem_new0(wmem_packet_scope(), lbm_uim_stream_tap_info_t);
|
|
stream_tap_info->channel = inst_stream->channel;
|
|
stream_tap_info->substream_id = inst_substream->substream_id;
|
|
stream_tap_info->bytes = msglen;
|
|
stream_tap_info->endpoint_a.type = lbm_uim_instance_stream;
|
|
memcpy((void *) stream_tap_info->endpoint_a.stream_info.ctxinst.ctxinst, (const void *)stream_info.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
stream_tap_info->endpoint_b.type = lbm_uim_instance_stream;
|
|
memcpy((void *) stream_tap_info->endpoint_b.stream_info.ctxinst.ctxinst, (const void *)ctxinstd_info.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
tap_queue_packet(lbmc_stream_tap_handle, pinfo, (void *) stream_tap_info);
|
|
}
|
|
uim_stream_info.channel = inst_stream->channel;
|
|
uim_stream_info.sqn = stream_info.sqn;
|
|
uim_stream_info.endpoint_a.type = lbm_uim_instance_stream;
|
|
memcpy((void *)uim_stream_info.endpoint_a.stream_info.ctxinst.ctxinst, (const void *)stream_info.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
uim_stream_info.endpoint_b.type = lbm_uim_instance_stream;
|
|
memcpy((void *)uim_stream_info.endpoint_b.stream_info.ctxinst.ctxinst, (const void *)ctxinstd_info.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
|
|
puim_stream_info = &uim_stream_info;
|
|
}
|
|
}
|
|
else if (stream_info.set && destination_info.set)
|
|
{
|
|
dom_stream = lbm_stream_dstream_find(&(destination_info.endpoint_a), &(destination_info.endpoint_b));
|
|
if (dom_stream == NULL)
|
|
{
|
|
dom_stream = lbm_stream_dstream_add(&(destination_info.endpoint_a), &(destination_info.endpoint_b));
|
|
}
|
|
if (dom_stream != NULL)
|
|
{
|
|
dom_substream = lbm_stream_dstream_substream_find(dom_stream, &(pinfo->src), pinfo->srcport, &(pinfo->dst), pinfo->destport, stream_info.stream_id);
|
|
if (dom_substream == NULL)
|
|
{
|
|
dom_substream = lbm_stream_dstream_substream_add(dom_stream, &(pinfo->src), pinfo->srcport, &(pinfo->dst), pinfo->destport, stream_info.stream_id);
|
|
}
|
|
if (dom_substream != NULL)
|
|
{
|
|
proto_item * stream_item = NULL;
|
|
proto_tree * stream_tree = NULL;
|
|
proto_item * pi = NULL;
|
|
lbm_uim_stream_tap_info_t * stream_tap_info = NULL;
|
|
|
|
lbm_stream_dstream_substream_update(dom_substream, msglen, pinfo->fd->num);
|
|
stream_item = proto_tree_add_item(subtree, hf_lbm_stream, tvb, 0, 0, ENC_NA);
|
|
PROTO_ITEM_SET_GENERATED(stream_item);
|
|
stream_tree = proto_item_add_subtree(stream_item, ett_lbm_stream);
|
|
pi = proto_tree_add_uint64(stream_tree, hf_lbm_stream_stream_id, tvb, 0, 0, dom_stream->channel);
|
|
PROTO_ITEM_SET_GENERATED(pi);
|
|
pi = proto_tree_add_uint(stream_tree, hf_lbm_stream_substream_id, tvb, 0, 0, dom_substream->substream_id);
|
|
PROTO_ITEM_SET_GENERATED(pi);
|
|
proto_tree_move_item(subtree, last_initial_item, stream_item);
|
|
|
|
stream_tap_info = wmem_new0(wmem_packet_scope(), lbm_uim_stream_tap_info_t);
|
|
stream_tap_info->channel = dom_stream->channel;
|
|
stream_tap_info->substream_id = dom_substream->substream_id;
|
|
stream_tap_info->bytes = msglen;
|
|
stream_tap_info->endpoint_a.type = lbm_uim_domain_stream;
|
|
stream_tap_info->endpoint_a.stream_info.dest = destination_info.endpoint_a;
|
|
stream_tap_info->endpoint_b.type = lbm_uim_domain_stream;
|
|
stream_tap_info->endpoint_b.stream_info.dest = destination_info.endpoint_b;
|
|
tap_queue_packet(lbmc_stream_tap_handle, pinfo, (void *) stream_tap_info);
|
|
}
|
|
uim_stream_info.channel = dom_stream->channel;
|
|
uim_stream_info.sqn = stream_info.sqn;
|
|
uim_stream_info.endpoint_a.type = lbm_uim_domain_stream;
|
|
uim_stream_info.endpoint_a.stream_info.dest = destination_info.endpoint_a;
|
|
uim_stream_info.endpoint_b.type = lbm_uim_domain_stream;
|
|
uim_stream_info.endpoint_b.stream_info.dest = destination_info.endpoint_b;
|
|
puim_stream_info = &uim_stream_info;
|
|
}
|
|
}
|
|
}
|
|
if (next_hdr == LBMC_NHDR_DATA)
|
|
{
|
|
int actual_data_len = 0;
|
|
int msgprop_offset = 0;
|
|
tvbuff_t * data_tvb = NULL;
|
|
tvbuff_t * msgprop_tvb = NULL;
|
|
gboolean msg_complete = TRUE;
|
|
gboolean msg_reassembled = FALSE;
|
|
gboolean can_call_subdissector = FALSE;
|
|
lbmc_message_entry_t * msg = NULL;
|
|
gboolean dissector_found = FALSE;
|
|
heur_dtbl_entry_t *hdtbl_entry;
|
|
gboolean retransmission = FALSE;
|
|
|
|
/* Note on heuristic subdissectors:
|
|
If the preference "lbmc.use_heuristic_subdissectors" is TRUE, and a heuristic subdissector is
|
|
registered for "lbm_msg_payload", we can call the heuristic subdissector under one of the
|
|
following conditions:
|
|
- The message is unfragmented
|
|
- The message is fragmented, AND the preference "lbmc.reassemble_fragments" is TRUE, AND
|
|
the entire message has been reassembled.
|
|
This applies to the lbmpdm subdissector as well.
|
|
*/
|
|
|
|
if (frag_info.fragment_found == 0)
|
|
{
|
|
/* No fragment info */
|
|
if (msgprop_len > 0)
|
|
{
|
|
/* Has message properties */
|
|
actual_data_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset) - msgprop_len;
|
|
msgprop_offset = pkt_offset + actual_data_len;
|
|
data_tvb = tvb_new_subset_length(lbmc_tvb, pkt_offset, actual_data_len);
|
|
msgprop_tvb = tvb_new_subset_length(lbmc_tvb, msgprop_offset, msgprop_len);
|
|
}
|
|
else
|
|
{
|
|
data_tvb = tvb_new_subset_remaining(lbmc_tvb, pkt_offset);
|
|
msgprop_tvb = NULL;
|
|
}
|
|
msg_complete = TRUE;
|
|
msg_reassembled = FALSE;
|
|
can_call_subdissector = TRUE;
|
|
}
|
|
else
|
|
{
|
|
/* Fragment info is present */
|
|
if (!lbmc_reassemble_fragments)
|
|
{
|
|
/* But don't reassemble them */
|
|
actual_data_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset);
|
|
data_tvb = tvb_new_subset_length(lbmc_tvb, pkt_offset, actual_data_len);
|
|
msgprop_tvb = NULL;
|
|
msg_complete = TRUE;
|
|
}
|
|
else
|
|
{
|
|
/* Fragment info is present and we should reassemble */
|
|
guint32 port;
|
|
|
|
port = (guint32)pinfo->destport;
|
|
msg = lbmc_message_find(actual_channel, &(pinfo->dst), port, &frag_info);
|
|
if (msg == NULL)
|
|
{
|
|
msg = lbmc_message_create(actual_channel, &(pinfo->dst), port, &frag_info, msgprop_len);
|
|
}
|
|
if (msg != NULL)
|
|
{
|
|
/* Check fragment against message */
|
|
int frag_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset);
|
|
if ((frag_info.offset + (guint32) frag_len) > msg->total_len)
|
|
{
|
|
/* Indicate a malformed packet */
|
|
expert_add_info_format(pinfo, NULL, &ei_lbmc_analysis_invalid_fragment,
|
|
"Invalid fragment for message (msglen=%" G_GUINT32_FORMAT ", frag offset=%" G_GUINT32_FORMAT ", frag len=%d",
|
|
msg->total_len, frag_info.offset, frag_len);
|
|
}
|
|
else
|
|
{
|
|
(void)lbmc_message_add_fragment(msg, lbmc_tvb, pkt_offset, &frag_info, pinfo->fd->num);
|
|
if (data_is_umq_cmd_resp)
|
|
{
|
|
msg->data_is_umq_cmd_resp = TRUE;
|
|
}
|
|
if (msg->total_len == msg->accumulated_len)
|
|
{
|
|
if (msg->reassembled_frame == 0)
|
|
{
|
|
/* Store the frame number in which the message will be reassembled */
|
|
msg->reassembled_frame = pinfo->fd->num;
|
|
}
|
|
data_tvb = tvb_new_subset_remaining(lbmc_tvb, pkt_offset);
|
|
msgprop_tvb = NULL;
|
|
msg_reassembled = TRUE;
|
|
msg_complete = TRUE;
|
|
if (msg->reassembled_frame == pinfo->fd->num)
|
|
{
|
|
/* We can only call a subdissector if this is the frame in which the message is reassembled */
|
|
can_call_subdissector = TRUE;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
/* This is not the last fragment of the message. */
|
|
data_tvb = tvb_new_subset_remaining(lbmc_tvb, pkt_offset);
|
|
msgprop_tvb = NULL;
|
|
msg_reassembled = TRUE;
|
|
msg_complete = FALSE;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Note:
|
|
- Data to be dissected is in data_tvb
|
|
- Message properties to be dissected is in msgprop_tvb
|
|
*/
|
|
/* For reassembled messages, show the frame or reassembly information. */
|
|
if (msg_reassembled)
|
|
{
|
|
if (msg->reassembled_frame == pinfo->fd->num)
|
|
{
|
|
proto_tree * frag_tree = NULL;
|
|
proto_item * frag_item = NULL;
|
|
proto_item * pi = NULL;
|
|
gboolean first_item = TRUE;
|
|
lbmc_fragment_entry_t * cur = NULL;
|
|
gchar * buf = NULL;
|
|
|
|
/* Create a new real data tvb of the reassembled data. */
|
|
buf = (gchar *)wmem_alloc(wmem_file_scope(), (size_t)msg->total_len);
|
|
cur = msg->entry;
|
|
while (cur != NULL)
|
|
{
|
|
memcpy(buf + cur->fragment_start, cur->data, cur->fragment_len);
|
|
cur = cur->next;
|
|
}
|
|
msg->reassembled_data = tvb_new_real_data(buf, msg->total_len, msg->total_len);
|
|
msg_complete = TRUE;
|
|
/* Create separate data and msgprop tvbs */
|
|
msg->data = tvb_new_subset_length(msg->reassembled_data, 0, msg->total_len - msg->msgprop_len);
|
|
if (msg->msgprop_len > 0)
|
|
{
|
|
msg->msgprop = tvb_new_subset_length(msg->reassembled_data, msg->total_len - msg->msgprop_len, msg->msgprop_len);
|
|
}
|
|
add_new_data_source(pinfo, msg->reassembled_data, "Reassembled Data");
|
|
if (msg->data == NULL)
|
|
{
|
|
msg->data = tvb_new_subset_length(msg->reassembled_data, 0, msg->total_len - msg->msgprop_len);
|
|
}
|
|
if (msg->msgprop == NULL)
|
|
{
|
|
if (msg->msgprop_len > 0)
|
|
{
|
|
msg->msgprop = tvb_new_subset_length(msg->reassembled_data, msg->total_len - msg->msgprop_len, msg->msgprop_len);
|
|
}
|
|
}
|
|
data_tvb = msg->data;
|
|
msgprop_tvb = msg->msgprop;
|
|
data_is_umq_cmd_resp = msg->data_is_umq_cmd_resp;
|
|
|
|
frag_item = proto_tree_add_none_format(subtree,
|
|
hf_lbmc_reassembly,
|
|
data_tvb,
|
|
0,
|
|
tvb_reported_length_remaining(data_tvb, 0),
|
|
"%" G_GUINT32_FORMAT " Reassembled Fragments (%" G_GUINT32_FORMAT " bytes):",
|
|
msg->fragment_count,
|
|
msg->total_len);
|
|
frag_tree = proto_item_add_subtree(frag_item, ett_lbmc_reassembly);
|
|
cur = msg->entry;
|
|
first_item = TRUE;
|
|
while (cur != NULL)
|
|
{
|
|
pi = proto_tree_add_uint_format_value(frag_tree,
|
|
hf_lbmc_reassembly_fragment,
|
|
msg->reassembled_data,
|
|
cur->fragment_start,
|
|
cur->fragment_len,
|
|
cur->frame,
|
|
"Frame: %" G_GUINT32_FORMAT ", payload: %" G_GUINT32_FORMAT "-%" G_GUINT32_FORMAT " (%" G_GUINT32_FORMAT " bytes)",
|
|
cur->frame,
|
|
cur->fragment_start,
|
|
(cur->fragment_start + cur->fragment_len) - 1,
|
|
cur->fragment_len);
|
|
PROTO_ITEM_SET_GENERATED(pi);
|
|
if (first_item)
|
|
{
|
|
proto_item_append_text(frag_item, " #%" G_GUINT32_FORMAT "(%" G_GUINT32_FORMAT ")", cur->frame, cur->fragment_len);
|
|
}
|
|
else
|
|
{
|
|
proto_item_append_text(frag_item, ", #%" G_GUINT32_FORMAT "(%" G_GUINT32_FORMAT ")", cur->frame, cur->fragment_len);
|
|
}
|
|
first_item = FALSE;
|
|
cur = cur->next;
|
|
}
|
|
PROTO_ITEM_SET_GENERATED(frag_item);
|
|
}
|
|
else
|
|
{
|
|
proto_item * pi;
|
|
|
|
if (msg->reassembled_frame == 0)
|
|
{
|
|
proto_tree_add_expert(subtree, pinfo, &ei_lbmc_analysis_missing_reassembly_frame, data_tvb, 0, -1);
|
|
}
|
|
else
|
|
{
|
|
pi = proto_tree_add_uint(subtree, hf_reassembly_frame, data_tvb, 0, tvb_reported_length_remaining(data_tvb, 0), msg->reassembled_frame);
|
|
PROTO_ITEM_SET_GENERATED(pi);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (data_is_umq_cmd_resp && msg_complete)
|
|
{
|
|
(void)dissect_nhdr_umq_cmd_resp(data_tvb, 0, pinfo, subtree, TRUE);
|
|
col_append_sep_str(pinfo->cinfo, COL_INFO, " ", "UMQ-CMD-RESP");
|
|
}
|
|
else
|
|
{
|
|
if ((!lbm_channel_is_transport(channel)) && (!has_source_index))
|
|
{
|
|
retransmission = TRUE;
|
|
}
|
|
msg_type = lbmc_determine_data_msg_type(retransmission, found_header);
|
|
col_append_sep_str(pinfo->cinfo, COL_INFO, " ", msg_type);
|
|
if (can_call_subdissector)
|
|
{
|
|
if (lbmc_use_heuristic_subdissectors)
|
|
{
|
|
dissector_found = dissector_try_heuristic(lbmc_heuristic_subdissector_list, data_tvb, pinfo, subtree, &hdtbl_entry, NULL);
|
|
}
|
|
if (!dissector_found)
|
|
{
|
|
if (lbmc_dissect_lbmpdm)
|
|
{
|
|
int encoding;
|
|
int pdmlen;
|
|
|
|
dissector_found = lbmpdm_verify_payload(data_tvb, 0, &encoding, &pdmlen);
|
|
}
|
|
if (dissector_found)
|
|
{
|
|
lbmpdm_dissect_lbmpdm_payload(data_tvb, 0, pinfo, subtree, actual_channel);
|
|
}
|
|
else
|
|
{
|
|
call_dissector(lbmc_data_dissector_handle, data_tvb, pinfo, subtree);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
call_dissector(lbmc_data_dissector_handle, data_tvb, pinfo, subtree);
|
|
}
|
|
}
|
|
if (msgprop_tvb != NULL)
|
|
{
|
|
dissect_msg_properties(msgprop_tvb, 0, pinfo, subtree);
|
|
}
|
|
if (msg_complete)
|
|
{
|
|
if (puim_stream_info != NULL)
|
|
{
|
|
lbm_uim_stream_info_t * msg_info;
|
|
|
|
puim_stream_info->description = msg_type;
|
|
/* The dup is needed since there may be multiple stream infos per packet. */
|
|
msg_info = lbmc_dup_stream_info(puim_stream_info);
|
|
tap_queue_packet(lbmc_uim_tap_handle, pinfo, (void *)msg_info);
|
|
}
|
|
}
|
|
len_dissected += tvb_reported_length_remaining(lbmc_tvb, pkt_offset);
|
|
}
|
|
else
|
|
{
|
|
msg_type = lbmc_determine_msg_type(found_header);
|
|
|
|
if (msg_type != NULL)
|
|
{
|
|
col_append_sep_str(pinfo->cinfo, COL_INFO, " ", msg_type);
|
|
if (puim_stream_info != NULL)
|
|
{
|
|
lbm_uim_stream_info_t * msg_info;
|
|
|
|
puim_stream_info->description = msg_type;
|
|
/* The dup is needed since there may be multiple stream infos per packet. */
|
|
msg_info = lbmc_dup_stream_info(puim_stream_info);
|
|
tap_queue_packet(lbmc_uim_tap_handle, pinfo, (void *)msg_info);
|
|
}
|
|
}
|
|
}
|
|
tvb_lbmc_offset += msglen;
|
|
}
|
|
return (len_dissected);
|
|
}
|
|
|
|
int lbmc_get_minimum_length(void)
|
|
{
|
|
return (O_LBMC_HDR_T_MSGLEN + L_LBMC_HDR_T_MSGLEN);
|
|
}
|
|
|
|
guint16 lbmc_get_message_length(tvbuff_t * tvb, int offset)
|
|
{
|
|
return (tvb_get_ntohs(tvb, offset + O_LBMC_HDR_T_MSGLEN));
|
|
}
|
|
|
|
/* Register all the bits needed with the filtering engine */
|
|
void proto_register_lbmc(void)
|
|
{
|
|
static hf_register_info hf[] =
|
|
{
|
|
{ &hf_lbmc_tag,
|
|
{ "Tag", "lbmc.tag", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic,
|
|
{ "Topic", "lbmc.topic", FT_STRING, BASE_NONE, NULL, 0x0, "Topic string", HFILL } },
|
|
{ &hf_lbmc_version,
|
|
{ "Version", "lbmc.version", FT_UINT8, BASE_DEC, NULL, LBMC_HDR_VER_TYPE_VER_MASK, "LBMC protocol version", HFILL } },
|
|
{ &hf_lbmc_type,
|
|
{ "Type", "lbmc.type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_message_type), LBMC_HDR_VER_TYPE_TYPE_MASK, "LBMC packet type", HFILL } },
|
|
{ &hf_lbmc_next_hdr,
|
|
{ "Next Header", "lbmc.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_msglen,
|
|
{ "Message Length", "lbmc.msglen", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tidx,
|
|
{ "Topic Index", "lbmc.tidx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sqn,
|
|
{ "Sequence Number", "lbmc.sqn", FT_UINT32, BASE_DEC, NULL, 0x0, "Topic sequence number", HFILL } },
|
|
{ &hf_lbmc_frag,
|
|
{ "Fragment", "lbmc.frag", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_frag_next_hdr,
|
|
{ "Next Header", "lbmc.frag.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_frag_hdr_len,
|
|
{ "Header Length", "lbmc.frag.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_frag_flags,
|
|
{ "Flags", "lbmc.frag.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_frag_flags_ignore,
|
|
{ "Ignore", "lbmc.frag.flags.ignore", FT_BOOLEAN, L_LBMC_FRAG_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_frag_first_sqn,
|
|
{ "First Sequence Number", "lbmc.frag.first_sqn", FT_UINT32, BASE_DEC, NULL, 0x0, "First sqn of fragment for this message", HFILL } },
|
|
{ &hf_lbmc_frag_offset,
|
|
{ "Offset", "lbmc.frag.offset", FT_UINT32, BASE_DEC, NULL, 0x0, "Offset of this fragment within message", HFILL } },
|
|
{ &hf_lbmc_frag_len,
|
|
{ "Length", "lbmc.frag.len", FT_UINT32, BASE_DEC, NULL, 0x0, "Total length of message", HFILL } },
|
|
{ &hf_lbmc_batch,
|
|
{ "Batch", "lbmc.batch", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_batch_next_hdr,
|
|
{ "Next Header", "lbmc.batch.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_batch_hdr_len,
|
|
{ "Header Length", "lbmc.batch.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_batch_flags,
|
|
{ "Flags", "lbmc.batch.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_batch_flags_ignore,
|
|
{ "Ignore", "lbmc.batch.flags.ignore", FT_BOOLEAN, L_LBMC_BATCH_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_batch_flags_batch_start,
|
|
{ "Batch Start", "lbmc.batch.flags.batch_start", FT_BOOLEAN, L_LBMC_BATCH_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_BATCH_START, "If set, indicates the start of an explicit batch", HFILL } },
|
|
{ &hf_lbmc_batch_flags_batch_end,
|
|
{ "Batch End", "lbmc.batch.flags.batch_end", FT_BOOLEAN, L_LBMC_BATCH_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_BATCH_END, "If set, indicate the end of an explicit batch", HFILL } },
|
|
{ &hf_lbmc_tcp_request,
|
|
{ "Request", "lbmc.tcp_request", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_request_next_hdr,
|
|
{ "Next Header", "lbmc.tcp_request.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_request_hdr_len,
|
|
{ "Header Length", "lbmc.tcp_request.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_request_flags,
|
|
{ "Flags", "lbmc.tcp_request.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_request_flags_ignore,
|
|
{ "Ignore", "lbmc.tcp_request_flags.ignore", FT_BOOLEAN, L_LBMC_TCP_REQUEST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_request_transport,
|
|
{ "Transport", "lbmc.tcp_request.transport", FT_UINT8, BASE_HEX, VALS(lbmc_req_transport_type), 0x0, "Transport type", HFILL } },
|
|
{ &hf_lbmc_tcp_request_qidx,
|
|
{ "Request Index", "lbmc.tcp_request.qidx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_request_port,
|
|
{ "Port", "lbmc.tcp_request.port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_request_reserved,
|
|
{ "Reserved", "lbmc.tcp_request.reserved", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_request_ipaddr,
|
|
{ "Requester IP Address", "lbmc.tcp_request.ipaddr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topicname,
|
|
{ "Topicname", "lbmc.topicname", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topicname_next_hdr,
|
|
{ "Next Header", "lbmc.topicname.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topicname_hdr_len,
|
|
{ "Header Length", "lbmc.topicname.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topicname_flags,
|
|
{ "Flags", "lbmc.topicname.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topicname_flags_ignore,
|
|
{ "Ignore", "lbmc.topicname.flags.ignore", FT_BOOLEAN, L_LBMC_TOPICNAME_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_topicname_topicname,
|
|
{ "Topic", "lbmc.topicname.topic", FT_STRING, BASE_NONE, NULL, 0x0, "Topic name", HFILL } },
|
|
{ &hf_lbmc_apphdr,
|
|
{ "AppHeader", "lbmc.apphdr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_next_hdr,
|
|
{ "Next Header", "lbmc.apphdr.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_hdr_len,
|
|
{ "Header Length", "lbmc.apphdr.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_ignore,
|
|
{ "Ignore", "lbmc.apphdr.ignore", FT_BOOLEAN, L_LBMC_APPHDR_HDR_T_CODE * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_code,
|
|
{ "Application Code", "lbmc.apphdr.code", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_APPHDR_CODE_MASK, "Application header code", HFILL } },
|
|
{ &hf_lbmc_apphdr_data,
|
|
{ "Data", "lbmc.apphdr.data", FT_NONE, BASE_NONE, NULL, 0x0, "Application header data", HFILL } },
|
|
{ &hf_lbmc_apphdr_chain,
|
|
{ "AppHeader Chain", "lbmc.apphdr_chain", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_next_hdr,
|
|
{ "Next Header", "lbmc.apphdr_chain.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_hdr_len,
|
|
{ "Header Length", "lbmc.apphdr_chain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_res,
|
|
{ "Reserved", "lbmc.apphdr_chain.res", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_first_chain_hdr,
|
|
{ "First chain hdr", "lbmc.apphdr_chain.first_chain_hdr", FT_UINT8, BASE_HEX_DEC, VALS(lbmc_apphdr_chain_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_element,
|
|
{ "AppHeader Chain Element", "lbmc.apphdr_chain.element", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_element_next_hdr,
|
|
{ "Next Header", "lbmc.apphdr_chain.element.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_apphdr_chain_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_element_hdr_len,
|
|
{ "Header Length", "lbmc.apphdr_chain.element.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_element_res,
|
|
{ "Reserved", "lbmc.apphdr_chain.element.res", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_element_data,
|
|
{ "Data", "lbmc.apphdr_chain.element.data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_msgprop,
|
|
{ "AppHeader Chain Message Properties Element", "lbmc.apphdr_chain.msgprop", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_msgprop_next_hdr,
|
|
{ "Next Header", "lbmc.apphdr_chain.msgprop.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_apphdr_chain_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_msgprop_hdr_len,
|
|
{ "Header Length", "lbmc.apphdr_chain.msgprop.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_msgprop_res,
|
|
{ "Reserved", "lbmc.apphdr_chain.msgprop.res", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_apphdr_chain_msgprop_len,
|
|
{ "Properties Length", "lbmc.apphdr_chain.msgprop.proplen", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_msgid,
|
|
{ "UMQ MessageID", "lbmc.umq_msgid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_msgid_next_hdr,
|
|
{ "Next Header", "lbmc.umq_msgid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_msgid_hdr_len,
|
|
{ "Header Length", "lbmc.umq_msgid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_msgid_flags,
|
|
{ "Flags", "lbmc.umq_msgid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_msgid_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_msgid.flags.ignore", FT_BOOLEAN, L_LBMC_UMQ_MSGID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_msgid_msgid_regid,
|
|
{ "Message ID RegID", "lbmc.umq_msgid.msgid_regid", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, "Message ID registration ID", HFILL } },
|
|
{ &hf_lbmc_umq_msgid_msgid_stamp,
|
|
{ "MessageID Stamp", "lbmc.umq_msgid.msgid_stamp", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, "Message ID stamp", HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv,
|
|
{ "UMQ SQD Receiver", "lbmc.umq_sqd_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_next_hdr,
|
|
{ "Next Header", "lbmc.umq_sqd_rcv.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_hdr_len,
|
|
{ "Header Length", "lbmc.umq_sqd_rcv.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_flags,
|
|
{ "Flags", "lbmc.umq_sqd_rcv.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_sqd_rcv.flags.ignore", FT_BOOLEAN, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_flags_r_flag,
|
|
{ "Reassign", "lbmc.umq_sqd_rcv.flags.r_flag", FT_BOOLEAN, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_SQD_RCV_R_FLAG, "Set if this is a reassignment", HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_flags_s_flag,
|
|
{ "Resubmit", "lbmc.umq_sqd_rcv.flags.s_flag", FT_BOOLEAN, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_SQD_RCV_S_FLAG, "Set if this is a resubmission", HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_flags_re_flag,
|
|
{ "Redelivered", "lbmc.umq_sqd_rcv.flags.re_flag", FT_BOOLEAN, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_SQD_RCV_RE_FLAG, "Set if this is a redelivery", HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_flags_eoi_flag,
|
|
{ "End of Index", "lbmc.umq_sqd_rcv.flags.eoi_flag", FT_BOOLEAN, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_SQD_RCV_BOI_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_flags_boi_flag,
|
|
{ "Beginning of Index", "lbmc.umq_sqd_rcv.flags.boi_flag", FT_BOOLEAN, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_SQD_RCV_EOI_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_queue_id,
|
|
{ "Queue ID", "lbmc.umq_sqd_rcv.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_queue_ver,
|
|
{ "Queue Version", "lbmc.umq_sqd_rcv.queue_ver", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_sqd_rcv.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sqd_rcv_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_sqd_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub,
|
|
{ "UMQ Resubmission", "lbmc.umq_resub", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_next_hdr,
|
|
{ "Next Header", "lbmc.umq_resub.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_hdr_len,
|
|
{ "Header Length", "lbmc.umq_resub.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_flags,
|
|
{ "Flags", "lbmc.umq_resub.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_resub.flags.ignore", FT_BOOLEAN, L_LBMC_UMQ_RESUB_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_flags_q_flag,
|
|
{ "Queue", "lbmc.umq_resub.flags.q_flag", FT_BOOLEAN, L_LBMC_UMQ_RESUB_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_RESUB_Q_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_resub.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "Receiver control record index", HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_ip,
|
|
{ "Response IP Address", "lbmc.umq_resub.resp_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_port,
|
|
{ "Response Port", "lbmc.umq_resub.resp_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_appset_idx,
|
|
{ "AppSet Index", "lbmc.umq_resub.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_otid,
|
|
{ "OTID", "lbmc.otid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_otid_next_hdr,
|
|
{ "Next Header", "lbmc.otid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_otid_hdr_len,
|
|
{ "Header Length", "lbmc.otid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_otid_flags,
|
|
{ "Flags", "lbmc.otid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_otid_flags_ignore,
|
|
{ "Ignore", "lbmc.otid.flags.ignore", FT_BOOLEAN, L_LBMC_OTID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_otid_otid,
|
|
{ "OTID", "lbmc.otid.otid", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinst,
|
|
{ "Context Instance", "lbmc.ctxinst", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinst_next_hdr,
|
|
{ "Next Header", "lbmc.ctxinst.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinst_hdr_len,
|
|
{ "Header Length", "lbmc.ctxinst.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinst_flags,
|
|
{ "Flags", "lbmc.ctxinst.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinst_flags_ignore,
|
|
{ "Ignore", "lbmc.ctxinst_flags.ignore", FT_BOOLEAN, L_LBMC_CTXINST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinst_ctxinst,
|
|
{ "Context Instance", "lbmc.ctxinst.ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinstd,
|
|
{ "Context Instance Destination", "lbmc.ctxinstd", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinstr,
|
|
{ "Context Instance Return", "lbmc.ctxinstr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_srcidx,
|
|
{ "Source Index", "lbmc.srcidx", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_srcidx_next_hdr,
|
|
{ "Next Header", "lbmc.srcidx.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_srcidx_hdr_len,
|
|
{ "Header Length", "lbmc.srcidx.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_srcidx_flags,
|
|
{ "Flags", "lbmc.srcidx.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_srcidx_flags_ignore,
|
|
{ "Ignore", "lbmc.srcidx.flags.ignore", FT_BOOLEAN, L_LBMC_SRCIDX_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_srcidx_srcidx,
|
|
{ "Source Index", "lbmc.srcidx.srcidx", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg,
|
|
{ "UMQ ULB Message", "lbmc.umq_ulb_msg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_next_hdr,
|
|
{ "Next Header", "lbmc.umq_ulb_msg.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_hdr_len,
|
|
{ "Header Length", "lbmc.umq_ulb_msg.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_flags,
|
|
{ "Flags", "lbmc.umq_ulb_msg.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_ulb_msg.flags.ignore", FT_BOOLEAN, L_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_flags_a_flag,
|
|
{ "Assigned", "lbmc.umq_ulb_msg.flags.a", FT_BOOLEAN, L_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_ULB_MSG_A_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_flags_r_flag,
|
|
{ "Reassigned", "lbmc.umq_ulb_msg.flags.r", FT_BOOLEAN, L_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_ULB_MSG_R_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_queue_id,
|
|
{ "Queue ID", "lbmc.umq_ulb_msg.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_ulb_msg.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_ulb_msg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_appset_idx,
|
|
{ "AppSet Index", "lbmc.umq_ulb_msg.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_msg_num_ras,
|
|
{ "Number of RAs", "lbmc.umq_ulb_msg.num_ras", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, "Number of reassignments", HFILL } },
|
|
{ &hf_lbmc_ssf_init,
|
|
{ "SSF Init", "lbmc.ssf_init", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_next_hdr,
|
|
{ "Next Header", "lbmc.ssf_init.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_hdr_len,
|
|
{ "Header Length", "lbmc.ssf_init.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_transport,
|
|
{ "Transport", "lbmc.ssf_init.transport", FT_UINT8, BASE_DEC, VALS(lbmc_ssf_transport_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_flags,
|
|
{ "Flags", "lbmc.ssf_init.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_flags_ignore,
|
|
{ "Ignore", "lbmc.ssf_init.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_flags_default_inclusions,
|
|
{ "Default Inclusions", "lbmc.ssf_init.flags.default_inclusions", FT_BOOLEAN, L_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CNTL_SSF_INIT_DEFAULT_INC, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_flags_default_exclusions,
|
|
{ "Default Exclusions", "lbmc.ssf_init.flags.default_exclusions", FT_BOOLEAN, L_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CNTL_SSF_INIT_DEFAULT_EXC, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_transport_idx,
|
|
{ "Transport Index", "lbmc.ssf_init.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_client_idx,
|
|
{ "Client Index", "lbmc.ssf_init.client_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_ssf_port,
|
|
{ "SSF Port", "lbmc.ssf_init.ssf_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_res,
|
|
{ "Reserved", "lbmc.ssf_init.res", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_init_ssf_ip,
|
|
{ "SSF IP Address", "lbmc.ssf_init.ssf_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_creq,
|
|
{ "SSF CReq", "lbmc.ssf_creq", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_creq_next_hdr,
|
|
{ "Next Header", "lbmc.ssf_creq.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_creq_hdr_len,
|
|
{ "Header Length", "lbmc.ssf_creq.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_creq_flags,
|
|
{ "Flags", "lbmc.ssf_creq.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_creq_flags_ignore,
|
|
{ "Ignore", "lbmc.ssf_creq.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_creq_mode,
|
|
{ "Mode", "lbmc.ssf_creq.mode", FT_UINT8, BASE_HEX, VALS(lbmc_ssf_creq_mode), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_creq_transport_idx,
|
|
{ "Transport Index", "lbmc.ssf_creq.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_creq_topic_idx,
|
|
{ "Topic Index", "lbmc.ssf_creq.topic_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ssf_creq_client_idx,
|
|
{ "Client Index", "lbmc.ssf_creq.client_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg,
|
|
{ "UME PReg", "lbmc.ume_preg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_next_hdr,
|
|
{ "Next Header", "lbmc.ume_preg.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_hdr_len,
|
|
{ "Header Length", "lbmc.ume_preg.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_flags,
|
|
{ "Flags", "lbmc.ume_preg.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_preg.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_flags_f_flag,
|
|
{ "Do Not Forward ACKs", "lbmc.ume_preg.flags.f_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS * 8, TFS(&lbmc_ume_f_flag), LBMC_UME_PREG_F_FLAG, "Set if ACKs are to be forwarded", HFILL } },
|
|
{ &hf_lbmc_ume_preg_flags_p_flag,
|
|
{ "Proxy Source", "lbmc.ume_preg.flags.p_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_PREG_P_FLAG, "Set if this source is a proxy source", HFILL } },
|
|
{ &hf_lbmc_ume_preg_flags_w_flag,
|
|
{ "Receiver Paced Persistence", "lbmc.ume_preg.flags.w_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_PREG_W_FLAG, "Set if receiver paced persistence is used", HFILL } },
|
|
{ &hf_lbmc_ume_preg_flags_d_flag,
|
|
{ "Deregister", "lbmc.ume_preg.flags.d_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_PREG_D_FLAG, "Set if this is a de-registration", HFILL } },
|
|
{ &hf_lbmc_ume_preg_s_flag,
|
|
{ "Source Registration", "lbmc.ume_preg.s_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_MARKER * 8, TFS(&lbmc_ume_s_flag), LBMC_UME_PREG_S_FLAG, "Set if this is a source registration", HFILL } },
|
|
{ &hf_lbmc_ume_preg_marker,
|
|
{ "Marker", "lbmc.ume_preg.marker", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_PREG_MARKER_MASK, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_reg_id,
|
|
{ "Registration ID", "lbmc.ume_preg.reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_transport_idx,
|
|
{ "Transport Index", "lbmc.ume_preg.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_topic_idx,
|
|
{ "Topic Index", "lbmc.ume_preg.topic_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_src_reg_id,
|
|
{ "Source Registration ID", "lbmc.ume_preg.src_reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_port,
|
|
{ "Response Port", "lbmc.ume_preg.resp_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_res2,
|
|
{ "Reserved2", "lbmc.ume_preg.res2", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_ip,
|
|
{ "Response IP Address", "lbmc.ume_preg.resp_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp,
|
|
{ "UME PReg Resp", "lbmc.ume_preg_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_next_hdr,
|
|
{ "Next Header", "lbmc.ume_preg_resp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_hdr_len,
|
|
{ "Header Length", "lbmc.ume_preg_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_code,
|
|
{ "Code", "lbmc.ume_preg_resp.code", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_code_ignore,
|
|
{ "Ignore", "lbmc.ume_preg_resp.code.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_code_e_flag,
|
|
{ "Error Indicator", "lbmc.ume_preg_resp.code.e_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE * 8, TFS(&lbmc_ume_error_flag), LBMC_UME_PREG_RESP_E_FLAG, "Set if an error occurred", HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_code_o_flag,
|
|
{ "Old Client", "lbmc.ume_preg_resp.code.o_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE * 8, TFS(&lbmc_ume_o_flag), LBMC_UME_PREG_RESP_O_FLAG, "Set if an old client was detected", HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_code_n_flag,
|
|
{ "No ACKs/No Cache", "lbmc.ume_preg_resp.code.n_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE * 8, TFS(&lbmc_ume_n_flag), LBMC_UME_PREG_RESP_CODE_NOACKS_FLAG, "Set if not ACKing or not caching", HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_code_w_flag,
|
|
{ "Receiver Paced Persistence", "lbmc.ume_preg_resp.code.w_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE * 8, TFS(&tfs_set_notset), LBMC_UME_PREG_RESP_W_FLAG, "Set if receiver paced persistence", HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_code_d_flag,
|
|
{ "Deregister", "lbmc.ume_preg_resp.code.d_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE * 8, TFS(&tfs_set_notset), LBMC_UME_PREG_RESP_D_FLAG, "Set if deregistration", HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_code_code,
|
|
{ "Error Code", "lbmc.ume_preg_resp.code.code", FT_UINT8, BASE_HEX, VALS(lbmc_ume_preg_resp_error_code), LBMC_CNTL_UME_PREG_RESP_CODE_MASK, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_s_flag,
|
|
{ "Source Registration", "lbmc.ume_preg_resp.s_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER * 8, TFS(&lbmc_ume_s_flag), LBMC_UME_PREG_S_FLAG, "Set if source registration", HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_marker,
|
|
{ "Marker", "lbmc.ume_preg_resp.marker", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_PREG_MARKER_MASK, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_reg_id,
|
|
{ "Registration ID", "lbmc.ume_preg_resp.reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_transport_idx,
|
|
{ "Transport Index", "lbmc.ume_preg_resp.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_topic_idx,
|
|
{ "Topic Index", "lbmc.ume_preg_resp.topic_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_low_seqnum,
|
|
{ "Low Sequence Number", "lbmc.ume_preg_resp.low_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_preg_resp_high_seqnum,
|
|
{ "High Sequence Number", "lbmc.ume_preg_resp.high_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack,
|
|
{ "UME ACK", "lbmc.ume_ack", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_next_hdr,
|
|
{ "Next Header", "lbmc.ume_ack.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_hdr_len,
|
|
{ "Header Length", "lbmc.ume_ack.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_flags,
|
|
{ "Flags", "lbmc.ume_ack.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_ack.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_flags_o_flag,
|
|
{ "Receiver Arrival-Order Delivery", "lbmc.ume_ack.flags.o_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_ACK_O_FLAG, "Set if receiver specified arrival-order delivery", HFILL } },
|
|
{ &hf_lbmc_ume_ack_flags_f_flag,
|
|
{ "Do Not Forward ACKs", "lbmc.ume_ack.flags.f_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS * 8, TFS(&lbmc_ume_f_flag), LBMC_UME_ACK_F_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_flags_u_flag,
|
|
{ "User-Specified Receiver Registration ID", "lbmc.ume_ack.flags.u_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_ACK_U_FLAG, "Set if receiver registration ID was set by the user", HFILL } },
|
|
{ &hf_lbmc_ume_ack_flags_e_flag,
|
|
{ "Explicit ACK", "lbmc.ume_ack.flags.e_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_ACK_E_FLAG, "Set if an explicit ACK", HFILL } },
|
|
{ &hf_lbmc_ume_ack_type,
|
|
{ "Type", "lbmc.ume_ack.type", FT_UINT8, BASE_HEX, VALS(lbmc_ume_ack_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_transport_idx,
|
|
{ "Transport Index", "lbmc.ume_ack.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_id_2,
|
|
{ "Topic Index/Registration ID", "lbmc.ume_ack.id_2", FT_UINT32, BASE_DEC, NULL, 0x0, "Topic index (from store) or Registration ID (from receiver)", HFILL } },
|
|
{ &hf_lbmc_ume_ack_rcv_reg_id,
|
|
{ "Receiver Registration ID", "lbmc.ume_ack.rcv_reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_seqnum,
|
|
{ "Sequence Number", "lbmc.ume_ack.seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq,
|
|
{ "UME RX Request", "lbmc.ume_rxreq", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_next_hdr,
|
|
{ "Next Header", "lbmc.ume_rxreq.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_hdr_len,
|
|
{ "Header Length", "lbmc.ume_rxreq.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_flags,
|
|
{ "Flags", "lbmc.ume_rxreq.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_rxreq.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_flags_tsni_req,
|
|
{ "TSNI Request", "lbmc.ume_rxreq.flags.t", FT_BOOLEAN, L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_RXREQ_T_FLAG, "Set if TSNI request", HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_marker,
|
|
{ "Marker", "lbmc.ume_rxreq.marker", FT_UINT16, BASE_HEX_DEC, NULL, LBMC_UME_RXREQ_MARKER_MASK, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_request_idx,
|
|
{ "Request Index", "lbmc.ume_rxreq.request_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_transport_idx,
|
|
{ "Transport Index", "lbmc.ume_rxreq.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_id_2,
|
|
{ "Topic Index/Registration ID", "lbmc.ume_rxreq.id_2", FT_UINT32, BASE_DEC, NULL, 0x0, "Topic index (from store) or Registration ID (from receiver)", HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_seqnum,
|
|
{ "Sequence Number", "lbmc.ume_rxreq.seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_rx_port,
|
|
{ "Retransmission Port", "lbmc.ume_rxreq.rx_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_res,
|
|
{ "Reserved", "lbmc.ume_rxreq.res", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_rxreq_rx_ip,
|
|
{ "Retransmission IP Address", "lbmc.ume_rxreq.rx_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_keepalive,
|
|
{ "UME Keepalive", "lbmc.ume_keepalive", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_keepalive_next_hdr,
|
|
{ "Next Header", "lbmc.ume_keepalive.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_keepalive_hdr_len,
|
|
{ "Header Length", "lbmc.ume_keepalive.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_keepalive_flags,
|
|
{ "Flags", "lbmc.ume_keepalive.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_keepalive_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_keepalive.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_keepalive_flags_r_flag,
|
|
{ "Response Requested", "lbmc.ume_keepalive.flags.r_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS * 8, TFS(&lbmc_ume_r_flag), LBMC_UME_KEEPALIVE_R_FLAG, "Set if response requested", HFILL } },
|
|
{ &hf_lbmc_ume_keepalive_flags_t_flag,
|
|
{ "No TIR Seen", "lbmc.ume_keepalive.flags.t_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS * 8, TFS(&lbmc_ume_t_flag), LBMC_UME_KEEPALIVE_T_FLAG, "Set if no TIR seen", HFILL } },
|
|
{ &hf_lbmc_ume_keepalive_type,
|
|
{ "Type", "lbmc.ume_keepalive.type", FT_UINT8, BASE_HEX, VALS(lbmc_ume_ka_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_keepalive_transport_idx,
|
|
{ "Transport Index", "lbmc.ume_keepalive.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_keepalive_topic_idx,
|
|
{ "Topic Index", "lbmc.ume_keepalive.topic_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_keepalive_reg_id,
|
|
{ "Registration ID", "lbmc.ume_keepalive.reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storeid,
|
|
{ "UME Store ID", "lbmc.ume_storeid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storeid_next_hdr,
|
|
{ "Next Header", "lbmc.ume_storeid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storeid_hdr_len,
|
|
{ "Header Length", "lbmc.ume_storeid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storeid_ignore,
|
|
{ "Ignore", "lbmc.ume_storeid.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storeid_store_id,
|
|
{ "Store ID", "lbmc.ume_storeid.store_id", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_STOREID_STOREID_MASK, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ranged_ack,
|
|
{ "UME Ranged ACK", "lbmc.ume_ranged_ack", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ranged_ack_next_hdr,
|
|
{ "Next Header", "lbmc.ume_ranged_ack.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ranged_ack_hdr_len,
|
|
{ "Header Length", "lbmc.ume_ranged_ack.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ranged_ack_flags,
|
|
{ "Flags", "lbmc.ume_ranged_ack.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ranged_ack_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_ranged_ack.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ranged_ack_first_seqnum,
|
|
{ "First Sequence Number", "lbmc.ume_ranged_ack.first_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ranged_ack_last_seqnum,
|
|
{ "Last Sequence Number", "lbmc.ume_ranged_ack.last_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_id,
|
|
{ "UME ACK ID", "lbmc.ume_ack_id", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_id_next_hdr,
|
|
{ "Next Header", "lbmc.ume_ack_id.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_id_hdr_len,
|
|
{ "Header Length", "lbmc.ume_ack_id.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_id_flags,
|
|
{ "Flags", "lbmc.ume_ack_id.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_id_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_ack_id.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_ack_id_id,
|
|
{ "Acknowledgement ID", "lbmc.ume_ack_id.id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_capability,
|
|
{ "UME Capability", "lbmc.ume_capability", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_capability_next_hdr,
|
|
{ "Next Header", "lbmc.ume_capability.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_capability_hdr_len,
|
|
{ "Header Length", "lbmc.ume_capability.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_capability_flags,
|
|
{ "Flags", "lbmc.ume_capability.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_capability_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_capability.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_capability_flags_qc_flag,
|
|
{ "Quorum/Consensus Capabilities", "lbmc.ume_capability.flags.qc_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_CAPABILITY_QC_FLAG, "Set if quorum/consensus supported", HFILL } },
|
|
{ &hf_lbmc_ume_capability_flags_client_lifetime_flag,
|
|
{ "Client Lifetime Capabilities", "lbmc.ume_capability.flags.client_lifetime_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_CAPABILITY_CLIENT_LIFETIME_FLAG, "Set if client lifetime enabled", HFILL } },
|
|
{ &hf_lbmc_ume_proxy_src,
|
|
{ "UME Proxy Source", "lbmc.ume_proxy_src", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_proxy_src_next_hdr,
|
|
{ "Next Header", "lbmc.ume_proxy_src.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_proxy_src_hdr_len,
|
|
{ "Header Length", "lbmc.ume_proxy_src.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_proxy_src_flags,
|
|
{ "Flags", "lbmc.ume_proxy_src.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_proxy_src_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_proxy_src.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_proxy_src_flags_enable,
|
|
{ "Enable Proxy Source", "lbmc.ume_proxy_src.flags.enable", FT_BOOLEAN, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_PROXY_SRC_E_FLAG, "Set if proxy source is enabled", HFILL } },
|
|
{ &hf_lbmc_ume_proxy_src_flags_compatibility,
|
|
{ "Enable Pre-6.0 Compatibility", "lbmc.ume_proxy_src.flags.compatibility", FT_BOOLEAN, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_PROXY_SRC_C_FLAG, "Set if pre-6.0 compatibility for created proxy source is enabled", HFILL } },
|
|
{ &hf_lbmc_ume_store_group,
|
|
{ "UME Store Group", "lbmc.ume_store_group", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_group_next_hdr,
|
|
{ "Next Header", "lbmc.ume_store_group.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_group_hdr_len,
|
|
{ "Header Length", "lbmc.ume_store_group.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_group_flags,
|
|
{ "Flags", "lbmc.ume_store_group.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_group_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_store_group.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STORE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_group_grp_idx,
|
|
{ "Group Index", "lbmc.ume_store_group.grp_idx", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_group_grp_sz,
|
|
{ "Group Size", "lbmc.ume_store_group.grp_sz", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_group_res1,
|
|
{ "Reserved", "lbmc.ume_store_group.res1", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store,
|
|
{ "UME Store", "lbmc.ume_store", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_next_hdr,
|
|
{ "Next Header", "lbmc.ume_store.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_hdr_len,
|
|
{ "Header Length", "lbmc.ume_store.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_flags,
|
|
{ "Flags", "lbmc.ume_store.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_store.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STORE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_grp_idx,
|
|
{ "Group Index", "lbmc.ume_store.grp_idx", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_store_tcp_port,
|
|
{ "Store TCP Port", "lbmc.ume_store.store_tcp_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_store_idx,
|
|
{ "Store Index", "lbmc.ume_store.store_idx", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_store_ip_addr,
|
|
{ "Store IP Address", "lbmc.ume_store.store_ip_addr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_src_reg_id,
|
|
{ "Source RegID", "lbmc.ume_store.src_reg_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_lj_info,
|
|
{ "UME Late Join", "lbmc.ume_lj_info", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_lj_info_next_hdr,
|
|
{ "Next Header", "lbmc.ume_lj_info.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_lj_info_hdr_len,
|
|
{ "Header Length", "lbmc.ume_lj_info.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_lj_info_flags,
|
|
{ "Flags", "lbmc.ume_lj_info.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_lj_info_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_lj_info.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_lj_info_low_seqnum,
|
|
{ "Low sequence", "lbmc.ume_lj_info.low_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_lj_info_high_seqnum,
|
|
{ "High sequence", "lbmc.ume_lj_info.high_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_lj_info_qidx,
|
|
{ "Request index", "lbmc.ume_lj_info.qidx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tsni,
|
|
{ "TSNI", "lbmc.tsni", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tsni_next_hdr,
|
|
{ "Next Header", "lbmc.tsni.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tsni_hdr_len,
|
|
{ "Header Length", "lbmc.tsni.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tsni_ignore,
|
|
{ "Ignore", "lbmc.tsni.ignore", FT_BOOLEAN, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_tsni_num_recs,
|
|
{ "Num Recs", "lbmc.tsni.num_recs", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_CNTL_TSNI_NUM_RECS_MASK, NULL, HFILL } },
|
|
{ &hf_lbmc_tsni_rec,
|
|
{ "TSNIs", "lbmc.tsni.tsni_rec", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tsni_rec_tidx,
|
|
{ "Topic Index", "lbmc.tsni.tsni_rec.tidx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tsni_rec_sqn,
|
|
{ "Sequence Number", "lbmc.tsni.tsni_rec.sqn", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg,
|
|
{ "UMQ Registration", "lbmc.umq_reg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_next_hdr,
|
|
{ "Next Header", "lbmc.umq_reg.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_hdr_len,
|
|
{ "Header Length", "lbmc.umq_reg.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_flags,
|
|
{ "Flags", "lbmc.umq_reg.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_reg.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_flags_r_flag,
|
|
{ "R Flag", "lbmc.umq_reg.flags.r_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_REG_R_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_flags_t_flag,
|
|
{ "TSP Present", "lbmc.umq_reg.flags.t_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_REG_T_FLAG, "Sst if TSP is present", HFILL } },
|
|
{ &hf_lbmc_umq_reg_flags_i_flag,
|
|
{ "Index Assign Eligible", "lbmc.umq_reg.flags.i_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_REG_I_FLAG, "Set if index assign eligible", HFILL } },
|
|
{ &hf_lbmc_umq_reg_flags_msg_sel_flag,
|
|
{ "Message Selector", "lbmc.umq_reg.flags.msg_sel_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_REG_MSG_SEL_FLAG, "Set if message selector present", HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_type,
|
|
{ "Registration Type", "lbmc.umq_reg.reg_type", FT_UINT8, BASE_DEC, VALS(lbmc_umq_reg_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_queue_id,
|
|
{ "Queue ID", "lbmc.umq_reg.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_cmd_id,
|
|
{ "Command ID", "lbmc.umq_reg.cmd_id", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_inst_idx,
|
|
{ "Instance Index", "lbmc.umq_reg.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_regid,
|
|
{ "Registration ID", "lbmc.umq_reg.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ctx,
|
|
{ "Context Registration", "lbmc.umq_reg.reg_ctx", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ctx_port,
|
|
{ "Port", "lbmc.umq_reg.reg_ctx.port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ctx_reserved,
|
|
{ "Reserved", "lbmc.umq_reg.reg_ctx.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ctx_ip,
|
|
{ "IP Address", "lbmc.umq_reg.reg_ctx.ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ctx_capabilities,
|
|
{ "Capabilities", "lbmc.umq_reg.reg_ctx.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_src,
|
|
{ "Source Registration", "lbmc.umq_reg.reg_src", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_src_transport_idx,
|
|
{ "Transport Index", "lbmc.umq_reg.reg_src.transport_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_src_topic_idx,
|
|
{ "Topic Index", "lbmc.umq_reg.reg_src.topic_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_rcv,
|
|
{ "Receiver Registration", "lbmc.umq_reg.reg_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_rcv_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg.reg_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_rcv_rcv_type_id,
|
|
{ "Receiver Type ID", "lbmc.umq_reg.reg_rcv.rcv_type_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_rcv_last_topic_rcr_tsp,
|
|
{ "Last Topic RCR TSP", "lbmc.umq_reg.reg_rcv.last_topic_rcr_tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_rcv_dereg,
|
|
{ "Receiver deregistration", "lbmc.umq_reg.rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_rcv_dereg_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_reg.rcv_dereg.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_rcv_dereg_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg.rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ulb_rcv,
|
|
{ "ULB Receiver registration", "lbmc.umq_reg.reg_ulb_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ulb_rcv_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_reg.reg_ulb_rcv.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ulb_rcv_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg.reg_ulb_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ulb_rcv_rcv_type_id,
|
|
{ "Receiver Type ID", "lbmc.umq_reg.reg_ulb_rcv.rcv_type_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ulb_rcv_port,
|
|
{ "Port", "lbmc.umq_reg.reg_ulb_rcv.port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ulb_rcv_reserved,
|
|
{ "Reserved", "lbmc.umq_reg.reg_ulb_rcv.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ulb_rcv_ip,
|
|
{ "IP Address", "lbmc.umq_reg.reg_ulb_rcv.ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_ulb_rcv_capabilities,
|
|
{ "Capabilities", "lbmc.umq_reg.reg_ulb_rcv.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_ulb_rcv_dereg,
|
|
{ "ULB Receiver Deregistration", "lbmc.umq_reg.ulb_rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_ulb_rcv_dereg_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_reg.ulb_rcv_dereg.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_ulb_rcv_dereg_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg.ulb_rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_observer_rcv,
|
|
{ "Observer Receiver Registration", "lbmc.umq_reg.reg_observer_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_observer_rcv_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg.reg_observer_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_observer_rcv_rcv_type_id,
|
|
{ "Receiver Type ID", "lbmc.umq_reg.reg_observer_rcv.rcv_type_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_reg_observer_rcv_last_topic_rcr_tsp,
|
|
{ "Last Topic RCR TSP", "lbmc.umq_reg.reg_observer_rcv.last_topic_rcr_tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_observer_rcv_dereg,
|
|
{ "Observer Receiver Deregistration", "lbmc.umq_reg.observer_rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_observer_rcv_dereg_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_reg.observer_rcv_dereg.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_observer_rcv_dereg_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg.observer_rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp,
|
|
{ "UMQ Registration Response", "lbmc.umq_reg_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_next_hdr,
|
|
{ "Next Header", "lbmc.umq_reg_resp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_hdr_len,
|
|
{ "Header Length", "lbmc.umq_reg_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_flags,
|
|
{ "Flags", "lbmc.umq_reg_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_reg_resp.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_flags_r_flag,
|
|
{ "R Flag", "lbmc.umq_reg_resp.flags.r", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_REG_RESP_R_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_flags_l_flag,
|
|
{ "ULB Error", "lbmc.umq_reg_resp.flags.l", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_REG_RESP_ERR_L_FLAG, "Set if ULB error occurred", HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_flags_src_s_flag,
|
|
{ "Source Dissemination", "lbmc.umq_reg_resp.flags.src_s", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_REG_RESP_SRC_S_FLAG, "Set if source dissemination model", HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_flags_src_d_flag,
|
|
{ "RCR Index Present", "lbmc.umq_reg_resp.flags.src_d", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_REG_RESP_SRC_D_FLAG, "Set if RCR index present", HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_resp_type,
|
|
{ "Registration Response Type", "lbmc.umq_reg_resp.resp_type", FT_UINT8, BASE_DEC, VALS(lbmc_umq_reg_response_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_queue_id,
|
|
{ "Queue ID", "lbmc.umq_reg_resp.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_cmd_id,
|
|
{ "Command ID", "lbmc.umq_reg_resp.cmd_id", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_inst_idx,
|
|
{ "Instance Index", "lbmc.umq_reg_resp.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_regid,
|
|
{ "Registration ID", "lbmc.umq_reg_resp.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ctx,
|
|
{ "Context Registration Response", "lbmc.umq_reg_resp.reg_ctx", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ctx_capabilities,
|
|
{ "Capabilities", "lbmc.umq_reg_resp.reg_ctx.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ctx_ex,
|
|
{ "Extended Context Registration Response", "lbmc.umq_reg_resp.reg_ctx_ex", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ctx_ex_capabilities,
|
|
{ "Capabilities", "lbmc.umq_reg_resp.reg_ctx_ex.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ctx_ex_reserved,
|
|
{ "Reserved", "lbmc.umq_reg_resp.reg_ctx_ex.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ctx_ex_flags,
|
|
{ "Flags", "lbmc.umq_reg_resp.reg_ctx_ex.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ctx_ex_flags_firstmsg,
|
|
{ "First Message", "lbmc.umq_reg_resp.reg_ctx_ex.flags.firstmsg", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_REG_RESP_CTX_EX_FLAG_FIRSTMSG, "Set if first message", HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ctx_ex_stamp,
|
|
{ "Stamp", "lbmc.umq_reg_resp.reg_ctx_ex.stamp", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_err,
|
|
{ "Registration Error Response", "lbmc.umq_reg_resp.err", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_err_reserved,
|
|
{ "Reserved", "lbmc.umq_reg_resp.err.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_err_code,
|
|
{ "Code", "lbmc.umq_reg_resp.err.code", FT_UINT16, BASE_HEX_DEC, VALS(lbmc_umq_reg_response_error_code), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_src,
|
|
{ "Source Registration Response", "lbmc.umq_reg_resp.reg_src", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_src_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_reg_resp.reg_src.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_rcv,
|
|
{ "Receiver Registration Response", "lbmc.umq_reg_resp.reg_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_rcv_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_reg_resp.reg_rcv.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_rcv_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg_resp.reg_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_rcv_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_reg_resp.reg_rcv.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_rcv_reserved,
|
|
{ "Reserved", "lbmc.umq_reg_resp.reg_rcv.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_rcv_dereg,
|
|
{ "Receiver Deregistration Response", "lbmc.umq_reg_resp.rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_rcv_dereg_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_reg_resp.rcv_dereg.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_rcv_dereg_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg_resp.rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ulb_rcv,
|
|
{ "ULB Receiver Registration Response", "lbmc.umq_reg_resp.reg_ulb_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ulb_rcv_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_reg_resp.reg_ulb_rcv.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ulb_rcv_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg_resp.reg_ulb_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ulb_rcv_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_reg_resp.reg_ulb_rcv.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ulb_rcv_reserved,
|
|
{ "Reserved", "lbmc.umq_reg_resp.reg_ulb_rcv.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_ulb_rcv_capabilities,
|
|
{ "Capabilities", "lbmc.umq_reg_resp.reg_ulb_rcv.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_ulb_rcv_dereg,
|
|
{ "ULB Receiver Deregistration Response", "lbmc.umq_reg_resp.ulb_rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_ulb_rcv_dereg_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_reg_resp.ulb_rcv_dereg.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_ulb_rcv_dereg_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg_resp.ulb_rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_observer_rcv,
|
|
{ "Observer Receiver Registration Response", "lbmc.umq_reg_resp.reg_observer_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_observer_rcv_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_reg_resp.reg_observer_rcv.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_observer_rcv_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg_resp.reg_observer_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_observer_rcv_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_reg_resp.reg_observer_rcv.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_reg_observer_rcv_reserved,
|
|
{ "Reserved", "lbmc.umq_reg_resp.reg_observer_rcv.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_observer_rcv_dereg,
|
|
{ "Observer Receiver Deregistration Response", "lbmc.umq_reg_resp.observer_rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_observer_rcv_dereg_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_reg_resp.observer_rcv_dereg.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_reg_resp_observer_rcv_dereg_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_reg_resp.observer_rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack,
|
|
{ "UMQ ACK", "lbmc.umq_ack", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_next_hdr,
|
|
{ "Next Header", "lbmc.umq_ack.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_hdr_len,
|
|
{ "Header Length", "lbmc.umq_ack.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_msgs,
|
|
{ "Msgs", "lbmc.umq_ack.msgs", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_msgs_ignore,
|
|
{ "Ignore", "lbmc.umq_ack.msgs.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_msgs_t_flag,
|
|
{ "T Flag", "lbmc.umq_ack.msgs.t_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_ACK_T_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_msgs_d_flag,
|
|
{ "D Flag", "lbmc.umq_ack.msgs.d_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_ACK_D_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_numids,
|
|
{ "Number of Message IDs", "lbmc.umq_ack.num_ids", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_UMQ_ACK_NUMIDS_MASK, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_ack_type,
|
|
{ "ACK Type", "lbmc.umq_ack.ack_type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_umq_ack_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_msgid,
|
|
{ "Message ID", "lbmc.umq_ack.msgid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_msgid_regid,
|
|
{ "Registration ID", "lbmc.umq_ack.msgid.regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_msgid_stamp,
|
|
{ "Stamp", "lbmc.umq_ack.msgid.stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_stable,
|
|
{ "Stable", "lbmc.umq_ack.stable", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_stable_queue_id,
|
|
{ "Queue ID", "lbmc.umq_ack.stable.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_stable_inst_idx,
|
|
{ "Instance Index", "lbmc.umq_ack.stable.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_stable_reserved,
|
|
{ "Reserved", "lbmc.umq_ack.stable.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_cr,
|
|
{ "Consumption Report", "lbmc.umq_ack.cr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_cr_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_ack.cr.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_cr_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_ack.cr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_cr_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_ack.cr.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_cr_reserved,
|
|
{ "Reserved", "lbmc.umq_ack.cr.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_ulb_cr,
|
|
{ "ULB Consumption Report", "lbmc.umq_ack.ulb_cr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_ulb_cr_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_ack.ulb_cr.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_ulb_cr_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_ack.ulb_cr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_ulb_cr_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_ack.ulb_cr.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ack_ulb_cr_reserved,
|
|
{ "Reserved", "lbmc.umq_ack.ulb_cr.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr,
|
|
{ "UMQ Receiver Control Record", "lbmc.umq_rcr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_next_hdr,
|
|
{ "Next Header", "lbmc.umq_rcr.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_hdr_len,
|
|
{ "Header Length", "lbmc.umq_rcr.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_flags,
|
|
{ "Flags", "lbmc.umq_rcr.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_rcr.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_flags_r_flag,
|
|
{ "Reassign", "lbmc.umq_rcr.flags.r_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_RCR_R_FLAG, "Set if reassignment", HFILL } },
|
|
{ &hf_lbmc_umq_rcr_flags_d_flag,
|
|
{ "Receiver Deregister", "lbmc.umq_rcr.flags.d_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_RCR_D_FLAG, "Set if receiver deregistration", HFILL } },
|
|
{ &hf_lbmc_umq_rcr_flags_s_flag,
|
|
{ "Resubmit", "lbmc.umq_rcr.flags.s_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_RCR_S_FLAG, "Set if resubmission", HFILL } },
|
|
{ &hf_lbmc_umq_rcr_flags_eoi_flag,
|
|
{ "End of Index", "lbmc.umq_rcr.flags.eoi_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_RCR_EOI_FLAG, "Set if end of index", HFILL } },
|
|
{ &hf_lbmc_umq_rcr_flags_boi_flag,
|
|
{ "Beginning of Index", "lbmc.umq_rcr.flags.boi_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_RCR_BOI_FLAG, "Set if beginning of index", HFILL } },
|
|
{ &hf_lbmc_umq_rcr_queue_id,
|
|
{ "Queue ID", "lbmc.umq_rcr.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_rcr.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_msgid_regid,
|
|
{ "Message ID Registration ID", "lbmc.umq_rcr.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_msgid_stamp,
|
|
{ "Message ID Stamp", "lbmc.umq_rcr.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_topic_tsp,
|
|
{ "Topic TSP", "lbmc.umq_rcr.topic_tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_q_tsp,
|
|
{ "Queue TSP", "lbmc.umq_rcr.q_tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_rcr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_rcr.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_num_ras,
|
|
{ "Number of Reassigns", "lbmc.umq_rcr.num_ras", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rcr_queue_ver,
|
|
{ "Queue Version", "lbmc.umq_rcr.queue_ver", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka,
|
|
{ "UMQ Keepalive", "lbmc.umq_ka", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka_next_hdr,
|
|
{ "Next Header", "lbmc.umq_ka.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka_hdr_len,
|
|
{ "Header Length", "lbmc.umq_ka.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka_flags,
|
|
{ "Flags", "lbmc.umq_ka.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_ka.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka_flags_r_flag,
|
|
{ "Response Requested", "lbmc.umq_ka.flags.r", FT_BOOLEAN, L_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS * 8, TFS(&lbmc_umq_r_flag), LBMC_UMQ_KA_R_FLAG, "Set if response requested", HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka_ka_type,
|
|
{ "Keepalive Type", "lbmc.umq_ka.ka_type", FT_UINT8, BASE_HEX_DEC, VALS(lbmc_umq_ka_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka_queue_id,
|
|
{ "Queue ID", "lbmc.umq_ka.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka_regid,
|
|
{ "Registration ID", "lbmc.umq_ka.regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka_inst_idx,
|
|
{ "Instance Index", "lbmc.umq_ka.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_cntl_umq_ka_reserved,
|
|
{ "Reserved", "lbmc.umq_ka.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_src,
|
|
{ "Source", "lbmc.umq_ka.src", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_src_transport_idx,
|
|
{ "Transport Index", "lbmc.umq_ka.src.transport_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_src_topic_idx,
|
|
{ "Topic Index", "lbmc.umq_ka.src.topic_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_rcv,
|
|
{ "Receiver", "lbmc.umq_ka.rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_rcv_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_ka.rcv.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_rcv_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_ka.rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_ulb_rcv,
|
|
{ "ULB Receiver", "lbmc.umq_ka.ulb_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_ulb_rcv_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_ka.ulb_rcv.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_ulb_rcv_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_ka.ulb_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_ulb_rcv_resp,
|
|
{ "ULB Receiver Response", "lbmc.umq_ka.ulb_rcv_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_ulb_rcv_resp_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_ka.ulb_rcv_resp.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_ulb_rcv_resp_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_ka.ulb_rcv_resp.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_ulb_rcv_resp_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_ka.ulb_rcv_resp.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ka_ulb_rcv_resp_reserved,
|
|
{ "Reserved", "lbmc.umq_ka.ulb_rcv_resp.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq,
|
|
{ "UMQ Retransmission Request", "lbmc.umq_rxreq", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_next_hdr,
|
|
{ "Next Header", "lbmc.umq_rxreq.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_hdr_len,
|
|
{ "Header Length", "lbmc.umq_rxreq.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_flags,
|
|
{ "Flags", "lbmc.umq_rxreq.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_rxreq.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_flags_r_flag,
|
|
{ "RegID Present", "lbmc.umq_rxreq.flags.r", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_RXREQ_R_FLAG, "Set if registration ID is present", HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_rxreq_type,
|
|
{ "Retransmission Request Type", "lbmc.umq_rxreq.rxreq_type", FT_UINT8, BASE_HEX_DEC, VALS(lbmc_umq_rxreq_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_regid_resp,
|
|
{ "RegID Response", "lbmc.umq_rxreq.regid_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_regid_resp_regid,
|
|
{ "Registration ID", "lbmc.umq_rxreq.regid_resp.regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_addr_resp,
|
|
{ "Address Response", "lbmc.umq_rxreq.addr_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_addr_resp_ip,
|
|
{ "IP Address", "lbmc.umq_rxreq.addr_resp.ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_addr_resp_port,
|
|
{ "Port", "lbmc.umq_rxreq.addr_resp.port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_addr_resp_reserved,
|
|
{ "Reserved", "lbmc.umq_rxreq.addr_resp.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_mr,
|
|
{ "Message Request", "lbmc.umq_rxreq.mr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_mr_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_rxreq.mr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_mr_msgid_regid,
|
|
{ "Message ID Registration ID", "lbmc.umq_rxreq.mr.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_mr_msgid_stamp,
|
|
{ "Message ID Stamp", "lbmc.umq_rxreq.mr.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr,
|
|
{ "ULB MR", "lbmc.umq_rxreq.ulb_mr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_rxreq.ulb_mr.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_rxreq.ulb_mr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_rxreq.ulb_mr.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_reserved,
|
|
{ "Reserved", "lbmc.umq_rxreq.ulb_mr.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_msgid_regid,
|
|
{ "Message ID Registration ID", "lbmc.umq_rxreq.ulb_mr.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_msgid_stamp,
|
|
{ "Message ID Stamp", "lbmc.umq_rxreq.ulb_mr.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_abort,
|
|
{ "ULB MR Abort", "lbmc.umq_rxreq.ulb_mr_abort", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_abort_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_rxreq.ulb_mr_abort.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_abort_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_rxreq.ulb_mr_abort.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_abort_msgid_regid,
|
|
{ "Message ID Registration ID", "lbmc.umq_rxreq.ulb_mr_abort.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_mr_abort_msgid_stamp,
|
|
{ "Message ID Stamp", "lbmc.umq_rxreq.ulb_mr_abort.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_qrcrr,
|
|
{ "Queue RCR Request", "lbmc.umq_rxreq.qrrcr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_qrcrr_tsp,
|
|
{ "TSP", "lbmc.umq_rxreq.qrrcr.tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_trcrr,
|
|
{ "Topic RCR Request", "lbmc.umq_rxreq.trcrr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_trcrr_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_rxreq.trcrr.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_trcrr_tsp,
|
|
{ "TSP", "lbmc.umq_rxreq.trcrr.tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_trcrr,
|
|
{ "ULB Topic RCR Request", "lbmc.umq_rxreq.ulb_trcrr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_trcrr_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_rxreq.ulb_trcrr.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_trcrr_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_rxreq.ulb_trcrr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_trcrr_tsp,
|
|
{ "TSP", "lbmc.umq_rxreq.ulb_trcrr.tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_trcrr_abort,
|
|
{ "ULB TRCRR Abort", "lbmc.umq_rxreq.ulb_trcrr_abort", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_trcrr_abort_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_rxreq.ulb_trcrr_abort.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_trcrr_abort_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_rxreq.ulb_trcrr_abort.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_rxreq_ulb_trcrr_abort_tsp,
|
|
{ "TSP", "lbmc.umq_rxreq.ulb_trcrr_abort.tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_qmgmt,
|
|
{ "Queue Management", "lbmc.umq_qmgmt", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_qmgmt_next_hdr,
|
|
{ "Next Header", "lbmc.umq_qmgmt.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_qmgmt_hdr_len,
|
|
{ "Header Length", "lbmc.umq_qmgmt.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req,
|
|
{ "UMQ Resubmission Request", "lbmc.umq_resub_req", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req_next_hdr,
|
|
{ "Next Header", "lbmc.umq_resub_req.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req_hdr_len,
|
|
{ "Header Length", "lbmc.umq_resub_req.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req_flags,
|
|
{ "Flags", "lbmc.umq_resub_req.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_resub_req.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req_msgid_regid,
|
|
{ "Message ID Registration ID", "lbmc.umq_resub_req.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req_msgid_stamp,
|
|
{ "Message ID Stamp", "lbmc.umq_resub_req.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_resub_req.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req_resp_ip,
|
|
{ "Response IP Address", "lbmc.umq_resub_req.resp_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req_resp_port,
|
|
{ "Response Port", "lbmc.umq_resub_req.resp_port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_req_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_resub_req.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp,
|
|
{ "UMQ Resubmission Response", "lbmc.umq_resub_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_next_hdr,
|
|
{ "Next Header", "lbmc.umq_resub_resp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_hdr_len,
|
|
{ "Header Length", "lbmc.umq_resub_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_flags,
|
|
{ "Flags", "lbmc.umq_resub_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_resub_resp.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_code,
|
|
{ "Code", "lbmc.umq_resub_resp.code", FT_UINT8, BASE_HEX_DEC, VALS(lbmc_umq_resub_response_code), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_msgid_regid,
|
|
{ "Message ID Registration ID", "lbmc.umq_resub_resp.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_msgid_stamp,
|
|
{ "Message ID Stamp", "lbmc.umq_resub_resp.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_resub_resp.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_reserved,
|
|
{ "Reserved", "lbmc.umq_resub_resp.resp_ip", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_resub_resp_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_resub_resp.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_interest,
|
|
{ "Topic Interest", "lbmc.topic_interest", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_interest_next_hdr,
|
|
{ "Next Header", "lbmc.topic_interest.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_interest_hdr_len,
|
|
{ "Header Length", "lbmc.topic_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_interest_flags,
|
|
{ "Flags", "lbmc.topic_interest.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_interest_flags_ignore,
|
|
{ "Ignore", "lbmc.topic_interest.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_interest_flags_cancel,
|
|
{ "Cancel", "lbmc.topic_interest.flags.cancel", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_TOPIC_INTEREST_CANCEL_FLAG, "Set if cancelling interest", HFILL } },
|
|
{ &hf_lbmc_topic_interest_flags_refresh,
|
|
{ "Refresh", "lbmc.topic_interest.flags.refresh", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_TOPIC_INTEREST_REFRESH_FLAG, "Set if refreshing interest", HFILL } },
|
|
{ &hf_lbmc_topic_interest_domain_id,
|
|
{ "Domain ID", "lbmc.topic_interest.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_interest,
|
|
{ "Pattern Interest", "lbmc.pattern_interest", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_interest_next_hdr,
|
|
{ "Next Header", "lbmc.pattern_interest.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_interest_hdr_len,
|
|
{ "Header Length", "lbmc.pattern_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_interest_flags,
|
|
{ "Flags", "lbmc.pattern_interest.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_interest_flags_ignore,
|
|
{ "Ignore", "lbmc.pattern_interest.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_interest_flags_cancel,
|
|
{ "Cancel", "lbmc.pattern_interest.flags.cancel", FT_BOOLEAN, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_PATTERN_INTEREST_CANCEL_FLAG, "Set if cancelling interest", HFILL } },
|
|
{ &hf_lbmc_pattern_interest_flags_refresh,
|
|
{ "Refresh", "lbmc.pattern_interest.flags.refresh", FT_BOOLEAN, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_PATTERN_INTEREST_REFRESH_FLAG, "Set if refreshing interest", HFILL } },
|
|
{ &hf_lbmc_pattern_interest_type,
|
|
{ "Type", "lbmc.pattern_interest.type", FT_UINT8, BASE_DEC_HEX, VALS(lbm_wildcard_pattern_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_interest_domain_id,
|
|
{ "Domain ID", "lbmc.pattern_interest.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_interest_index,
|
|
{ "Index", "lbmc.pattern_interest.index", FT_INT64, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement,
|
|
{ "Advertisement", "lbmc.advertisement", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_next_hdr,
|
|
{ "Next Header", "lbmc.advertisement.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_hdr_len,
|
|
{ "Header Length", "lbmc.advertisement.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_flags,
|
|
{ "Flags", "lbmc.advertisement.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_flags_ignore,
|
|
{ "Ignore", "lbmc.advertisement.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_flags_eos,
|
|
{ "EOS", "lbmc.advertisement.flags.eos", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_ADVERTISEMENT_EOS_FLAG, "Set if source EOS is being advertised", HFILL } },
|
|
{ &hf_lbmc_advertisement_flags_pattern,
|
|
{ "Pattern", "lbmc.advertisement.flags.pattern", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_ADVERTISEMENT_PATTERN_FLAG, "Set if the topic being advertised matched a pattern", HFILL } },
|
|
{ &hf_lbmc_advertisement_flags_change,
|
|
{ "Change", "lbmc.advertisement.flags.change", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_ADVERTISEMENT_CHANGE_FLAG, "Set if the advertisement indicates a change", HFILL } },
|
|
{ &hf_lbmc_advertisement_flags_ctxinst,
|
|
{ "Context Instance", "lbmc.advertisement.flags.ctxinst", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_ADVERTISEMENT_CTXINST_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_hop_count,
|
|
{ "Hop Count", "lbmc.advertisement.hop_count", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_ad_flags,
|
|
{ "Ad Flags", "lbmc.advertisement.ad_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_ad_flags_lj,
|
|
{ "Late Join", "lbmc.advertisement.ad_flags.lj", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS * 8, TFS(&tfs_set_notset), LBMC_ADVERTISEMENT_AD_LJ_FLAG, "Set if source provides late join", HFILL } },
|
|
{ &hf_lbmc_advertisement_ad_flags_ume,
|
|
{ "UME", "lbmc.advertisement.ad_flags.ume", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS * 8, TFS(&tfs_set_notset), LBMC_ADVERTISEMENT_AD_UME_FLAG, "Set if a UME source", HFILL } },
|
|
{ &hf_lbmc_advertisement_ad_flags_acktosrc,
|
|
{ "ACK To Source", "lbmc.advertisement.ad_flags.acktosrc", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS * 8, TFS(&tfs_set_notset), LBMC_ADVERTISEMENT_AD_ACKTOSRC_FLAG, "Set if ACKs are sent to source", HFILL } },
|
|
{ &hf_lbmc_advertisement_ad_flags_queue,
|
|
{ "Queue", "lbmc.advertisement.ad_flags.queue", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS * 8, TFS(&tfs_set_notset), LBMC_ADVERTISEMENT_AD_QUEUE_FLAG, "Set if a queue", HFILL } },
|
|
{ &hf_lbmc_advertisement_ad_flags_ulb,
|
|
{ "ULB", "lbmc.advertisement.ad_flags.ulb", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS * 8, TFS(&tfs_set_notset), LBMC_ADVERTISEMENT_AD_ULB_FLAG, "Set if a ULB source", HFILL } },
|
|
{ &hf_lbmc_advertisement_cost,
|
|
{ "Cost", "lbmc.advertisement.cost", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_transport_idx,
|
|
{ "Transport Index", "lbmc.advertisement.transport_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_topic_idx,
|
|
{ "Topic Index", "lbmc.advertisement.topic_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_low_seqno,
|
|
{ "Low Sequence Number", "lbmc.advertisement.low_seqno", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_high_seqno,
|
|
{ "High Sequence Number", "lbmc.advertisement.high_seqno", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_domain_id,
|
|
{ "Domain ID", "lbmc.advertisement.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_pat_idx,
|
|
{ "Pattern Index", "lbmc.advertisement.pat_idx", FT_INT64, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_advertisement_ctxinst,
|
|
{ "Context Instance", "lbmc.advertisement.ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storename,
|
|
{ "Store Name", "lbmc.ume_storename", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storename_next_hdr,
|
|
{ "Next Header", "lbmc.ume_storename.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storename_hdr_len,
|
|
{ "Header Length", "lbmc.ume_storename.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storename_flags,
|
|
{ "Flags", "lbmc.ume_storename.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storename_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_storename.flags.ignore", FT_BOOLEAN, L_LBMC_UME_STORENAME_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_storename_store,
|
|
{ "Store Name", "lbmc.ume_storename.store", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr,
|
|
{ "UMQ ULB Receiver Control Record", "lbmc.umq_ulb_rcr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_next_hdr,
|
|
{ "Next Header", "lbmc.umq_ulb_rcr.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_hdr_len,
|
|
{ "Header Length", "lbmc.umq_ulb_rcr.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_flags,
|
|
{ "Flags", "lbmc.umq_ulb_rcr.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_ulb_rcr.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_flags_r_flag,
|
|
{ "Reassign", "lbmc.umq_ulb_rcr.flags.r_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_ULB_RCR_R_FLAG, "Reassign", HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_flags_d_flag,
|
|
{ "Receiver Deregister", "lbmc.umq_ulb_rcr.flags.d_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_ULB_RCR_D_FLAG, "Receiver deregister", HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_flags_eoi_flag,
|
|
{ "End of Index", "lbmc.umq_ulb_rcr.flags.eoi_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_ULB_RCR_EOI_FLAG, "End of index", HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_flags_boi_flag,
|
|
{ "Beginning of Index", "lbmc.umq_ulb_rcr.flags.boi_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_ULB_RCR_BOI_FLAG, "Beginning of index", HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_queue_id,
|
|
{ "Queue ID", "lbmc.umq_ulb_rcr.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_ulb_src_id,
|
|
{ "ULB Source ID", "lbmc.umq_ulb_rcr.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_msgid_regid,
|
|
{ "Message ID Registration ID", "lbmc.umq_ulb_rcr.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_msgid_stamp,
|
|
{ "Message ID Stamp", "lbmc.umq_ulb_rcr.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_topic_tsp,
|
|
{ "Topic TSP", "lbmc.umq_ulb_rcr.topic_tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_ulb_rcr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_ulb_rcr.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_ulb_rcr_num_ras,
|
|
{ "Number of RAs", "lbmc.umq_ulb_rcr.num_ras", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_lf,
|
|
{ "UMQ Load Factor", "lbmc.umq_lf", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_lf_next_hdr,
|
|
{ "Next Header", "lbmc.umq_lf.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_lf_hdr_len,
|
|
{ "Header Length", "lbmc.umq_lf.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_lf_flags,
|
|
{ "Flags", "lbmc.umq_lf.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_lf_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_lf.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_lf_type,
|
|
{ "Type", "lbmc.umq_lf.type", FT_UINT8, BASE_HEX_DEC, VALS(lbmc_umq_lf_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_lf_num_srcs,
|
|
{ "Number of Sources", "lbmc.umq_lf.resp_ip", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_lf_lf,
|
|
{ "Load Factor", "lbmc.umq_lf.lf", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo,
|
|
{ "Context Information", "lbmc.ctxinfo", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_next_hdr,
|
|
{ "Next Header", "lbmc.ctxinfo.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_hdr_len,
|
|
{ "Header Length", "lbmc.ctxinfo.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_flags,
|
|
{ "Flags", "lbmc.ctxinfo.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_flags_ignore,
|
|
{ "Ignore", "lbmc.ctxinfo.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_flags_query,
|
|
{ "Query", "lbmc.ctxinfo.flags.query", FT_BOOLEAN, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CTXINFO_QUERY_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_flags_addr,
|
|
{ "Address", "lbmc.ctxinfo.flags.addr", FT_BOOLEAN, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CTXINFO_ADDR_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_flags_ctxinst,
|
|
{ "Context Instance", "lbmc.ctxinfo.flags.ctxinst", FT_BOOLEAN, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CTXINFO_CTXINST_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_flags_name,
|
|
{ "Name", "lbmc.ctxinfo.flags.name", FT_BOOLEAN, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CTXINFO_NAME_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_flags_tnwgsrc,
|
|
{ "Gateway Source", "lbmc.ctxinfo.flags.tnwgsrc", FT_BOOLEAN, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CTXINFO_TNWGSRC_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_flags_tnwgrcv,
|
|
{ "Gateway Receive", "lbmc.ctxinfo.flags.tnwgrcv", FT_BOOLEAN, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CTXINFO_TNWGRCV_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_flags_proxy,
|
|
{ "Proxy", "lbmc.ctxinfo.flags.proxy", FT_BOOLEAN, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CTXINFO_PROXY_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_reserved,
|
|
{ "Reserved", "lbmc.ctxinfo.reserved", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_hop_count,
|
|
{ "Hop Count", "lbmc.ctxinfo.hop_count", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_port,
|
|
{ "Port", "lbmc.ctxinfo.port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_addr,
|
|
{ "Address", "lbmc.ctxinfo.addr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_domain_id,
|
|
{ "Domain ID", "lbmc.ctxinfo.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_ctxinst,
|
|
{ "Context Instance", "lbmc.ctxinfo.ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ctxinfo_name,
|
|
{ "Name", "lbmc.ctxinfo.name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser,
|
|
{ "UME Proxy Source Election Record", "lbmc.ume_pser", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_next_hdr,
|
|
{ "Next Header", "lbmc.ume_pser.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_hdr_len,
|
|
{ "Header Length", "lbmc.ume_pser.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_flags,
|
|
{ "Flags", "lbmc.ume_pser.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_pser.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_flags_source_ctxinst,
|
|
{ "Source Context Instance", "lbmc.ume_pser.flags.source_ctxinst", FT_BOOLEAN, L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_PSER_SOURCE_CTXINST_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_flags_store_ctxinst,
|
|
{ "Store Context Instance", "lbmc.ume_pser.flags.store_ctxinst", FT_BOOLEAN, L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_PSER_STORE_CTXINST_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_flags_reelect,
|
|
{ "Reelection", "lbmc.ume_pser.flags.reelect", FT_BOOLEAN, L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_PSER_REELECT_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_source_ip,
|
|
{ "Source Address", "lbmc.ume_pser.source_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_store_ip,
|
|
{ "Store Address", "lbmc.ume_pser.store_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_transport_idx,
|
|
{ "Transport Index", "lbmc.ume_pser.transport_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_topic_idx,
|
|
{ "Topic Index", "lbmc.ume_pser.topic_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_source_port,
|
|
{ "Source Port", "lbmc.ume_pser.source_port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_store_port,
|
|
{ "Store Port", "lbmc.ume_pser.store_port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_source_ctxinst,
|
|
{ "Source Context Instance", "lbmc.ume_pser.source_ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_pser_store_ctxinst,
|
|
{ "Store Context Instance", "lbmc.ume_pser.store_ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_domain,
|
|
{ "Domain", "lbmc.domain", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_domain_next_hdr,
|
|
{ "Next Header", "lbmc.domain.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_domain_hdr_len,
|
|
{ "Header Length", "lbmc.domain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_domain_flags,
|
|
{ "Flags", "lbmc.domain.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_domain_flags_ignore,
|
|
{ "Ignore", "lbmc.domain.flags.ignore", FT_BOOLEAN, L_LBMC_DOMAIN_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_domain_flags_active,
|
|
{ "Active", "lbmc.domain.flags.active", FT_BOOLEAN, L_LBMC_DOMAIN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_DOMAIN_ACTIVE_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_domain_domain,
|
|
{ "Domain ID", "lbmc.domain.domain", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities,
|
|
{ "TNWG Capabilities", "lbmc.tnwg_capabilities", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_next_hdr,
|
|
{ "Next Header", "lbmc.tnwg_capabilities.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_hdr_len,
|
|
{ "Header Length", "lbmc.tnwg_capabilities.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_flags,
|
|
{ "Flags", "lbmc.tnwg_capabilities.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_flags_ignore,
|
|
{ "Ignore", "lbmc.tnwg_capabilities.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_flags_version,
|
|
{ "Version", "lbmc.tnwg_capabilities.flags.version", FT_UINT16, BASE_DEC, NULL, LBMC_CNTL_TNWG_CAPABILITIES_VERSION_MASK, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_capabilities1,
|
|
{ "Capabilities1", "lbmc.tnwg_capabilities.capabilities1", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_capabilities1_ume,
|
|
{ "UME", "lbmc.tnwg_capabilities.capabilities1.ume", FT_BOOLEAN, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1 * 8, TFS(&tfs_set_notset), LBMC_CNTL_TNWG_CAPABILITIES1_UME_FLAG, "Set if UME is supported", HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_capabilities1_umq,
|
|
{ "UMQ", "lbmc.tnwg_capabilities.capabilities1.umq", FT_BOOLEAN, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1 * 8, TFS(&tfs_set_notset), LBMC_CNTL_TNWG_CAPABILITIES1_UMQ_FLAG, "Set if UMQ is supported", HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_capabilities2,
|
|
{ "Capabilities2", "lbmc.tnwg_capabilities.capabilities2", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_capabilities3,
|
|
{ "Capabilities3", "lbmc.tnwg_capabilities.capabilities3", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_capabilities3_pcre,
|
|
{ "PCRE", "lbmc.tnwg_capabilities.capabilities3.pcre", FT_BOOLEAN, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3 * 8, TFS(&tfs_set_notset), LBMC_CNTL_TNWG_CAPABILITIES3_PCRE_FLAG, "Set if PCRE patterns are supported", HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_capabilities3_regex,
|
|
{ "Regex", "lbmc.tnwg_capabilities.capabilities3.regex", FT_BOOLEAN, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3 * 8, TFS(&tfs_set_notset), LBMC_CNTL_TNWG_CAPABILITIES3_REGEX_FLAG, "Set if Regex patters are supported", HFILL } },
|
|
{ &hf_lbmc_tnwg_capabilities_capabilities4,
|
|
{ "Capabilities4", "lbmc.tnwg_capabilities.capabilities4", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_patidx,
|
|
{ "Pattern Index", "lbmc.patidx", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_patidx_next_hdr,
|
|
{ "Next Header", "lbmc.patidx.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_patidx_hdr_len,
|
|
{ "Header Length", "lbmc.patidx.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_patidx_flags,
|
|
{ "Flags", "lbmc.patidx.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_patidx_flags_ignore,
|
|
{ "Ignore", "lbmc.patidx.flags.ignore", FT_BOOLEAN, L_LBMC_PATIDX_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_patidx_patidx,
|
|
{ "Source Index", "lbmc.patidx.patidx", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_client_lifetime,
|
|
{ "UME Client Lifetime", "lbmc.ume_client_lifetime", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_client_lifetime_next_hdr,
|
|
{ "Next Header", "lbmc.ume_client_lifetime.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_client_lifetime_hdr_len,
|
|
{ "Header Length", "lbmc.ume_client_lifetime.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_client_lifetime_flags,
|
|
{ "Flags", "lbmc.ume_client_lifetime.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_client_lifetime_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_client_lifetime.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_client_lifetime_activity_tmo,
|
|
{ "Activity Timeout", "lbmc.ume_client_lifetime.activity_tmo", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_client_lifetime_lifetime,
|
|
{ "Lifetime", "lbmc.ume_client_lifetime.lifetime", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_client_lifetime_ttl,
|
|
{ "Time to Live", "lbmc.ume_client_lifetime.ttl", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_sid,
|
|
{ "UME Session ID", "lbmc.ume_sid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_sid_next_hdr,
|
|
{ "Next Header", "lbmc.ume_sid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_sid_hdr_len,
|
|
{ "Header Length", "lbmc.ume_sid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_sid_flags,
|
|
{ "Flags", "lbmc.ume_sid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_sid_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_sid.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_SID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_sid_sid,
|
|
{ "Session ID", "lbmc.ume_sid.sid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd,
|
|
{ "UMQ Index Command", "lbmc.umq_idx_cmd", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_next_hdr,
|
|
{ "Next Header", "lbmc.umq_idx_cmd.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_hdr_len,
|
|
{ "Header Length", "lbmc.umq_idx_cmd.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_flags,
|
|
{ "Flags", "lbmc.umq_idx_cmd.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_idx_cmd.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_cmd_type,
|
|
{ "Command Type", "lbmc.umq_idx_cmd.cmd_type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_umq_index_cmd_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_queue_id,
|
|
{ "Queue ID", "lbmc.umq_idx_cmd.queue_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_cmd_id,
|
|
{ "Command ID", "lbmc.umq_idx_cmd.cmd_id", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_inst_idx,
|
|
{ "Instance Index", "lbmc.umq_idx_cmd.inst_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_regid,
|
|
{ "RegID", "lbmc.umq_idx_cmd.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_stop_assign,
|
|
{ "Stop Assign", "lbmc.umq_idx_cmd.stop_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_stop_assign_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_idx_cmd.stop_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_stop_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd.stop_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_start_assign,
|
|
{ "Start Assign", "lbmc.umq_idx_cmd.start_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_start_assign_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_idx_cmd.start_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_start_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd.start_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_release_assign,
|
|
{ "Release Assign", "lbmc.umq_idx_cmd.release_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_release_assign_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_idx_cmd.release_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_release_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd.release_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_release_assign_flags,
|
|
{ "Flags", "lbmc.umq_idx_cmd.release_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_release_assign_flags_numeric,
|
|
{ "Numeric", "lbmc.umq_idx_cmd.release_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_release_assign_index_len,
|
|
{ "Index Length", "lbmc.umq_idx_cmd.release_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_release_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd.release_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_release_assign_numeric_index,
|
|
{ "Index", "lbmc.umq_idx_cmd.release_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_release_assign_string_index,
|
|
{ "Index", "lbmc.umq_idx_cmd.release_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_stop_assign,
|
|
{ "ULB Stop Assign", "lbmc.umq_idx_cmd.ulb_stop_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_stop_assign_src_id,
|
|
{ "Source ID", "lbmc.umq_idx_cmd.ulb_stop_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_stop_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd.ulb_stop_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_stop_assign_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_idx_cmd.ulb_stop_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_stop_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd.ulb_stop_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_start_assign,
|
|
{ "ULB Start Assign", "lbmc.umq_idx_cmd.ulb_start_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_start_assign_src_id,
|
|
{ "Source ID", "lbmc.umq_idx_cmd.ulb_start_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_start_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd.ulb_start_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_start_assign_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_idx_cmd.ulb_start_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_start_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd.ulb_start_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_release_assign,
|
|
{ "ULB Release Assign", "lbmc.umq_idx_cmd.ulb_release_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_release_assign_src_id,
|
|
{ "Source ID", "lbmc.umq_idx_cmd.ulb_release_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_release_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd.ulb_release_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_release_assign_flags,
|
|
{ "Flags", "lbmc.umq_idx_cmd.ulb_release_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_release_assign_flags_numeric,
|
|
{ "Numeric", "lbmc.umq_idx_cmd.ulb_release_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_release_assign_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_idx_cmd.ulb_release_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_release_assign_index_len,
|
|
{ "Index Length", "lbmc.umq_idx_cmd.ulb_release_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_release_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd.ulb_release_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_release_assign_numeric_index,
|
|
{ "Index", "lbmc.umq_idx_cmd.ulb_release_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_release_assign_string_index,
|
|
{ "Index", "lbmc.umq_idx_cmd.ulb_release_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_reserve_assign,
|
|
{ "Reserve Assign", "lbmc.umq_idx_cmd.reserve_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_reserve_assign_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_idx_cmd.reserve_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_reserve_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd.reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_reserve_assign_flags,
|
|
{ "Flags", "lbmc.umq_idx_cmd.reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_reserve_assign_flags_numeric,
|
|
{ "Numeric", "lbmc.umq_idx_cmd.reserve_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_reserve_assign_index_len,
|
|
{ "Index Length", "lbmc.umq_idx_cmd.reserve_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_reserve_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd.reserve_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_reserve_assign_numeric_index,
|
|
{ "Index", "lbmc.umq_idx_cmd.reserve_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_reserve_assign_string_index,
|
|
{ "Index", "lbmc.umq_idx_cmd.reserve_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_reserve_assign,
|
|
{ "ULB Reserve Assign", "lbmc.umq_idx_cmd.ulb_reserve_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_src_id,
|
|
{ "Source ID", "lbmc.umq_idx_cmd.ulb_reserve_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd.ulb_reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags,
|
|
{ "Flags", "lbmc.umq_idx_cmd.ulb_reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags_numeric,
|
|
{ "Numeric", "lbmc.umq_idx_cmd.ulb_reserve_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_idx_cmd.ulb_reserve_assign.index_len", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_index_len,
|
|
{ "Index Length", "lbmc.umq_idx_cmd.ulb_reserve_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd.ulb_reserve_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_numeric_index,
|
|
{ "Index", "lbmc.umq_idx_cmd.ulb_reserve_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_string_index,
|
|
{ "Index", "lbmc.umq_idx_cmd.ulb_reserve_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp,
|
|
{ "UMQ Index Command Response", "lbmc.umq_idx_cmd_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_next_hdr,
|
|
{ "Next Header", "lbmc.umq_idx_cmd_resp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_hdr_len,
|
|
{ "Header Length", "lbmc.umq_idx_cmd_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_flags,
|
|
{ "Flags", "lbmc.umq_idx_cmd_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_idx_cmd_resp.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_flags_ulb,
|
|
{ "ULB", "lbmc.umq_idx_cmd_resp.flags.ulb", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_IDX_CMD_RESP_ERR_L_FLAG, "Set if ULB", HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_resp_type,
|
|
{ "Response Type", "lbmc.umq_idx_cmd_resp.resp_type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_umq_index_cmd_response_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_queue_id,
|
|
{ "Queue ID", "lbmc.umq_idx_cmd_resp.queue_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_cmd_id,
|
|
{ "Command ID", "lbmc.umq_idx_cmd_resp.cmd_id", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_inst_idx,
|
|
{ "Instance Index", "lbmc.umq_idx_cmd_resp.inst_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_regid,
|
|
{ "RegID", "lbmc.umq_idx_cmd_resp.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_err,
|
|
{ "Error", "lbmc.umq_idx_cmd_resp.err", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_err_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd_resp.err.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_err_code,
|
|
{ "Code", "lbmc.umq_idx_cmd_resp.err.code", FT_UINT16, BASE_DEC_HEX, VALS(lbmc_umq_idx_cmd_response_error_code), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_err_error_string,
|
|
{ "Error String", "lbmc.umq_idx_cmd_resp.err.error_string", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_stop_assign,
|
|
{ "Stop Assign", "lbmc.umq_idx_cmd_resp.stop_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_stop_assign_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_idx_cmd_resp.stop_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_stop_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd_resp.stop_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_start_assign,
|
|
{ "Start Assign", "lbmc.umq_idx_cmd_resp.start_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_start_assign_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_idx_cmd_resp.start_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_start_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd_resp.start_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_start_assign_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_idx_cmd_resp.start_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_start_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd_resp.start_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_release_assign,
|
|
{ "Release Assign", "lbmc.umq_idx_cmd_resp.release_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_release_assign_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_idx_cmd_resp.release_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_release_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd_resp.release_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_release_assign_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_idx_cmd_resp.release_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_release_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd_resp.release_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign,
|
|
{ "ULB Stop Assign", "lbmc.umq_idx_cmd_resp.ulb_stop_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_src_id,
|
|
{ "Source ID", "lbmc.umq_idx_cmd_resp.ulb_stop_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd_resp.ulb_stop_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_idx_cmd_resp.ulb_stop_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd_resp.ulb_stop_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_start_assign,
|
|
{ "ULB Start Assign", "lbmc.umq_idx_cmd_resp.ulb_start_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_src_id,
|
|
{ "Source ID", "lbmc.umq_idx_cmd_resp.ulb_start_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd_resp.ulb_start_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_idx_cmd_resp.ulb_start_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd_resp.ulb_start_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_release_assign,
|
|
{ "ULB Release Assign", "lbmc.umq_idx_cmd_resp.ulb_release_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_src_id,
|
|
{ "Source ID", "lbmc.umq_idx_cmd_resp.ulb_release_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd_resp.ulb_release_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_appset_idx,
|
|
{ "Application Set Index", "lbmc.umq_idx_cmd_resp.ulb_release_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd_resp.ulb_release_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_reserve_assign,
|
|
{ "Reserve Assign", "lbmc.umq_idx_cmd_resp.reserve_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_reserve_assign_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_idx_cmd_resp.reserve_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_reserve_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd_resp.reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags,
|
|
{ "Flags", "lbmc.umq_idx_cmd_resp.reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags_numeric,
|
|
{ "Numeric", "lbmc.umq_idx_cmd_resp.reserve_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_reserve_assign_appset_idx,
|
|
{ "AppSet Index", "lbmc.umq_idx_cmd_resp.reserve_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_reserve_assign_index_len,
|
|
{ "Index Length", "lbmc.umq_idx_cmd_resp.reserve_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_reserve_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd_resp.reserve_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_reserve_assign_numeric_index,
|
|
{ "Index", "lbmc.umq_idx_cmd_resp.reserve_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_reserve_assign_string_index,
|
|
{ "Index", "lbmc.umq_idx_cmd_resp.reserve_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign,
|
|
{ "ULB Reserve Assign", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_src_id,
|
|
{ "Source ID", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags,
|
|
{ "Flags", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags_numeric,
|
|
{ "Numeric", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_appset_idx,
|
|
{ "AppSet Index", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_index_len,
|
|
{ "Index Length", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_reserved,
|
|
{ "Reserved", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_numeric_index,
|
|
{ "Index", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_string_index,
|
|
{ "Index", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_odomain,
|
|
{ "Originating Domain", "lbmc.odomain", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_odomain_next_hdr,
|
|
{ "Next Header", "lbmc.odomain.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_odomain_hdr_len,
|
|
{ "Header Length", "lbmc.odomain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_odomain_flags,
|
|
{ "Flags", "lbmc.odomain.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_odomain_flags_ignore,
|
|
{ "Ignore", "lbmc.odomain.flags.ignore", FT_BOOLEAN, L_LBMC_ODOMAIN_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_odomain_domain,
|
|
{ "Domain ID", "lbmc.odomain.domain", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_stream,
|
|
{ "Stream", "lbmc.stream", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_stream_next_hdr,
|
|
{ "Next Header", "lbmc.stream.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_stream_hdr_len,
|
|
{ "Header Length", "lbmc.stream.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_stream_flags,
|
|
{ "Flags", "lbmc.stream.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_stream_flags_ignore,
|
|
{ "Ignore", "lbmc.stream.flags.ignore", FT_BOOLEAN, L_LBMC_STREAM_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_stream_stream_id,
|
|
{ "Stream ID", "lbmc.stream.stream_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_stream_sqn,
|
|
{ "Sequence Number", "lbmc.stream.sqn", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_stream_ctxinst,
|
|
{ "Context Instance", "lbmc.stream.ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_md_interest,
|
|
{ "Topic Multi-Domain Interest", "lbmc.topic_md_interest", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_md_interest_next_hdr,
|
|
{ "Next Header", "lbmc.topic_md_interest.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_md_interest_hdr_len,
|
|
{ "Header Length", "lbmc.topic_md_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_md_interest_flags,
|
|
{ "Flags", "lbmc.topic_md_interest.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_md_interest_flags_ignore,
|
|
{ "Ignore", "lbmc.topic_md_interest.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_md_interest_flags_cancel,
|
|
{ "Cancel", "lbmc.topic_md_interest.flags.cancel", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_TOPIC_INTEREST_CANCEL_FLAG, "Set if cancelling interest", HFILL } },
|
|
{ &hf_lbmc_topic_md_interest_flags_refresh,
|
|
{ "Refresh", "lbmc.topic_md_interest.flags.refresh", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_TOPIC_INTEREST_REFRESH_FLAG, "Set if refreshing interest", HFILL } },
|
|
{ &hf_lbmc_topic_md_interest_domain_count,
|
|
{ "Domain Count", "lbmc.topic_md_interest.domain_count", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_md_interest_res1,
|
|
{ "Reserved", "lbmc.topic_md_interest.res1", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_md_interest_domain_id,
|
|
{ "Domain ID", "lbmc.topic_md_interest.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest,
|
|
{ "Pattern Multi-Domain Interest", "lbmc.pattern_md_interest", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_next_hdr,
|
|
{ "Next Header", "lbmc.pattern_md_interest.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_hdr_len,
|
|
{ "Header Length", "lbmc.pattern_md_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_flags,
|
|
{ "Flags", "lbmc.pattern_md_interest.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_flags_ignore,
|
|
{ "Ignore", "lbmc.pattern_md_interest.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_flags_cancel,
|
|
{ "Cancel", "lbmc.pattern_md_interest.flags.cancel", FT_BOOLEAN, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_PATTERN_INTEREST_CANCEL_FLAG, "Set if cancelling interest", HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_flags_refresh,
|
|
{ "Refresh", "lbmc.pattern_md_interest.flags.refresh", FT_BOOLEAN, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_PATTERN_INTEREST_REFRESH_FLAG, "Set if refreshing interest", HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_type,
|
|
{ "Type", "lbmc.pattern_md_interest.type", FT_UINT8, BASE_DEC_HEX, VALS(lbm_wildcard_pattern_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_domain_count,
|
|
{ "Domain Count", "lbmc.pattern_md_interest.domain_count", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_res1,
|
|
{ "Reserved", "lbmc.pattern_md_interest.res1", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_index,
|
|
{ "Index", "lbmc.pattern_md_interest.index", FT_INT64, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_pattern_md_interest_domain_id,
|
|
{ "Domain ID", "lbmc.pattern_md_interest.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req,
|
|
{ "Late Join Information Request", "lbmc.lji_req", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_next_hdr,
|
|
{ "Next Header", "lbmc.lji_req.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_hdr_len,
|
|
{ "Header Length", "lbmc.lji_req.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_flags,
|
|
{ "Flags", "lbmc.lji_req.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_flags_ignore,
|
|
{ "Ignore", "lbmc.lji_req.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_flags_l_flag,
|
|
{ "Low SQN Present", "lbmc.lji_req.flags.l_flag", FT_BOOLEAN, L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_LJI_REQ_L_FLAG, "Set if low SQN present", HFILL } },
|
|
{ &hf_lbmc_lji_req_flags_m_flag,
|
|
{ "RX Request Max Present", "lbmc.lji_req.flags.m_flag", FT_BOOLEAN, L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_LJI_REQ_M_FLAG, "Set if RX request max present", HFILL } },
|
|
{ &hf_lbmc_lji_req_flags_o_flag,
|
|
{ "RX Request Outstanding Max Present", "lbmc.lji_req.flags.o_flag", FT_BOOLEAN, L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_LJI_REQ_O_FLAG, "Set if outstanding RX request max present", HFILL } },
|
|
{ &hf_lbmc_lji_req_request_idx,
|
|
{ "Request Index", "lbmc.lji_req.request_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_transport_idx,
|
|
{ "Transport Index", "lbmc.lji_req.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_topic_idx,
|
|
{ "Topic Index", "lbmc.lji_req.topic_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_req_ip,
|
|
{ "Request IP", "lbmc.lji_req.req_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_req_port,
|
|
{ "Request Port", "lbmc.lji_req.req_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_res,
|
|
{ "Reserved", "lbmc.lji_req.res", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_tx_low_sqn,
|
|
{ "Transmitted Low SQN", "lbmc.lji_req.tx_low_sqn", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_rx_req_max,
|
|
{ "Maximum RX Requests", "lbmc.lji_req.rx_req_max", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_lji_req_rx_req_outstanding_max,
|
|
{ "Maximum Outstanding RX Requests", "lbmc.lji_req.rx_req_outstanding_max", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka,
|
|
{ "TNWG Keepalive", "lbmc.tnwg_ka", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_next_hdr,
|
|
{ "Next Header", "lbmc.tnwg_ka.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_hdr_len,
|
|
{ "Header Length", "lbmc.tnwg_ka.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_flags,
|
|
{ "Flags", "lbmc.tnwg_ka.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_flags_ignore,
|
|
{ "Ignore", "lbmc.tnwg_ka.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_flags_q_flag,
|
|
{ "Query", "lbmc.tnwg_ka.flags.q_flag", FT_BOOLEAN, L_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CNTL_TNWG_KA_Q_FLAG, "Set if a keepalive query", HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_flags_r_flag,
|
|
{ "Response", "lbmc.tnwg_ka.flags.r_flag", FT_BOOLEAN, L_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_CNTL_TNWG_KA_R_FLAG, "Set if a keepalive response", HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_index,
|
|
{ "Index", "lbmc.tnwg_ka.index", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_ts_seconds,
|
|
{ "TS Seconds", "lbmc.tnwg_ka.ts_seconds", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_ts_microseconds,
|
|
{ "TS Microseconds", "lbmc.tnwg_ka.ts_microseconds", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_reserved_1,
|
|
{ "Reserved 1", "lbmc.tnwg_ka.reserved_1", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_reserved_2,
|
|
{ "Reserved 2", "lbmc.tnwg_ka.reserved_2", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_reserved_3,
|
|
{ "Reserved 3", "lbmc.tnwg_ka.reserved_3", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_reserved_4,
|
|
{ "Reserved 4", "lbmc.tnwg_ka.reserved_4", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_reserved_5,
|
|
{ "Reserved 5", "lbmc.tnwg_ka.reserved_5", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tnwg_ka_reserved_6,
|
|
{ "Reserved 6", "lbmc.tnwg_ka.reserved_6", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_receiver_keepalive,
|
|
{ "UME Receiver Keepalive", "lbmc.ume_receiver_keepalive", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_receiver_keepalive_next_hdr,
|
|
{ "Next Header", "lbmc.ume_receiver_keepalive.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_receiver_keepalive_hdr_len,
|
|
{ "Header Length", "lbmc.ume_receiver_keepalive.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_receiver_keepalive_flags,
|
|
{ "Flags", "lbmc.ume_receiver_keepalive.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_receiver_keepalive_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_receiver_keepalive.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_receiver_keepalive_rcv_regid,
|
|
{ "Receiver RegID", "lbmc.ume_receiver_keepalive.rcv_regid", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_receiver_keepalive_session_id,
|
|
{ "Session ID", "lbmc.ume_receiver_keepalive.session_id", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_receiver_keepalive_ctxinst,
|
|
{ "Context Instance", "lbmc.ume_receiver_keepalive.ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd,
|
|
{ "UMQ Command", "lbmc.umq_cmd", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_next_hdr,
|
|
{ "Next Header", "lbmc.umq_cmd.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_hdr_len,
|
|
{ "Header Length", "lbmc.umq_cmd.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_flags,
|
|
{ "Flags", "lbmc.umq_cmd.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_cmd.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_cmd_type,
|
|
{ "Command", "lbmc.umq_cmd.cmd_type", FT_UINT8, BASE_DEC, VALS(lbmc_umq_cmd_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_queue_id,
|
|
{ "Queue ID", "lbmc.umq_cmd.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_cmd_id,
|
|
{ "Command ID", "lbmc.umq_cmd.cmd_id", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_inst_idx,
|
|
{ "Instance index", "lbmc.umq_cmd.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_regid,
|
|
{ "Reg ID", "lbmc.umq_cmd.regid", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_topic_list,
|
|
{ "Topic List", "lbmc.umq_cmd.topic_list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_topic_list_serial_num,
|
|
{ "Serial number", "lbmc.umq_cmd.topic_list.serial_num", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_retrieve,
|
|
{ "Message Retrieve", "lbmc.umq_cmd.msg_retrieve", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_retrieve_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_cmd.msg_retrieve.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_retrieve_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_cmd.msg_retrieve.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_retrieve_info_only,
|
|
{ "Info Only", "lbmc.umq_cmd.msg_retrieve.info_only", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_retrieve_num_msgids,
|
|
{ "Number of Message IDs", "lbmc.umq_cmd.msg_retrieve.num_msgids", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_retrieve_flags,
|
|
{ "Flags", "lbmc.umq_cmd.msg_retrieve.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_retrieve_entry,
|
|
{ "Message Retrieve Entry", "lbmc.umq_cmd.msg_retrieve.entry", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_retrieve_entry_regid,
|
|
{ "Reg ID", "lbmc.umq_cmd.msg_retrieve.entry.regid", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_retrieve_entry_stamp,
|
|
{ "Stamp", "lbmc.umq_cmd.msg_retrieve.entry.stamp", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_list,
|
|
{ "Message List", "lbmc.umq_cmd.msg_list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_list_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_cmd.msg_list.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_msg_list_assign_id,
|
|
{ "Assign ID", "lbmc.umq_cmd.msg_list.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp,
|
|
{ "UMQ Command Response", "lbmc.umq_cmd_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_next_hdr,
|
|
{ "Next Header", "lbmc.umq_cmd_resp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_hdr_len,
|
|
{ "Header Length", "lbmc.umq_cmd_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_flags,
|
|
{ "Flags", "lbmc.umq_cmd_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_cmd_resp.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_resp_type,
|
|
{ "Response", "lbmc.umq_cmd_resp.resp_type", FT_UINT8, BASE_DEC, VALS(lbmc_umq_cmd_response_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_queue_id,
|
|
{ "Queue ID", "lbmc.umq_cmd_resp.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_cmd_id,
|
|
{ "Command ID", "lbmc.umq_cmd_resp.cmd_id", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_inst_idx,
|
|
{ "Instance index", "lbmc.umq_cmd_resp.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_regid,
|
|
{ "Reg ID", "lbmc.umq_cmd_resp.regid", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_msg_retrieve,
|
|
{ "Message Retrieve", "lbmc.umq_cmd_resp.msg_retrieve", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_msg_retrieve_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_cmd_resp.msg_retrieve.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_msg_retrieve_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_cmd_resp.msg_retrieve.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve,
|
|
{ "Message Retrieve", "lbmc.umq_cmd_resp.xmsg_retrieve", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve_num_msgs,
|
|
{ "Number of Messages", "lbmc.umq_cmd_resp.xmsg_retrieve.num_msgs", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve_flags,
|
|
{ "Flags", "lbmc.umq_cmd_resp.xmsg_retrieve.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve_reserved,
|
|
{ "Reserved", "lbmc.umq_cmd_resp.xmsg_retrieve.reserved", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry,
|
|
{ "Message", "lbmc.umq_cmd_resp.xmsg_retrieve.entry", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_regid,
|
|
{ "Reg ID", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_stamp,
|
|
{ "Stamp", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.stamp", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_num_ras,
|
|
{ "Number of Reassignments", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.num_ras", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_status,
|
|
{ "Status", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.status", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_umq_msg_status_code), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_reserved,
|
|
{ "Reserved", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.reserved", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_msg_list,
|
|
{ "Message List", "lbmc.umq_cmd_resp.msg_list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_msg_list_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_cmd_resp.msg_list.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_msg_list_assign_id,
|
|
{ "Assignment ID", "lbmc.umq_cmd_resp.msg_list.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_list,
|
|
{ "Message List", "lbmc.umq_cmd_resp.xmsg_list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_list_num_msgs,
|
|
{ "Number of Messages", "lbmc.umq_cmd_resp.xmsg_list.num_msgs", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_list_entry,
|
|
{ "Message", "lbmc.umq_cmd_resp.xmsg_list.entry", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_list_entry_regid,
|
|
{ "Reg ID", "lbmc.umq_cmd_resp.xmsg_list.entry.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_xmsg_list_entry_stamp,
|
|
{ "Stamp", "lbmc.umq_cmd_resp.xmsg_list.entry.stamp", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list,
|
|
{ "Topic List", "lbmc.umq_cmd_resp.topic_list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_num_topics,
|
|
{ "Number of Topics", "lbmc.umq_cmd_resp.topic_list.num_topics", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry,
|
|
{ "Topic List Entry", "lbmc.umq_cmd_resp.topic_list.topic_entry", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_rcr_idx,
|
|
{ "RCR Index", "lbmc.umq_cmd_resp.topic_list.topic_entry.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_num_appsets,
|
|
{ "Number of AppSets", "lbmc.umq_cmd_resp.topic_list.topic_entry.num_appsets", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_topic_len,
|
|
{ "Topic Length", "lbmc.umq_cmd_resp.topic_list.topic_entry.topic_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_reserved,
|
|
{ "Reserved", "lbmc.umq_cmd_resp.topic_list.topic_entry.reserved", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_topic,
|
|
{ "Topic", "lbmc.umq_cmd_resp.topic_list.topic_entry.topic", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry,
|
|
{ "Appset Entry", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_num_receiver_type_ids,
|
|
{ "Number of Receiver Type IDs", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry.num_receiver_type_ids", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_appset_idx,
|
|
{ "AppSet Index", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_appset_name_len,
|
|
{ "AppSet Name Length", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry.appset_name_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_reserved,
|
|
{ "Reserved", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_name,
|
|
{ "AppSet Name", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry.name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_receiver_type_id,
|
|
{ "Receiver Type ID", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry.receiver_type_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_err,
|
|
{ "Error", "lbmc.umq_cmd_resp.error", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_err_reserved,
|
|
{ "Reserved", "lbmc.umq_cmd_resp.error.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_err_code,
|
|
{ "Code", "lbmc.umq_cmd_resp.error.code", FT_UINT16, BASE_DEC_HEX, VALS(lbmc_umq_cmd_response_error_code), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_cmd_resp_err_errmsg,
|
|
{ "Error Message", "lbmc.umq_cmd_resp.error.errmsg", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_req,
|
|
{ "Source Registration Information Request", "lbmc.sri_req", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_req_next_hdr,
|
|
{ "Next Header", "lbmc.sri_req.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_req_hdr_len,
|
|
{ "Header Length", "lbmc.sri_req.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_req_flags,
|
|
{ "Flags", "lbmc.sri_req.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_req_flags_ignore,
|
|
{ "Ignore", "lbmc.sri_req.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_req_transport_idx,
|
|
{ "Transport Index", "lbmc.sri_req.transport_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_req_topic_idx,
|
|
{ "Topic Index", "lbmc.sri_req.topic_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_domain,
|
|
{ "UME Store Domain", "lbmc.ume_store_domain", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_domain_next_hdr,
|
|
{ "Next Header", "lbmc.ume_store_domain.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_domain_hdr_len,
|
|
{ "Header Length", "lbmc.ume_store_domain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_domain_flags,
|
|
{ "Flags", "lbmc.ume_store_domain.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_domain_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_store_domain.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_domain_domain,
|
|
{ "Domain ID", "lbmc.ume_store_domain.domain", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri,
|
|
{ "Source Registration Information", "lbmc.sri", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_next_hdr,
|
|
{ "Next Header", "lbmc.sri.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_hdr_len,
|
|
{ "Header Length", "lbmc.sri.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_flags,
|
|
{ "Flags", "lbmc.sri.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_flags_ignore,
|
|
{ "Ignore", "lbmc.sri.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_SRI_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_flags_acktosrc,
|
|
{ "ACK to Source", "lbmc.sri.flags.acktosrc", FT_BOOLEAN, L_LBMC_CNTL_SRI_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_SRI_A_FLAG, "If set ACKs are sent to source", HFILL } },
|
|
{ &hf_lbmc_sri_flags_initial_sqn_known,
|
|
{ "Initial SQN Known", "lbmc.sri.flags.initial_sqn_known", FT_BOOLEAN, L_LBMC_CNTL_SRI_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_SRI_INITIAL_SQN_KNOWN_FLAG, "If set, initial SQN is known", HFILL } },
|
|
{ &hf_lbmc_sri_version,
|
|
{ "Version", "lbmc.sri.version", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_low_sqn,
|
|
{ "Low Sequence Number", "lbmc.sri.low_sqn", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_sri_high_sqn,
|
|
{ "High Sequence Number", "lbmc.sri.high_sqn", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info,
|
|
{ "Route Information", "lbmc.route_info", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_next_hdr,
|
|
{ "Next Header", "lbmc.route_info.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_hdr_len,
|
|
{ "Header Length", "lbmc.route_info.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_flags,
|
|
{ "Flags", "lbmc.route_info.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_flags_ignore,
|
|
{ "Ignore", "lbmc.route_info.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_gateway_version,
|
|
{ "Gateway Version", "lbmc.route_info.gateway_version", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_configuration_signature,
|
|
{ "Configuration Signature", "lbmc.route_info.configuration_signature", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_node_id,
|
|
{ "Node ID", "lbmc.route_info.node_id", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_topology,
|
|
{ "Topology", "lbmc.route_info.topology", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_vers,
|
|
{ "Version", "lbmc.route_info.vers", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_sqn,
|
|
{ "SQN", "lbmc.route_info.sqn", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_ttl,
|
|
{ "TTL", "lbmc.route_info.ttl", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_reserved1,
|
|
{ "Reserved1", "lbmc.route_info.reserved1", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_reserved2,
|
|
{ "Reserved2", "lbmc.route_info.reserved2", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_neighbor,
|
|
{ "Route Information Neighbor", "lbmc.route_info_neighbor", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_neighbor_next_hdr,
|
|
{ "Next Header", "lbmc.route_info_neighbor.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_neighbor_hdr_len,
|
|
{ "Header Length", "lbmc.route_info_neighbor.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_neighbor_flags,
|
|
{ "Flags", "lbmc.route_info_neighbor.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_neighbor_flags_ignore,
|
|
{ "Ignore", "lbmc.route_info_neighbor.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_neighbor_node_id,
|
|
{ "Node ID", "lbmc.route_info_neighbor.node_id", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_neighbor_ingress_cost,
|
|
{ "Ingress Cost", "lbmc.route_info_neighbor.ingress_cost", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_route_info_neighbor_egress_cost,
|
|
{ "Egress Cost", "lbmc.route_info_neighbor.egress_cost", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_gateway_name,
|
|
{ "Gateway Name", "lbmc.gateway_name", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_gateway_name_next_hdr,
|
|
{ "Next Header", "lbmc.gateway_name.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_gateway_name_hdr_len,
|
|
{ "Header Length", "lbmc.gateway_name.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_gateway_name_flags,
|
|
{ "Flags", "lbmc.gateway_name.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_gateway_name_flags_ignore,
|
|
{ "Ignore", "lbmc.gateway_name.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_gateway_name_gateway_name,
|
|
{ "Gateway Name", "lbmc.gateway_name.gateway_name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_request,
|
|
{ "Authentication Request", "lbmc.auth_request", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_request_next_hdr,
|
|
{ "Next Header", "lbmc.auth_request.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_request_hdr_len,
|
|
{ "Header Length", "lbmc.auth_request.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_request_flags,
|
|
{ "Flags", "lbmc.auth_request.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_request_flags_ignore,
|
|
{ "Ignore", "lbmc.auth_request.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_request_opid,
|
|
{ "Operation ID", "lbmc.auth_request.opid", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_auth_operation_id_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_request_user_len,
|
|
{ "User Length", "lbmc.auth_request.user_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_request_user_name,
|
|
{ "User Name", "lbmc.auth_request.user_name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge,
|
|
{ "Authentication Challenge", "lbmc.auth_challenge", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_next_hdr,
|
|
{ "Next Header", "lbmc.auth_challenge.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_hdr_len,
|
|
{ "Header Length", "lbmc.auth_challenge.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_flags,
|
|
{ "Flags", "lbmc.auth_challenge.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_flags_ignore,
|
|
{ "Ignore", "lbmc.auth_challenge.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_opid,
|
|
{ "Operation ID", "lbmc.auth_challenge.opid", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_auth_operation_id_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_mod_len,
|
|
{ "Mod Length", "lbmc.auth_challenge.mod_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_gen_len,
|
|
{ "Gen Length", "lbmc.auth_challenge.gen_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_salt_len,
|
|
{ "Salt Length", "lbmc.auth_challenge.salt_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_pubkey_len,
|
|
{ "Pubkey Length", "lbmc.auth_challenge.pubkey_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_mod,
|
|
{ "Mod", "lbmc.auth_challenge.mod", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_gen,
|
|
{ "Gen", "lbmc.auth_challenge.gen", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_salt,
|
|
{ "Salt", "lbmc.auth_challenge.salt", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_pubkey,
|
|
{ "Pubkey", "lbmc.auth_challenge.pubkey", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_rsp,
|
|
{ "Authentication Challenge Response", "lbmc.auth_challenge_rsp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_rsp_next_hdr,
|
|
{ "Next Header", "lbmc.auth_challenge_rsp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_rsp_hdr_len,
|
|
{ "Header Length", "lbmc.auth_challenge_rsp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_rsp_flags,
|
|
{ "Flags", "lbmc.auth_challenge_rsp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_rsp_flags_ignore,
|
|
{ "Ignore", "lbmc.auth_challenge_rsp.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_rsp_opid,
|
|
{ "Operation ID", "lbmc.auth_challenge_rsp.opid", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_auth_operation_id_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_rsp_pubkey_len,
|
|
{ "Pubkey Length", "lbmc.auth_challenge_rsp.pubkey_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_rsp_evidence_len,
|
|
{ "Evidence Length", "lbmc.auth_challenge_rsp.evidence_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_rsp_pubkey,
|
|
{ "Pubkey", "lbmc.auth_challenge_rsp.pubkey", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_challenge_rsp_evidence,
|
|
{ "Evidence", "lbmc.auth_challenge_rsp.evidence", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_result,
|
|
{ "Authentication Result", "lbmc.auth_result", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_result_next_hdr,
|
|
{ "Next Header", "lbmc.auth_result.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_result_hdr_len,
|
|
{ "Header Length", "lbmc.auth_result.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_result_flags,
|
|
{ "Flags", "lbmc.auth_result.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_result_flags_ignore,
|
|
{ "Ignore", "lbmc.auth_result.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_result_opid,
|
|
{ "Operation ID", "lbmc.auth_result.opid", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_auth_operation_id_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_result_result,
|
|
{ "Result", "lbmc.auth_result.result", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_unknown,
|
|
{ "Unknown Authentication Header", "lbmc.auth_unknown", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_unknown_next_hdr,
|
|
{ "Next Header", "lbmc.auth_unknown.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_unknown_hdr_len,
|
|
{ "Header Length", "lbmc.auth_unknown.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_unknown_flags,
|
|
{ "Flags", "lbmc.auth_unknown.flags", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_unknown_opid,
|
|
{ "Operation ID", "lbmc.auth_unknown.opid", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_auth_operation_id_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_auth_unknown_data,
|
|
{ "Data", "lbmc.auth_unknown.data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_hmac,
|
|
{ "HMAC", "lbmc.hmac", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_hmac_next_hdr,
|
|
{ "Next Header", "lbmc.hmac.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_hmac_hdr_len,
|
|
{ "Header Length", "lbmc.hmac.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_hmac_flags,
|
|
{ "Flags", "lbmc.hmac.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_hmac_flags_ignore,
|
|
{ "Ignore", "lbmc.hmac.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_HMAC_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_hmac_padding,
|
|
{ "Padding", "lbmc.hmac.padding", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_hmac_data,
|
|
{ "Data", "lbmc.hmac.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sid,
|
|
{ "UMQ Session ID", "lbmc.umq_sid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sid_next_hdr,
|
|
{ "Next Header", "lbmc.umq_sid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sid_hdr_len,
|
|
{ "Header Length", "lbmc.umq_sid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sid_flags,
|
|
{ "Flags", "lbmc.umq_sid.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sid_flags_ignore,
|
|
{ "Ignore", "lbmc.umq_sid.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sid_key,
|
|
{ "Key", "lbmc.umq_sid.key", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_umq_sid_sid,
|
|
{ "SID", "lbmc.umq_sid.sid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination,
|
|
{ "Destination", "lbmc.destination", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_next_hdr,
|
|
{ "Next Header", "lbmc.destination.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_hdr_len,
|
|
{ "Header Length", "lbmc.destination.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_flags,
|
|
{ "Flags", "lbmc.destination.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_flags_ignore,
|
|
{ "Ignore", "lbmc.destination.flags.ignore", FT_BOOLEAN, L_LBMC_DESTINATION_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_domain_id,
|
|
{ "Domain ID", "lbmc.destination.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_ipaddr,
|
|
{ "IP Address", "lbmc.destination.ipaddr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_port,
|
|
{ "Port", "lbmc.destination.port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_hops_taken,
|
|
{ "Hops Taken", "lbmc.destination.hops_taken", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_orig_domain_id,
|
|
{ "Originating Domain ID", "lbmc.destination.orig_domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_orig_ipaddr,
|
|
{ "Originating IP Address", "lbmc.destination.orig_ipaddr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_orig_port,
|
|
{ "Originating Port", "lbmc.destination.orig_port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_destination_reserved,
|
|
{ "Reserved", "lbmc.destination.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_idx,
|
|
{ "Topic Index", "lbmc.topic_idx", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_idx_next_hdr,
|
|
{ "Next Header", "lbmc.topic_idx.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_idx_hdr_len,
|
|
{ "Header Length", "lbmc.topic_idx.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_idx_flags,
|
|
{ "Flags", "lbmc.topic_idx.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_idx_flags_ignore,
|
|
{ "Ignore", "lbmc.topic_idx.flags.ignore", FT_BOOLEAN, L_LBMC_TOPIC_IDX_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_idx_tidx,
|
|
{ "Topic Index", "lbmc.topic_idx.tidx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source,
|
|
{ "Topic Source", "lbmc.topic_source", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_next_hdr,
|
|
{ "Next Header", "lbmc.topic_source.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_hdr_len,
|
|
{ "Header Length", "lbmc.topic_source.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_flags,
|
|
{ "Flags", "lbmc.topic_source.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_flags_ignore,
|
|
{ "Ignore", "lbmc.topic_source.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_flags_eos,
|
|
{ "End of Stream", "lbmc.topic_source.flags.eos", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_TOPIC_SOURCE_EOS_FLAG, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_domain_id,
|
|
{ "Domain ID", "lbmc.topic_source.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc,
|
|
{ "Topic Source Extended Functionality", "lbmc.topic_source_exfunc", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_next_hdr,
|
|
{ "Next Header", "lbmc.topic_source_exfunc.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_hdr_len,
|
|
{ "Header Length", "lbmc.topic_source_exfunc.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_flags,
|
|
{ "Flags", "lbmc.topic_source_exfunc.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_flags_ignore,
|
|
{ "Ignore", "lbmc.topic_source_exfunc.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_src_ip,
|
|
{ "Source Address", "lbmc.topic_source_exfunc.src_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_src_port,
|
|
{ "Source Port", "lbmc.topic_source_exfunc.src_port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_unused,
|
|
{ "Unused", "lbmc.topic_source_exfunc.unused", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_functionality_flags,
|
|
{ "Functionality Flags", "lbmc.topic_source_exfunc.functionality_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_functionality_flags_ulb,
|
|
{ "ULB", "lbmc.topic_source_exfunc.functionality_flags.ulb", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS * 8, TFS(&tfs_capable_not_capable), LBM_TOPIC_OPT_EXFUNC_FFLAG_ULB, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_functionality_flags_umq,
|
|
{ "UMQ", "lbmc.topic_source_exfunc.functionality_flags.umq", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS * 8, TFS(&tfs_capable_not_capable), LBM_TOPIC_OPT_EXFUNC_FFLAG_UMQ, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_functionality_flags_ume,
|
|
{ "UME", "lbmc.topic_source_exfunc.functionality_flags.ume", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS * 8, TFS(&tfs_capable_not_capable), LBM_TOPIC_OPT_EXFUNC_FFLAG_UME, NULL, HFILL } },
|
|
{ &hf_lbmc_topic_source_exfunc_functionality_flags_lj,
|
|
{ "Late Join", "lbmc.topic_source_exfunc.functionality_flags.lj", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS * 8, TFS(&tfs_capable_not_capable), LBM_TOPIC_OPT_EXFUNC_FFLAG_LJ, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext,
|
|
{ "UME Store Extended", "lbmc.ume_store_ext", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_next_hdr,
|
|
{ "Next Header", "lbmc.ume_store_ext.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_hdr_len,
|
|
{ "Header Length", "lbmc.ume_store_ext.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_flags,
|
|
{ "Flags", "lbmc.ume_store_ext.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_store_ext.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_grp_idx,
|
|
{ "Group Index", "lbmc.ume_store_ext.grp_idx", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_store_tcp_port,
|
|
{ "Store TCP Port", "lbmc.ume_store_ext.store_tcp_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_store_idx,
|
|
{ "Store Index", "lbmc.ume_store_ext.store_idx", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_store_ip_addr,
|
|
{ "Store IP Address", "lbmc.ume_store_ext.store_ip_addr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_src_reg_id,
|
|
{ "Source RegID", "lbmc.ume_store_ext.src_reg_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_domain_id,
|
|
{ "Domain ID", "lbmc.ume_store_ext.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_store_ext_version,
|
|
{ "Version", "lbmc.ume_store_ext.version", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_psrc_election_token,
|
|
{ "UME Proxy Source Election Token", "lbmc.ume_psrc_election_token", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_psrc_election_token_next_hdr,
|
|
{ "Next Header", "lbmc.ume_psrc_election_token.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_psrc_election_token_hdr_len,
|
|
{ "Header Length", "lbmc.ume_psrc_election_token.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_psrc_election_token_flags,
|
|
{ "Flags", "lbmc.ume_psrc_election_token.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_psrc_election_token_flags_ignore,
|
|
{ "Ignore", "lbmc.ume_psrc_election_token.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_psrc_election_token_store_index,
|
|
{ "Store Index", "lbmc.ume_psrc_election_token.store_index", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_ume_psrc_election_token_token,
|
|
{ "Token", "lbmc.ume_psrc_election_token.token", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_sid,
|
|
{ "TCP Session ID", "lbmc.tcp_sid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_sid_next_hdr,
|
|
{ "Next Header", "lbmc.tcp_sid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_sid_hdr_len,
|
|
{ "Header Length", "lbmc.tcp_sid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_sid_flags,
|
|
{ "Flags", "lbmc.tcp_sid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_sid_flags_ignore,
|
|
{ "Ignore", "lbmc.tcp_sid.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TCP_SID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_tcp_sid_sid,
|
|
{ "Session ID", "lbmc.tcp_sid.sid", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt,
|
|
{ "Extended Option", "lbmc.extopt", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_next_hdr,
|
|
{ "Next Header", "lbmc.extopt.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_hdr_len,
|
|
{ "Header Length", "lbmc.extopt.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_flags,
|
|
{ "Flags", "lbmc.extopt.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_flags_ignore,
|
|
{ "Ignore", "lbmc.extopt.flags.ignore", FT_BOOLEAN, L_LBMC_EXTOPT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_EXTOPT_FLAG_IGNORE, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_flags_ignore_subtype,
|
|
{ "Ignore Subtype", "lbmc.extopt.flags.ignore_subtype", FT_BOOLEAN, L_LBMC_EXTOPT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_EXTOPT_FLAG_IGNORE_SUBTYPE, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_flags_more_fragments,
|
|
{ "More Fragments", "lbmc.extopt.flags.more_fragments", FT_BOOLEAN, L_LBMC_EXTOPT_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_EXTOPT_FLAG_MORE_FRAGMENT, "Set if there are more fragments", HFILL } },
|
|
{ &hf_lbmc_extopt_id,
|
|
{ "ID", "lbmc.extopt.id", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_subtype,
|
|
{ "Subtype", "lbmc.extopt.subtype", FT_UINT16, BASE_DEC_HEX, VALS(lbmc_extopt_subtype), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_fragment_offset,
|
|
{ "Fragment offset", "lbmc.extopt.fragment_offset", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_data,
|
|
{ "Data", "lbmc.extopt.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_cfgopt,
|
|
{ "Configuration Option", "lbmc.extopt.cfgopt", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_cfgopt_scope,
|
|
{ "Scope", "lbmc.extopt.cfgopt.scope", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_extopt_config_option_scope), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_cfgopt_parent,
|
|
{ "Parent", "lbmc.extopt.cfgopt.parent", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_cfgopt_name,
|
|
{ "Name", "lbmc.extopt.cfgopt.name", FT_STRING, FT_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_cfgopt_value,
|
|
{ "Value", "lbmc.extopt.cfgopt.value", FT_STRING, FT_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_msgsel,
|
|
{ "Message Selector", "lbmc.extopt.msgsel", FT_STRING, FT_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_reassembled_data,
|
|
{ "EXTOPT Reassembled Data", "lbmc.extopt.reassembled_data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_reassembled_data_subtype,
|
|
{ "Subtype", "lbmc.extopt.reassembled_data.subtype", FT_UINT16, BASE_DEC_HEX, VALS(lbmc_extopt_subtype), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_reassembled_data_len,
|
|
{ "Length", "lbmc.extopt.reassembled_data.length", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_reassembled_data_data,
|
|
{ "Data", "lbmc.extopt.reassembled_data.data", FT_BYTES, FT_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_extopt_reassembled_data_msgsel,
|
|
{ "Message Selector", "lbmc.extopt.reassembled_data.msgsel", FT_STRING, FT_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties,
|
|
{ "Message Properties", "lbmc.lbm_msg_properties", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_data,
|
|
{ "Message Properties Data", "lbmc.lbm_msg_properties.data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_data_magic,
|
|
{ "Magic", "lbmc.lbm_msg_properties.data.magic", FT_UINT32, BASE_HEX, VALS(lbm_msg_prop_magic_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_data_num_fields,
|
|
{ "Number of Fields", "lbmc.lbm_msg_properties.data.num_fields", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_data_version,
|
|
{ "Version", "lbmc.lbm_msg_properties.data.version", FT_UINT8, BASE_DEC, NULL, LBM_MSG_PROPERTIES_HDR_VER_MASK, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_data_type,
|
|
{ "Type", "lbmc.lbm_msg_properties.data.type", FT_UINT8, BASE_DEC_HEX, VALS(lbm_msg_prop_header_type), LBM_MSG_PROPERTIES_HDR_TYPE_MASK, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_data_res,
|
|
{ "Reserved", "lbmc.lbm_msg_properties.data.res", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr,
|
|
{ "Message Properties", "lbmc.lbm_msg_properties.hdr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_key_offset,
|
|
{ "Key offset", "lbmc.lbm_msg_properties.hdr.key_offset", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_value_offset,
|
|
{ "Value offset", "lbmc.lbm_msg_properties.hdr.value_offset", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_hash,
|
|
{ "Hash", "lbmc.lbm_msg_properties.hdr.hash", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_type,
|
|
{ "Type", "lbmc.lbm_msg_properties.hdr.type", FT_UINT32, BASE_DEC_HEX, VALS(lbm_msg_prop_field_type), 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_key,
|
|
{ "Key", "lbmc.lbm_msg_properties.hdr.key", FT_STRINGZ, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_boolean_value,
|
|
{ "Boolean Value", "lbmc.lbm_msg_properties.hdr.boolean_value", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_byte_value,
|
|
{ "Byte Value", "lbmc.lbm_msg_properties.hdr.byte_value", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_short_value,
|
|
{ "Short Value", "lbmc.lbm_msg_properties.hdr.short_value", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_int_value,
|
|
{ "Int Value", "lbmc.lbm_msg_properties.hdr.int_value", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_float_value,
|
|
{ "Float Value", "lbmc.lbm_msg_properties.hdr.float_value", FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_long_value,
|
|
{ "Long Value", "lbmc.lbm_msg_properties.hdr.long_value", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_double_value,
|
|
{ "Double Value", "lbmc.lbm_msg_properties.hdr.double_value", FT_DOUBLE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_string_value,
|
|
{ "String Value", "lbmc.lbm_msg_properties.hdr.string_value", FT_STRINGZ, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_msg_properties_hdr_unknown_value,
|
|
{ "Unknown Value", "lbmc.lbm_msg_properties.hdr.unknown_value", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_unhandled,
|
|
{ "Unhandled", "lbmc.unhandled", FT_NONE, BASE_NONE, NULL, 0x0, "Unrecognized/unhandled header", HFILL } },
|
|
{ &hf_lbmc_unhandled_next_hdr,
|
|
{ "Next Header", "lbmc.unhandled.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_unhandled_hdr_len,
|
|
{ "Header Length", "lbmc.unhandled.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_unhandled_data,
|
|
{ "Data", "lbmc.unhandled.data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_stream,
|
|
{ "LBM Stream", "lbmc.lbm_stream", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_stream_stream_id,
|
|
{ "Stream ID", "lbmc.lbm_stream.stream_id", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbm_stream_substream_id,
|
|
{ "Substream ID", "lbmc.lbm_stream.substream_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_reassembly,
|
|
{ "Reassembled Fragments", "lbmc.reassembly", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_lbmc_reassembly_fragment,
|
|
{ "Fragment", "lbmc.reassembly.fragment", FT_FRAMENUM, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
|
{ &hf_reassembly_frame,
|
|
{ "Reassembled message in frame", "lbmc.reassembly_frame", FT_FRAMENUM, BASE_NONE, NULL, 0x0, "Frame in which reassembled message appears", HFILL } },
|
|
};
|
|
|
|
static gint * ett[] =
|
|
{
|
|
&ett_lbmc,
|
|
&ett_lbmc_frag,
|
|
&ett_lbmc_frag_flags,
|
|
&ett_lbmc_batch,
|
|
&ett_lbmc_batch_flags,
|
|
&ett_lbmc_tcp_request,
|
|
&ett_lbmc_tcp_request_flags,
|
|
&ett_lbmc_topicname,
|
|
&ett_lbmc_topicname_flags,
|
|
&ett_lbmc_apphdr,
|
|
&ett_lbmc_apphdr_chain,
|
|
&ett_lbmc_apphdr_chain_element,
|
|
&ett_lbmc_apphdr_chain_msgprop,
|
|
&ett_lbmc_umq_msgid,
|
|
&ett_lbmc_umq_msgid_flags,
|
|
&ett_lbmc_umq_sqd_rcv,
|
|
&ett_lbmc_umq_sqd_rcv_flags,
|
|
&ett_lbmc_umq_resub,
|
|
&ett_lbmc_umq_resub_flags,
|
|
&ett_lbmc_otid,
|
|
&ett_lbmc_otid_flags,
|
|
&ett_lbmc_ctxinst,
|
|
&ett_lbmc_ctxinst_flags,
|
|
&ett_lbmc_ctxinstd,
|
|
&ett_lbmc_ctxinstr,
|
|
&ett_lbmc_srcidx,
|
|
&ett_lbmc_srcidx_flags,
|
|
&ett_lbmc_umq_ulb_msg,
|
|
&ett_lbmc_umq_ulb_msg_flags,
|
|
&ett_lbmc_ssf_init,
|
|
&ett_lbmc_ssf_init_flags,
|
|
&ett_lbmc_ssf_creq,
|
|
&ett_lbmc_ssf_creq_flags,
|
|
&ett_lbmc_ume_preg,
|
|
&ett_lbmc_ume_preg_flags,
|
|
&ett_lbmc_ume_preg_resp,
|
|
&ett_lbmc_ume_preg_resp_code,
|
|
&ett_lbmc_ume_preg_resp_marker,
|
|
&ett_lbmc_ume_ack,
|
|
&ett_lbmc_ume_ack_flags,
|
|
&ett_lbmc_ume_rxreq,
|
|
&ett_lbmc_ume_rxreq_flags,
|
|
&ett_lbmc_ume_keepalive,
|
|
&ett_lbmc_ume_keepalive_flags,
|
|
&ett_lbmc_ume_storeid,
|
|
&ett_lbmc_ume_ranged_ack,
|
|
&ett_lbmc_ume_ranged_ack_flags,
|
|
&ett_lbmc_ume_ack_id,
|
|
&ett_lbmc_ume_ack_id_flags,
|
|
&ett_lbmc_ume_capability,
|
|
&ett_lbmc_ume_capability_flags,
|
|
&ett_lbmc_ume_proxy_src,
|
|
&ett_lbmc_ume_proxy_src_flags,
|
|
&ett_lbmc_ume_store_group,
|
|
&ett_lbmc_ume_store_group_flags,
|
|
&ett_lbmc_ume_store,
|
|
&ett_lbmc_ume_store_flags,
|
|
&ett_lbmc_ume_lj_info,
|
|
&ett_lbmc_ume_lj_info_flags,
|
|
&ett_lbmc_tsni,
|
|
&ett_lbmc_tsni_rec,
|
|
&ett_lbmc_umq_reg,
|
|
&ett_lbmc_umq_reg_flags,
|
|
&ett_lbmc_umq_reg_reg_ctx,
|
|
&ett_lbmc_umq_reg_reg_src,
|
|
&ett_lbmc_umq_reg_reg_rcv,
|
|
&ett_lbmc_umq_reg_rcv_dereg,
|
|
&ett_lbmc_umq_reg_reg_ulb_rcv,
|
|
&ett_lbmc_umq_reg_ulb_rcv_dereg,
|
|
&ett_lbmc_umq_reg_reg_observer_rcv,
|
|
&ett_lbmc_umq_reg_observer_rcv_dereg,
|
|
&ett_lbmc_umq_reg_resp,
|
|
&ett_lbmc_umq_reg_resp_flags,
|
|
&ett_lbmc_umq_reg_resp_reg_ctx,
|
|
&ett_lbmc_umq_reg_resp_reg_ctx_ex,
|
|
&ett_lbmc_umq_reg_resp_reg_ctx_ex_flags,
|
|
&ett_lbmc_umq_reg_resp_err,
|
|
&ett_lbmc_umq_reg_resp_reg_src,
|
|
&ett_lbmc_umq_reg_resp_reg_rcv,
|
|
&ett_lbmc_umq_reg_resp_rcv_dereg,
|
|
&ett_lbmc_umq_reg_resp_reg_ulb_rcv,
|
|
&ett_lbmc_umq_reg_resp_ulb_rcv_dereg,
|
|
&ett_lbmc_umq_reg_resp_reg_observer_rcv,
|
|
&ett_lbmc_umq_reg_resp_observer_rcv_dereg,
|
|
&ett_lbmc_umq_ack,
|
|
&ett_lbmc_umq_ack_msgs,
|
|
&ett_lbmc_umq_ack_msgid,
|
|
&ett_lbmc_umq_ack_stable,
|
|
&ett_lbmc_umq_ack_cr,
|
|
&ett_lbmc_umq_ack_ulb_cr,
|
|
&ett_lbmc_umq_rcr,
|
|
&ett_lbmc_umq_rcr_flags,
|
|
&ett_lbmc_umq_ka,
|
|
&ett_lbmc_umq_ka_flags,
|
|
&ett_lbmc_umq_ka_src,
|
|
&ett_lbmc_umq_ka_rcv,
|
|
&ett_lbmc_umq_ka_ulb_rcv,
|
|
&ett_lbmc_umq_ka_ulb_rcv_resp,
|
|
&ett_lbmc_umq_rxreq,
|
|
&ett_lbmc_umq_rxreq_flags,
|
|
&ett_lbmc_umq_rxreq_regid_resp,
|
|
&ett_lbmc_umq_rxreq_addr_resp,
|
|
&ett_lbmc_umq_rxreq_mr,
|
|
&ett_lbmc_umq_rxreq_ulb_mr,
|
|
&ett_lbmc_umq_rxreq_ulb_mr_abort,
|
|
&ett_lbmc_umq_rxreq_qrcrr,
|
|
&ett_lbmc_umq_rxreq_trcrr,
|
|
&ett_lbmc_umq_rxreq_ulb_trcrr,
|
|
&ett_lbmc_umq_rxreq_ulb_trcrr_abort,
|
|
&ett_lbmc_umq_qmgmt,
|
|
&ett_lbmc_umq_resub_req,
|
|
&ett_lbmc_umq_resub_req_flags,
|
|
&ett_lbmc_umq_resub_resp,
|
|
&ett_lbmc_umq_resub_resp_flags,
|
|
&ett_lbmc_topic_interest,
|
|
&ett_lbmc_topic_interest_flags,
|
|
&ett_lbmc_pattern_interest,
|
|
&ett_lbmc_pattern_interest_flags,
|
|
&ett_lbmc_advertisement,
|
|
&ett_lbmc_advertisement_flags,
|
|
&ett_lbmc_advertisement_ad_flags,
|
|
&ett_lbmc_ume_storename,
|
|
&ett_lbmc_ume_storename_flags,
|
|
&ett_lbmc_umq_ulb_rcr,
|
|
&ett_lbmc_umq_ulb_rcr_flags,
|
|
&ett_lbmc_umq_lf,
|
|
&ett_lbmc_umq_lf_flags,
|
|
&ett_lbmc_ctxinfo,
|
|
&ett_lbmc_ctxinfo_flags,
|
|
&ett_lbmc_ume_pser,
|
|
&ett_lbmc_ume_pser_flags,
|
|
&ett_lbmc_domain,
|
|
&ett_lbmc_domain_flags,
|
|
&ett_lbmc_tnwg_capabilities,
|
|
&ett_lbmc_tnwg_capabilities_flags,
|
|
&ett_lbmc_tnwg_capabilities_capabilities1,
|
|
&ett_lbmc_tnwg_capabilities_capabilities3,
|
|
&ett_lbmc_patidx,
|
|
&ett_lbmc_patidx_flags,
|
|
&ett_lbmc_ume_client_lifetime,
|
|
&ett_lbmc_ume_client_lifetime_flags,
|
|
&ett_lbmc_ume_sid,
|
|
&ett_lbmc_ume_sid_flags,
|
|
&ett_lbmc_umq_idx_cmd,
|
|
&ett_lbmc_umq_idx_cmd_flags,
|
|
&ett_lbmc_umq_idx_cmd_stop_assign,
|
|
&ett_lbmc_umq_idx_cmd_start_assign,
|
|
&ett_lbmc_umq_idx_cmd_release_assign,
|
|
&ett_lbmc_umq_idx_cmd_release_assign_flags,
|
|
&ett_lbmc_umq_idx_cmd_ulb_stop_assign,
|
|
&ett_lbmc_umq_idx_cmd_ulb_start_assign,
|
|
&ett_lbmc_umq_idx_cmd_ulb_release_assign,
|
|
&ett_lbmc_umq_idx_cmd_ulb_release_assign_flags,
|
|
&ett_lbmc_umq_idx_cmd_reserve_assign,
|
|
&ett_lbmc_umq_idx_cmd_reserve_assign_flags,
|
|
&ett_lbmc_umq_idx_cmd_ulb_reserve_assign,
|
|
&ett_lbmc_umq_idx_cmd_ulb_reserve_assign_flags,
|
|
&ett_lbmc_umq_idx_cmd_resp,
|
|
&ett_lbmc_umq_idx_cmd_resp_flags,
|
|
&ett_lbmc_umq_idx_cmd_resp_err,
|
|
&ett_lbmc_umq_idx_cmd_resp_stop_assign,
|
|
&ett_lbmc_umq_idx_cmd_resp_start_assign,
|
|
&ett_lbmc_umq_idx_cmd_resp_release_assign,
|
|
&ett_lbmc_umq_idx_cmd_resp_ulb_stop_assign,
|
|
&ett_lbmc_umq_idx_cmd_resp_ulb_start_assign,
|
|
&ett_lbmc_umq_idx_cmd_resp_ulb_release_assign,
|
|
&ett_lbmc_umq_idx_cmd_resp_reserve_assign,
|
|
&ett_lbmc_umq_idx_cmd_resp_reserve_assign_flags,
|
|
&ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign,
|
|
&ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags,
|
|
&ett_lbmc_odomain,
|
|
&ett_lbmc_odomain_flags,
|
|
&ett_lbmc_stream,
|
|
&ett_lbmc_stream_flags,
|
|
&ett_lbmc_topic_md_interest,
|
|
&ett_lbmc_topic_md_interest_flags,
|
|
&ett_lbmc_pattern_md_interest,
|
|
&ett_lbmc_pattern_md_interest_flags,
|
|
&ett_lbmc_lji_req,
|
|
&ett_lbmc_lji_req_flags,
|
|
&ett_lbmc_tnwg_ka,
|
|
&ett_lbmc_tnwg_ka_flags,
|
|
&ett_lbmc_ume_receiver_keepalive,
|
|
&ett_lbmc_ume_receiver_keepalive_flags,
|
|
&ett_lbmc_umq_cmd,
|
|
&ett_lbmc_umq_cmd_flags,
|
|
&ett_lbmc_umq_cmd_topic_list,
|
|
&ett_lbmc_umq_cmd_msg_retrieve,
|
|
&ett_lbmc_umq_cmd_msg_retrieve_entry,
|
|
&ett_lbmc_umq_cmd_msg_list,
|
|
&ett_lbmc_umq_cmd_resp,
|
|
&ett_lbmc_umq_cmd_resp_flags,
|
|
&ett_lbmc_umq_cmd_resp_msg_retrieve,
|
|
&ett_lbmc_umq_cmd_resp_xmsg_retrieve,
|
|
&ett_lbmc_umq_cmd_resp_xmsg_retrieve_entry,
|
|
&ett_lbmc_umq_cmd_resp_msg_list,
|
|
&ett_lbmc_umq_cmd_resp_xmsg_list,
|
|
&ett_lbmc_umq_cmd_resp_xmsg_list_entry,
|
|
&ett_lbmc_umq_cmd_resp_topic_list,
|
|
&ett_lbmc_umq_cmd_resp_topic_list_topic_entry,
|
|
&ett_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry,
|
|
&ett_lbmc_umq_cmd_resp_err,
|
|
&ett_lbmc_sri_req,
|
|
&ett_lbmc_sri_req_flags,
|
|
&ett_lbmc_ume_store_domain,
|
|
&ett_lbmc_ume_store_domain_flags,
|
|
&ett_lbmc_sri,
|
|
&ett_lbmc_sri_flags,
|
|
&ett_lbmc_route_info,
|
|
&ett_lbmc_route_info_flags,
|
|
&ett_lbmc_route_info_neighbor,
|
|
&ett_lbmc_route_info_neighbor_flags,
|
|
&ett_lbmc_gateway_name,
|
|
&ett_lbmc_gateway_name_flags,
|
|
&ett_lbmc_auth_request,
|
|
&ett_lbmc_auth_request_flags,
|
|
&ett_lbmc_auth_challenge,
|
|
&ett_lbmc_auth_challenge_flags,
|
|
&ett_lbmc_auth_challenge_rsp,
|
|
&ett_lbmc_auth_challenge_rsp_flags,
|
|
&ett_lbmc_auth_result,
|
|
&ett_lbmc_auth_result_flags,
|
|
&ett_lbmc_auth_unknown,
|
|
&ett_lbmc_hmac,
|
|
&ett_lbmc_hmac_flags,
|
|
&ett_lbmc_umq_sid,
|
|
&ett_lbmc_umq_sid_flags,
|
|
&ett_lbmc_destination,
|
|
&ett_lbmc_destination_flags,
|
|
&ett_lbmc_topic_idx,
|
|
&ett_lbmc_topic_idx_flags,
|
|
&ett_lbmc_topic_source,
|
|
&ett_lbmc_topic_source_flags,
|
|
&ett_lbmc_topic_source_exfunc,
|
|
&ett_lbmc_topic_source_exfunc_flags,
|
|
&ett_lbmc_topic_source_exfunc_functionality_flags,
|
|
&ett_lbmc_ume_store_ext,
|
|
&ett_lbmc_ume_store_ext_flags,
|
|
&ett_lbmc_ume_psrc_election_token,
|
|
&ett_lbmc_ume_psrc_election_token_flags,
|
|
&ett_lbmc_tcp_sid,
|
|
&ett_lbmc_tcp_sid_flags,
|
|
&ett_lbmc_extopt,
|
|
&ett_lbmc_extopt_flags,
|
|
&ett_lbmc_extopt_cfgopt,
|
|
&ett_lbmc_extopt_reassembled_data,
|
|
&ett_lbmc_extopt_reassembled_data_cfgopt,
|
|
&ett_lbm_msg_properties,
|
|
&ett_lbm_msg_properties_data,
|
|
&ett_lbm_msg_properties_hdr,
|
|
&ett_lbmc_unhandled_hdr,
|
|
&ett_lbm_stream,
|
|
&ett_lbmc_reassembly,
|
|
&ett_unknown,
|
|
&ett_msg_data,
|
|
&ett_msgprop_data
|
|
};
|
|
static ei_register_info ei[] =
|
|
{
|
|
{ &ei_lbmc_analysis_length_incorrect, { "lbmc.analysis.length_incorrect", PI_PROTOCOL, PI_ERROR, "Header length incorrect", EXPFILL } },
|
|
{ &ei_lbmc_analysis_zero_length, { "lbmc.analysis.zero_length", PI_MALFORMED, PI_ERROR, "Length dissected is zero", EXPFILL } },
|
|
{ &ei_lbmc_analysis_tsni, { "lbmc.analysis.tsni", PI_SEQUENCE, PI_NOTE, "TSNI Sqn", EXPFILL } },
|
|
{ &ei_lbmc_analysis_invalid_value, { "lbmc.analysis.invalid_value", PI_MALFORMED, PI_ERROR, "Invalid value", EXPFILL } },
|
|
{ &ei_lbmc_analysis_no_reassembly, { "lbmc.analysis.no_reassembly", PI_PROTOCOL, PI_ERROR, "Reassembly not in progress but fragment_offset not zero", EXPFILL } },
|
|
{ &ei_lbmc_analysis_invalid_offset, { "lbmc.analysis.invalid_offset", PI_MALFORMED, PI_ERROR, "Message property offset exceeds data length", EXPFILL } },
|
|
{ &ei_lbmc_analysis_missing_reassembly_frame, { "lbmc.analysis.missing_reassembly_frame", PI_UNDECODED, PI_WARN, "Message not reassembled - reassembly data missing from capture", EXPFILL } },
|
|
{ &ei_lbmc_analysis_invalid_fragment, { "lbmc.analysis.invalid_fragment", PI_MALFORMED, PI_ERROR, "Invalid fragment", EXPFILL } },
|
|
};
|
|
module_t * lbmc_module = NULL;
|
|
expert_module_t * expert_lbmc;
|
|
|
|
tnw_protocol_handle = proto_register_protocol("29West Protocol", "29West", "29west");
|
|
proto_lbmc = proto_register_protocol("LBMC Protocol", "LBMC", "lbmc");
|
|
|
|
proto_register_field_array(proto_lbmc, hf, array_length(hf));
|
|
proto_register_subtree_array(ett, array_length(ett));
|
|
expert_lbmc = expert_register_protocol(proto_lbmc);
|
|
expert_register_field_array(expert_lbmc, ei, array_length(ei));
|
|
|
|
lbmc_heuristic_subdissector_list = register_heur_dissector_list("lbm_msg_payload");
|
|
|
|
prefs_register_protocol(tnw_protocol_handle, NULL);
|
|
lbmc_module = prefs_register_protocol_subtree("29West", proto_lbmc, proto_reg_handoff_lbmc);
|
|
prefs_register_bool_preference(lbmc_module,
|
|
"use_heuristic_subdissectors",
|
|
"Use heuristic sub-dissectors",
|
|
"Use a registered heuristic sub-dissector to decode the data payload",
|
|
&lbmc_use_heuristic_subdissectors);
|
|
prefs_register_bool_preference(lbmc_module,
|
|
"reassemble_fragments",
|
|
"Reassemble fragmented data",
|
|
"Reassemble data message fragments",
|
|
&lbmc_reassemble_fragments);
|
|
prefs_register_bool_preference(lbmc_module,
|
|
"dissect_lbmpdm",
|
|
"Dissect LBMPDM payload",
|
|
"Recognize and dissect payloads containing LBMPDM messages (requires reassembly to be enabled)",
|
|
&lbmc_dissect_lbmpdm);
|
|
lbm_stream_init();
|
|
lbmc_message_table = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
|
|
}
|
|
|
|
/* The registration hand-off routine */
|
|
void proto_reg_handoff_lbmc(void)
|
|
{
|
|
lbmc_data_dissector_handle = find_dissector("data");
|
|
lbmc_uim_tap_handle = register_tap("lbm_uim");
|
|
lbmc_stream_tap_handle = register_tap("lbm_stream");
|
|
}
|
|
|
|
/*
|
|
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
|
*
|
|
* Local variables:
|
|
* c-basic-offset: 4
|
|
* tab-width: 4
|
|
* indent-tabs-mode: nil
|
|
* End:
|
|
*
|
|
* vi: set shiftwidth=4 tabstop=4 expandtab:
|
|
* :indentSize=4:tabSize=4:noTabs=true:
|
|
*/
|