Coverage Report

Created: 2026-11-12 07:01

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-lbmc.c
Line
Count
Source
1
/* packet-lbmc.c
2
 * Routines for LBMC Packet dissection
3
 *
4
 * Copyright (c) 2005-2014 Informatica Corporation. All Rights Reserved.
5
 *
6
 * Wireshark - Network traffic analyzer
7
 * By Gerald Combs <gerald@wireshark.org>
8
 * Copyright 1998 Gerald Combs
9
 *
10
 * SPDX-License-Identifier: GPL-2.0-or-later
11
 */
12
13
#include "config.h"
14
#include <epan/packet.h>
15
#include <epan/prefs.h>
16
#include <epan/expert.h>
17
#include <epan/sequence_analysis.h>
18
#include <epan/to_str.h>
19
#include <epan/tap.h>
20
#include "packet-lbm.h"
21
#include "packet-lbttcp.h"
22
23
24
void proto_register_lbmc(void);
25
void proto_reg_handoff_lbmc(void);
26
27
/*----------------------------------------------------------------------------*/
28
/* Stream management.                                                         */
29
/*----------------------------------------------------------------------------*/
30
31
/* Instance stream structures. */
32
struct lbm_istream_entry_t_stct;
33
typedef struct lbm_istream_entry_t_stct lbm_istream_entry_t;
34
struct lbm_istream_substream_entry_t_stct;
35
typedef struct lbm_istream_substream_entry_t_stct lbm_istream_substream_entry_t;
36
37
struct lbm_istream_substream_entry_t_stct
38
{
39
    address src_addr;
40
    uint16_t src_port;
41
    address dst_addr;
42
    uint16_t dst_port;
43
    uint32_t lbm_stream_id;
44
    lbm_istream_entry_t * parent;
45
    uint32_t substream_id;
46
    uint32_t first_frame;
47
    uint32_t last_frame;
48
    uint32_t messages;
49
    uint32_t bytes;
50
};
51
52
struct lbm_istream_entry_t_stct
53
{
54
    uint8_t ctxinst_1[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
55
    uint8_t ctxinst_2[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
56
    uint64_t channel;
57
    uint32_t next_substream_id;
58
    uint32_t first_frame;
59
    uint32_t last_frame;
60
    uint32_t messages;
61
    uint32_t bytes;
62
    wmem_tree_t * substream_list;
63
};
64
65
/* Domain stream structures */
66
struct lbm_dstream_entry_t_stct;
67
typedef struct lbm_dstream_entry_t_stct lbm_dstream_entry_t;
68
struct lbm_dstream_substream_entry_t_stct;
69
typedef struct lbm_dstream_substream_entry_t_stct lbm_dstream_substream_entry_t;
70
71
struct lbm_dstream_substream_entry_t_stct
72
{
73
    address src_addr;
74
    uint16_t src_port;
75
    address dst_addr;
76
    uint16_t dst_port;
77
    uint32_t lbm_stream_id;
78
    lbm_dstream_entry_t * parent;
79
    uint32_t substream_id;
80
    uint32_t first_frame;
81
    uint32_t last_frame;
82
    uint32_t messages;
83
    uint32_t bytes;
84
};
85
86
struct lbm_dstream_entry_t_stct
87
{
88
    uint32_t domain_1;
89
    address addr_1;
90
    uint32_t domain_2;
91
    address addr_2;
92
    uint16_t port_1;
93
    uint16_t port_2;
94
    uint64_t channel;
95
    uint32_t next_substream_id;
96
    uint32_t first_frame;
97
    uint32_t last_frame;
98
    uint32_t messages;
99
    uint32_t bytes;
100
    wmem_tree_t * substream_list;
101
};
102
103
/* Instance stream variables */
104
12
#define LBM_ISTREAM_STREAM_KEY_ELEMENT_COUNT         4
105
12
#define LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST1_HIGH 0
106
12
#define LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST1_LOW  1
107
12
#define LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST2_HIGH 2
108
12
#define LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST2_LOW  3
109
110
12
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_COUNT         5
111
12
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_SRC_ADDR      0
112
12
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_SRC_PORT      1
113
12
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_DST_ADDR      2
114
12
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_DST_PORT      3
115
12
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_LBM_STREAM_ID 4
116
117
static wmem_tree_t * instance_stream_table;
118
119
/* Domain stream variables */
120
20
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_COUNT    6
121
20
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_DOMAIN_1 0
122
20
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_ADDR_1   1
123
20
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_DOMAIN_2 2
124
20
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_ADDR_2   3
125
20
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_PORT_1   4
126
20
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_PORT_2   5
127
128
20
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_COUNT         5
129
20
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_SRC_ADDR      0
130
20
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_SRC_PORT      1
131
20
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_DST_ADDR      2
132
20
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_DST_PORT      3
133
20
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_LBM_STREAM_ID 4
134
135
static wmem_tree_t * domain_stream_table;
136
137
static void lbm_stream_init(void)
138
16
{
139
16
    instance_stream_table = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
140
16
    domain_stream_table = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
141
16
}
142
143
/* Return the first four bytes of an address, or 0 if it does not have them
144
   (e.g. AT_NONE from Exported PDU without address tags). memcpy avoids
145
   alignment issues. */
146
static uint32_t lbmc_addr_key(const address * addr)
147
104
{
148
104
    uint32_t val = 0;
149
150
104
    if ((addr->data != NULL) && (addr->len >= (int)sizeof(uint32_t)))
151
104
    {
152
104
        memcpy((void *) &val, (const void *) addr->data, sizeof(uint32_t));
153
104
    }
154
104
    return (val);
155
104
}
156
157
static void lbm_istream_stream_build_key(uint32_t * key_value, wmem_tree_key_t * key, const lbm_istream_entry_t * stream)
158
12
{
159
12
    uint32_t val;
160
161
    /* Note: ctxinst_1 and ctxinst_2 are 8-byte blocks, not guaranteed to be aligned. So we memcpy them 4 bytes
162
       at a time to an intermediate variable, to prevent any alignment issues with assigning to a 32-bit unsigned int
163
       on certain platforms.
164
    */
165
12
    memcpy((void *) &val, (const void *) stream->ctxinst_1, sizeof(uint32_t));
166
12
    key_value[LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST1_HIGH] = val;
167
12
    memcpy((void *) &val, (const void *) (stream->ctxinst_1 + sizeof(uint32_t)), sizeof(uint32_t));
168
12
    key_value[LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST1_LOW] = val;
169
12
    memcpy((void *) &val, (const void *) stream->ctxinst_2, sizeof(uint32_t));
170
12
    key_value[LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST2_HIGH] = val;
171
12
    memcpy((void *) &val, (const void *) (stream->ctxinst_2 + sizeof(uint32_t)), sizeof(uint32_t));
172
12
    key_value[LBM_ISTREAM_STREAM_KEY_ELEMENT_CTXINST2_LOW] = val;
173
12
    key[0].length = LBM_ISTREAM_STREAM_KEY_ELEMENT_COUNT;
174
12
    key[0].key = key_value;
175
12
    key[1].length = 0;
176
12
    key[1].key = NULL;
177
12
}
178
179
static void lbm_stream_order_istream_key(lbm_istream_entry_t * stream)
180
12
{
181
12
    uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
182
183
12
    if (memcmp((void *)stream->ctxinst_1, (void *)stream->ctxinst_2, LBM_CONTEXT_INSTANCE_BLOCK_SZ) > 0)
184
6
    {
185
6
        memcpy((void *)ctxinst, (const void *)stream->ctxinst_1, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
186
6
        memcpy((void *)stream->ctxinst_1, (const void *)stream->ctxinst_2, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
187
6
        memcpy((void *)stream->ctxinst_2, (const void *)ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
188
6
    }
189
12
}
190
191
static lbm_istream_entry_t * lbm_stream_istream_find(const uint8_t * instance1, const uint8_t * instance2)
192
8
{
193
8
    lbm_istream_entry_t key;
194
8
    lbm_istream_entry_t * entry = NULL;
195
8
    uint32_t keyval[LBM_ISTREAM_STREAM_KEY_ELEMENT_COUNT];
196
8
    wmem_tree_key_t tkey[2];
197
198
8
    memset((void *)&key, 0, sizeof(lbm_istream_entry_t));
199
8
    memcpy((void *)key.ctxinst_1, (const void *)instance1, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
200
8
    memcpy((void *)key.ctxinst_2, (const void *)instance2, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
201
8
    lbm_stream_order_istream_key(&key);
202
8
    lbm_istream_stream_build_key(keyval, tkey, &key);
203
8
    entry = (lbm_istream_entry_t *) wmem_tree_lookup32_array(instance_stream_table, tkey);
204
8
    return (entry);
205
8
}
206
207
static lbm_istream_entry_t * lbm_stream_istream_add(const uint8_t * instance1, const uint8_t * instance2)
208
4
{
209
4
    lbm_istream_entry_t * entry;
210
4
    uint32_t keyval[LBM_ISTREAM_STREAM_KEY_ELEMENT_COUNT];
211
4
    wmem_tree_key_t tkey[2];
212
213
4
    entry = lbm_stream_istream_find(instance1, instance2);
214
4
    if (entry != NULL)
215
0
    {
216
0
        return (entry);
217
0
    }
218
4
    entry = wmem_new(wmem_file_scope(), lbm_istream_entry_t);
219
4
    memcpy((void *)entry->ctxinst_1, (const void *)instance1, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
220
4
    memcpy((void *)entry->ctxinst_2, (const void *)instance2, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
221
4
    lbm_stream_order_istream_key(entry);
222
4
    entry->channel = lbm_channel_assign(LBM_CHANNEL_STREAM_TCP);
223
4
    entry->next_substream_id = 1;
224
4
    entry->first_frame = ~((uint32_t)0);
225
4
    entry->last_frame = 0;
226
4
    entry->messages = 0;
227
4
    entry->bytes = 0;
228
4
    entry->substream_list = wmem_tree_new(wmem_file_scope());
229
4
    lbm_istream_stream_build_key(keyval, tkey, entry);
230
4
    wmem_tree_insert32_array(instance_stream_table, tkey, (void *) entry);
231
4
    return (entry);
232
4
}
233
234
static void lbm_istream_substream_build_key(uint32_t * key_value, wmem_tree_key_t * key, const lbm_istream_substream_entry_t * substream)
235
12
{
236
12
    uint32_t val;
237
238
    /* Note: for the time being we only support IPv4 addresses (currently enforced in the dissectors), so
239
       assume it's an IPv4 address. memcpy to an intermediate value (don't know for sure the address.data field
240
       has any particular alignment) to prevent any alignment issues with assigning to a 32-bit unsigned int
241
       on certain platforms.
242
    */
243
12
    val = lbmc_addr_key(&substream->src_addr);
244
12
    key_value[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_SRC_ADDR] = val;
245
12
    key_value[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_SRC_PORT] = (uint32_t) substream->src_port;
246
12
    val = lbmc_addr_key(&substream->dst_addr);
247
12
    key_value[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_DST_ADDR] = val;
248
12
    key_value[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_DST_PORT] = (uint32_t) substream->dst_port;
249
12
    key_value[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_LBM_STREAM_ID] = substream->lbm_stream_id;
250
12
    key[0].length = LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_COUNT;
251
12
    key[0].key = key_value;
252
12
    key[1].length = 0;
253
12
    key[1].key = NULL;
254
12
}
255
256
static lbm_istream_substream_entry_t * lbm_stream_istream_substream_find(lbm_istream_entry_t * stream, const address * src_addr, uint16_t src_port, const address * dst_addr, uint16_t dst_port, uint32_t stream_id)
257
8
{
258
8
    lbm_istream_substream_entry_t key;
259
8
    lbm_istream_substream_entry_t * entry = NULL;
260
8
    uint32_t keyval[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_COUNT];
261
8
    wmem_tree_key_t tkey[2];
262
263
8
    memset((void *)&key, 0, sizeof(lbm_istream_substream_entry_t));
264
8
    copy_address_shallow(&(key.src_addr), src_addr);
265
8
    key.src_port = src_port;
266
8
    copy_address_shallow(&(key.dst_addr), dst_addr);
267
8
    key.dst_port = dst_port;
268
8
    key.lbm_stream_id = stream_id;
269
8
    lbm_istream_substream_build_key(keyval, tkey, &key);
270
8
    entry = (lbm_istream_substream_entry_t *) wmem_tree_lookup32_array(stream->substream_list, tkey);
271
8
    return (entry);
272
8
}
273
274
static lbm_istream_substream_entry_t * lbm_stream_istream_substream_add(lbm_istream_entry_t * stream, const address * src_addr, uint16_t src_port, const address * dst_addr, uint16_t dst_port, uint32_t stream_id)
275
4
{
276
4
    lbm_istream_substream_entry_t * entry;
277
4
    uint32_t keyval[LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_COUNT];
278
4
    wmem_tree_key_t tkey[2];
279
280
4
    entry = lbm_stream_istream_substream_find(stream, src_addr, src_port, dst_addr, dst_port, stream_id);
281
4
    if (entry != NULL)
282
0
    {
283
0
        return (entry);
284
0
    }
285
4
    entry = wmem_new(wmem_file_scope(), lbm_istream_substream_entry_t);
286
4
    copy_address_wmem(wmem_file_scope(), &(entry->src_addr), src_addr);
287
4
    entry->src_port = src_port;
288
4
    copy_address_wmem(wmem_file_scope(), &(entry->dst_addr), dst_addr);
289
4
    entry->dst_port = dst_port;
290
4
    entry->lbm_stream_id = stream_id;
291
4
    entry->parent = stream;
292
4
    entry->substream_id = stream->next_substream_id++;
293
4
    entry->first_frame = ~((uint32_t)0);
294
4
    entry->last_frame = 0;
295
4
    entry->messages = 0;
296
4
    entry->bytes = 0;
297
4
    lbm_istream_substream_build_key(keyval, tkey, entry);
298
4
    wmem_tree_insert32_array(stream->substream_list, tkey, (void *) entry);
299
4
    return (entry);
300
4
}
301
302
static void lbm_stream_istream_substream_update(lbm_istream_substream_entry_t * substream, uint16_t length, uint32_t frame)
303
4
{
304
4
    substream->messages++;
305
4
    substream->parent->messages++;
306
4
    substream->bytes += (uint32_t)length;
307
4
    substream->parent->bytes += (uint32_t)length;
308
4
    if (frame < substream->first_frame)
309
4
    {
310
4
        substream->first_frame = frame;
311
4
    }
312
4
    if (frame < substream->parent->first_frame)
313
4
    {
314
4
        substream->parent->first_frame = frame;
315
4
    }
316
4
    if (frame > substream->last_frame)
317
4
    {
318
4
        substream->last_frame = frame;
319
4
    }
320
4
    if (frame > substream->parent->last_frame)
321
4
    {
322
4
        substream->parent->last_frame = frame;
323
4
    }
324
4
}
325
326
static void lbm_dstream_stream_build_key(uint32_t * key_value, wmem_tree_key_t * key, const lbm_dstream_entry_t * stream)
327
20
{
328
20
    uint32_t val;
329
330
    /* Note: for the time being we only support IPv4 addresses (currently enforced in the dissectors), so
331
       assume it's an IPv4 address. memcpy to an intermediate value (don't know for sure the address.data field
332
       has any particular alignment) to prevent any alignment issues with assigning to a 32-bit unsigned int
333
       on certain platforms.
334
    */
335
20
    key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_DOMAIN_1] = stream->domain_1;
336
20
    val = lbmc_addr_key(&stream->addr_1);
337
20
    key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_ADDR_1] = val;
338
20
    key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_DOMAIN_2] = stream->domain_2;
339
20
    val = lbmc_addr_key(&stream->addr_2);
340
20
    key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_ADDR_2] = val;
341
20
    key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_PORT_1] = (uint32_t) stream->port_1;
342
20
    key_value[LBM_DSTREAM_STREAM_KEY_ELEMENT_PORT_2] = (uint32_t) stream->port_2;
343
20
    key[0].length = LBM_DSTREAM_STREAM_KEY_ELEMENT_COUNT;
344
20
    key[0].key = key_value;
345
20
    key[1].length = 0;
346
20
    key[1].key = NULL;
347
20
}
348
349
static void lbm_stream_order_dstream_key(lbm_dstream_entry_t * stream)
350
20
{
351
20
    bool swap_items = false;
352
20
    address addr;
353
20
    uint32_t domain;
354
20
    uint16_t port;
355
356
20
    if (stream->domain_1 > stream->domain_2)
357
7
    {
358
7
        swap_items = true;
359
7
    }
360
13
    else if (stream->domain_1 == stream->domain_2)
361
9
    {
362
9
        int compare;
363
364
9
        compare = cmp_address(&(stream->addr_1), &(stream->addr_2));
365
9
        if (compare > 0)
366
0
        {
367
0
            swap_items = true;
368
0
        }
369
9
        else if (compare == 0)
370
6
        {
371
6
            if (stream->port_1 > stream->port_2)
372
3
            {
373
3
                swap_items = true;
374
3
            }
375
6
        }
376
9
    }
377
20
    if (swap_items)
378
10
    {
379
10
        domain = stream->domain_1;
380
10
        copy_address_shallow(&addr, &(stream->addr_1));
381
10
        port = stream->port_1;
382
383
10
        stream->domain_1 = stream->domain_2;
384
10
        copy_address_shallow(&(stream->addr_1), &(stream->addr_2));
385
10
        stream->port_1 = stream->port_2;
386
387
10
        stream->domain_2 = domain;
388
10
        copy_address_shallow(&(stream->addr_2), &addr);
389
10
        stream->port_2 = port;
390
10
    }
391
20
}
392
393
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)
394
14
{
395
14
    lbm_dstream_entry_t key;
396
14
    lbm_dstream_entry_t * entry = NULL;
397
14
    uint32_t keyval[LBM_DSTREAM_STREAM_KEY_ELEMENT_COUNT];
398
14
    wmem_tree_key_t tkey[2];
399
400
14
    key.domain_1 = endpoint_a->domain;
401
14
    copy_address_shallow(&(key.addr_1), &(endpoint_a->addr));
402
14
    key.port_1 = endpoint_a->port;
403
14
    key.domain_2 = endpoint_b->domain;
404
14
    copy_address_shallow(&(key.addr_2), &(endpoint_b->addr));
405
14
    key.port_2 = endpoint_b->port;
406
14
    lbm_stream_order_dstream_key(&key);
407
14
    lbm_dstream_stream_build_key(keyval, tkey, &key);
408
14
    entry = (lbm_dstream_entry_t *) wmem_tree_lookup32_array(domain_stream_table, tkey);
409
14
    return (entry);
410
14
}
411
412
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)
413
6
{
414
6
    lbm_dstream_entry_t * entry;
415
6
    uint32_t keyval[LBM_DSTREAM_STREAM_KEY_ELEMENT_COUNT];
416
6
    wmem_tree_key_t tkey[2];
417
418
6
    entry = lbm_stream_dstream_find(endpoint_a, endpoint_b);
419
6
    if (entry != NULL)
420
0
    {
421
0
        return (entry);
422
0
    }
423
6
    entry = wmem_new(wmem_file_scope(), lbm_dstream_entry_t);
424
6
    entry->domain_1 = endpoint_a->domain;
425
6
    copy_address_wmem(wmem_file_scope(), &(entry->addr_1), &(endpoint_a->addr));
426
6
    entry->port_1 = endpoint_a->port;
427
6
    entry->domain_2 = endpoint_b->domain;
428
6
    copy_address_wmem(wmem_file_scope(), &(entry->addr_2), &(endpoint_b->addr));
429
6
    entry->port_2 = endpoint_b->port;
430
6
    lbm_stream_order_dstream_key(entry);
431
6
    entry->channel = lbm_channel_assign(LBM_CHANNEL_STREAM_TCP);
432
6
    entry->next_substream_id = 1;
433
6
    entry->first_frame = ~((uint32_t)0);
434
6
    entry->last_frame = 0;
435
6
    entry->messages = 0;
436
6
    entry->bytes = 0;
437
6
    entry->substream_list = wmem_tree_new(wmem_file_scope());
438
6
    lbm_dstream_stream_build_key(keyval, tkey, entry);
439
6
    wmem_tree_insert32_array(domain_stream_table, tkey, (void *) entry);
440
6
    return (entry);
441
6
}
442
443
static void lbm_dstream_substream_build_key(uint32_t * key_value, wmem_tree_key_t * key, const lbm_dstream_substream_entry_t * substream)
444
20
{
445
20
    uint32_t val;
446
447
    /* Note: for the time being we only support IPv4 addresses (currently enforced in the dissectors), so
448
       assume it's an IPv4 address. memcpy to an intermediate value (don't know for sure the address.data field
449
       has any particular alignment) to prevent any alignment issues with assigning to a 32-bit unsigned int
450
       on certain platforms.
451
    */
452
20
    val = lbmc_addr_key(&substream->src_addr);
453
20
    key_value[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_SRC_ADDR] = val;
454
20
    key_value[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_SRC_PORT] = (uint32_t) substream->src_port;
455
20
    val = lbmc_addr_key(&substream->dst_addr);
456
20
    key_value[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_DST_ADDR] = val;
457
20
    key_value[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_DST_PORT] = (uint32_t) substream->dst_port;
458
20
    key_value[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_LBM_STREAM_ID] = substream->lbm_stream_id;
459
20
    key[0].length = LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_COUNT;
460
20
    key[0].key = key_value;
461
20
    key[1].length = 0;
462
20
    key[1].key = NULL;
463
20
}
464
465
static lbm_dstream_substream_entry_t * lbm_stream_dstream_substream_find(lbm_dstream_entry_t * stream, const address * src_addr, uint16_t src_port, const address * dst_addr, uint16_t dst_port, uint32_t stream_id)
466
14
{
467
14
    lbm_dstream_substream_entry_t key;
468
14
    lbm_dstream_substream_entry_t * entry = NULL;
469
14
    uint32_t keyval[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_COUNT];
470
14
    wmem_tree_key_t tkey[2];
471
472
14
    memset((void *)&key, 0, sizeof(lbm_dstream_substream_entry_t));
473
14
    copy_address_shallow(&(key.src_addr), src_addr);
474
14
    key.src_port = src_port;
475
14
    copy_address_shallow(&(key.dst_addr), dst_addr);
476
14
    key.dst_port = dst_port;
477
14
    key.lbm_stream_id = stream_id;
478
14
    lbm_dstream_substream_build_key(keyval, tkey, &key);
479
14
    entry = (lbm_dstream_substream_entry_t *) wmem_tree_lookup32_array(stream->substream_list, tkey);
480
14
    return (entry);
481
14
}
482
483
static lbm_dstream_substream_entry_t * lbm_stream_dstream_substream_add(lbm_dstream_entry_t * stream, const address * src_addr, uint16_t src_port, const address * dst_addr, uint16_t dst_port, uint32_t stream_id)
484
6
{
485
6
    lbm_dstream_substream_entry_t * entry;
486
6
    uint32_t keyval[LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_COUNT];
487
6
    wmem_tree_key_t tkey[2];
488
489
6
    entry = lbm_stream_dstream_substream_find(stream, src_addr, src_port, dst_addr, dst_port, stream_id);
490
6
    if (entry != NULL)
491
0
    {
492
0
        return (entry);
493
0
    }
494
6
    entry = wmem_new(wmem_file_scope(), lbm_dstream_substream_entry_t);
495
6
    copy_address_wmem(wmem_file_scope(), &(entry->src_addr), src_addr);
496
6
    entry->src_port = src_port;
497
6
    copy_address_wmem(wmem_file_scope(), &(entry->dst_addr), dst_addr);
498
6
    entry->dst_port = dst_port;
499
6
    entry->lbm_stream_id = stream_id;
500
6
    entry->parent = stream;
501
6
    entry->substream_id = stream->next_substream_id++;
502
6
    entry->first_frame = ~((uint32_t)0);
503
6
    entry->last_frame = 0;
504
6
    entry->messages = 0;
505
6
    entry->bytes = 0;
506
6
    lbm_dstream_substream_build_key(keyval, tkey, entry);
507
6
    wmem_tree_insert32_array(stream->substream_list, tkey, (void *) entry);
508
6
    return (entry);
509
6
}
510
511
static void lbm_stream_dstream_substream_update(lbm_dstream_substream_entry_t * substream, uint16_t length, uint32_t frame)
512
8
{
513
8
    substream->messages++;
514
8
    substream->parent->messages++;
515
8
    substream->bytes += (uint32_t)length;
516
8
    substream->parent->bytes += (uint32_t)length;
517
8
    if (frame < substream->first_frame)
518
6
    {
519
6
        substream->first_frame = frame;
520
6
    }
521
8
    if (frame < substream->parent->first_frame)
522
6
    {
523
6
        substream->parent->first_frame = frame;
524
6
    }
525
8
    if (frame > substream->last_frame)
526
8
    {
527
8
        substream->last_frame = frame;
528
8
    }
529
8
    if (frame > substream->parent->last_frame)
530
8
    {
531
8
        substream->parent->last_frame = frame;
532
8
    }
533
8
}
534
535
/*----------------------------------------------------------------------------*/
536
/* Packet layouts.                                                            */
537
/*----------------------------------------------------------------------------*/
538
539
/* LBMC header */
540
typedef struct
541
{
542
    lbm_uint8_t ver_type;
543
    lbm_uint8_t next_hdr;
544
    lbm_uint16_t msglen;
545
    lbm_uint32_t tidx;
546
    lbm_uint32_t sqn;
547
} lbmc_hdr_t;
548
3.26k
#define O_LBMC_HDR_T_VER_TYPE OFFSETOF(lbmc_hdr_t, ver_type)
549
1.97k
#define L_LBMC_HDR_T_VER_TYPE SIZEOF(lbmc_hdr_t, ver_type)
550
1.91k
#define O_LBMC_HDR_T_NEXT_HDR OFFSETOF(lbmc_hdr_t, next_hdr)
551
1.32k
#define L_LBMC_HDR_T_NEXT_HDR SIZEOF(lbmc_hdr_t, next_hdr)
552
3.72k
#define O_LBMC_HDR_T_MSGLEN OFFSETOF(lbmc_hdr_t, msglen)
553
3.16k
#define L_LBMC_HDR_T_MSGLEN SIZEOF(lbmc_hdr_t, msglen)
554
996
#define O_LBMC_HDR_T_TIDX OFFSETOF(lbmc_hdr_t, tidx)
555
493
#define L_LBMC_HDR_T_TIDX SIZEOF(lbmc_hdr_t, tidx)
556
493
#define O_LBMC_HDR_T_SQN OFFSETOF(lbmc_hdr_t, sqn)
557
493
#define L_LBMC_HDR_T_SQN SIZEOF(lbmc_hdr_t, sqn)
558
503
#define L_LBMC_HDR_T (int) sizeof(lbmc_hdr_t)
559
560
/* LBMC control header */
561
typedef struct
562
{
563
    lbm_uint8_t ver_type;
564
    lbm_uint8_t next_hdr;
565
    lbm_uint16_t msglen;
566
} lbmc_cntl_hdr_t;
567
#define O_LBMC_CNTL_HDR_T_VER_TYPE OFFSETOF(lbmc_cntl_hdr_t, ver_type)
568
#define L_LBMC_CNTL_HDR_T_VER_TYPE SIZEOF(lbmc_cntl_hdr_t, ver_type)
569
#define O_LBMC_CNTL_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_hdr_t, next_hdr)
570
#define L_LBMC_CNTL_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_hdr_t, next_hdr)
571
#define O_LBMC_CNTL_HDR_T_MSGLEN OFFSETOF(lbmc_cntl_hdr_t, msglen)
572
#define L_LBMC_CNTL_HDR_T_MSGLEN SIZEOF(lbmc_cntl_hdr_t, msglen)
573
150
#define L_LBMC_CNTL_HDR_T (int) sizeof(lbmc_cntl_hdr_t)
574
575
16
#define LBMC_HDR_VER_TYPE_VER_MASK 0xF0
576
16
#define LBMC_HDR_VER_TYPE_TYPE_MASK 0x0F
577
578
/* Minimal LBMC header */
579
typedef struct
580
{
581
    lbm_uint8_t ver_type;
582
    lbm_uint8_t next_hdr;
583
    lbm_uint16_t msglen;
584
} lbmc_minimal_hdr_t;
585
#define O_LBMC_MINIMAL_HDR_T_VER_TYPE OFFSETOF(lbmc_minimal_hdr_t, ver_type)
586
#define L_LBMC_MINIMAL_HDR_T_VER_TYPE SIZEOF(lbmc_minimal_hdr_t, ver_type)
587
#define O_LBMC_MINIMAL_HDR_T_NEXT_HDR OFFSETOF(lbmc_minimal_hdr_t, next_hdr)
588
#define L_LBMC_MINIMAL_HDR_T_NEXT_HDR SIZEOF(lbmc_minimal_hdr_t, next_hdr)
589
653
#define O_LBMC_MINIMAL_HDR_T_MSGLEN OFFSETOF(lbmc_minimal_hdr_t, msglen)
590
#define L_LBMC_MINIMAL_HDR_T_MSGLEN SIZEOF(lbmc_minimal_hdr_t, msglen)
591
1.05k
#define L_LBMC_MINIMAL_HDR_T (int) sizeof(lbmc_minimal_hdr_t)
592
593
1.30k
#define LBMC_HDR_VER(x) (x >> 4)
594
1.95k
#define LBMC_HDR_TYPE(x) (x & 0xF)
595
596
/* LBMC basic header */
597
typedef struct
598
{
599
    lbm_uint8_t next_hdr;
600
    lbm_uint8_t hdr_len;
601
    lbm_uint16_t res;
602
} lbmc_basic_hdr_t;
603
1.84k
#define O_LBMC_BASIC_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
604
#define L_LBMC_BASIC_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
605
2.15k
#define O_LBMC_BASIC_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
606
#define L_LBMC_BASIC_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
607
#define O_LBMC_BASIC_HDR_T_RES OFFSETOF(lbmc_basic_hdr_t, res)
608
#define L_LBMC_BASIC_HDR_T_RES SIZEOF(lbmc_basic_hdr_t, res)
609
2.27k
#define L_LBMC_BASIC_HDR_T (int) sizeof(lbmc_basic_hdr_t)
610
611
/* LBMC fragment header */
612
typedef struct
613
{
614
    lbm_uint8_t next_hdr;
615
    lbm_uint8_t hdr_len;
616
    lbm_uint16_t flags;
617
    lbm_uint32_t first_sqn;
618
    lbm_uint32_t offset;
619
    lbm_uint32_t len;
620
} lbmc_frag_hdr_t;
621
40
#define O_LBMC_FRAG_HDR_T_NEXT_HDR OFFSETOF(lbmc_frag_hdr_t, next_hdr)
622
40
#define L_LBMC_FRAG_HDR_T_NEXT_HDR SIZEOF(lbmc_frag_hdr_t, next_hdr)
623
40
#define O_LBMC_FRAG_HDR_T_HDR_LEN OFFSETOF(lbmc_frag_hdr_t, hdr_len)
624
40
#define L_LBMC_FRAG_HDR_T_HDR_LEN SIZEOF(lbmc_frag_hdr_t, hdr_len)
625
40
#define O_LBMC_FRAG_HDR_T_FLAGS OFFSETOF(lbmc_frag_hdr_t, flags)
626
16
#define L_LBMC_FRAG_HDR_T_FLAGS SIZEOF(lbmc_frag_hdr_t, flags)
627
75
#define O_LBMC_FRAG_HDR_T_FIRST_SQN OFFSETOF(lbmc_frag_hdr_t, first_sqn)
628
40
#define L_LBMC_FRAG_HDR_T_FIRST_SQN SIZEOF(lbmc_frag_hdr_t, first_sqn)
629
75
#define O_LBMC_FRAG_HDR_T_OFFSET OFFSETOF(lbmc_frag_hdr_t, offset)
630
40
#define L_LBMC_FRAG_HDR_T_OFFSET SIZEOF(lbmc_frag_hdr_t, offset)
631
75
#define O_LBMC_FRAG_HDR_T_LEN OFFSETOF(lbmc_frag_hdr_t, len)
632
40
#define L_LBMC_FRAG_HDR_T_LEN SIZEOF(lbmc_frag_hdr_t, len)
633
80
#define L_LBMC_FRAG_HDR_T (int) sizeof(lbmc_frag_hdr_t)
634
635
/* LBMC batch header */
636
typedef struct
637
{
638
    lbm_uint8_t next_hdr;
639
    lbm_uint8_t hdr_len;
640
    lbm_uint16_t flags;
641
} lbmc_batch_hdr_t;
642
47
#define O_LBMC_BATCH_HDR_T_NEXT_HDR OFFSETOF(lbmc_batch_hdr_t, next_hdr)
643
47
#define L_LBMC_BATCH_HDR_T_NEXT_HDR SIZEOF(lbmc_batch_hdr_t, next_hdr)
644
47
#define O_LBMC_BATCH_HDR_T_HDR_LEN OFFSETOF(lbmc_batch_hdr_t, hdr_len)
645
47
#define L_LBMC_BATCH_HDR_T_HDR_LEN SIZEOF(lbmc_batch_hdr_t, hdr_len)
646
47
#define O_LBMC_BATCH_HDR_T_FLAGS OFFSETOF(lbmc_batch_hdr_t, flags)
647
48
#define L_LBMC_BATCH_HDR_T_FLAGS SIZEOF(lbmc_batch_hdr_t, flags)
648
94
#define L_LBMC_BATCH_HDR_T (int) sizeof(lbmc_batch_hdr_t)
649
650
/* LBMC TCP request header */
651
typedef struct
652
{
653
    lbm_uint8_t next_hdr;
654
    lbm_uint8_t hdr_len;
655
    lbm_uint8_t res;
656
    lbm_uint8_t transport;
657
    lbm_uint32_t qidx;
658
    lbm_uint16_t port;
659
    lbm_uint16_t reserved;
660
    lbm_uint32_t ipaddr;
661
} lbmc_tcp_request_hdr_t;
662
11
#define O_LBMC_TCP_REQUEST_HDR_T_NEXT_HDR OFFSETOF(lbmc_tcp_request_hdr_t, next_hdr)
663
11
#define L_LBMC_TCP_REQUEST_HDR_T_NEXT_HDR SIZEOF(lbmc_tcp_request_hdr_t, next_hdr)
664
11
#define O_LBMC_TCP_REQUEST_HDR_T_HDR_LEN OFFSETOF(lbmc_tcp_request_hdr_t, hdr_len)
665
11
#define L_LBMC_TCP_REQUEST_HDR_T_HDR_LEN SIZEOF(lbmc_tcp_request_hdr_t, hdr_len)
666
11
#define O_LBMC_TCP_REQUEST_HDR_T_FLAGS OFFSETOF(lbmc_tcp_request_hdr_t, res)
667
16
#define L_LBMC_TCP_REQUEST_HDR_T_FLAGS SIZEOF(lbmc_tcp_request_hdr_t, res)
668
11
#define O_LBMC_TCP_REQUEST_HDR_T_TRANSPORT OFFSETOF(lbmc_tcp_request_hdr_t, transport)
669
11
#define L_LBMC_TCP_REQUEST_HDR_T_TRANSPORT SIZEOF(lbmc_tcp_request_hdr_t, transport)
670
11
#define O_LBMC_TCP_REQUEST_HDR_T_QIDX OFFSETOF(lbmc_tcp_request_hdr_t, qidx)
671
11
#define L_LBMC_TCP_REQUEST_HDR_T_QIDX SIZEOF(lbmc_tcp_request_hdr_t, qidx)
672
11
#define O_LBMC_TCP_REQUEST_HDR_T_PORT OFFSETOF(lbmc_tcp_request_hdr_t, port)
673
11
#define L_LBMC_TCP_REQUEST_HDR_T_PORT SIZEOF(lbmc_tcp_request_hdr_t, port)
674
11
#define O_LBMC_TCP_REQUEST_HDR_T_RESERVED OFFSETOF(lbmc_tcp_request_hdr_t, reserved)
675
11
#define L_LBMC_TCP_REQUEST_HDR_T_RESERVED SIZEOF(lbmc_tcp_request_hdr_t, reserved)
676
11
#define O_LBMC_TCP_REQUEST_HDR_T_IPADDR OFFSETOF(lbmc_tcp_request_hdr_t, ipaddr)
677
11
#define L_LBMC_TCP_REQUEST_HDR_T_IPADDR SIZEOF(lbmc_tcp_request_hdr_t, ipaddr)
678
22
#define L_LBMC_TCP_REQUEST_HDR_T (int) sizeof(lbmc_tcp_request_hdr_t)
679
680
/* LBMC topicname header (an extension to lbmc_basic_hdr_t) */
681
41
#define O_LBMC_TOPICNAME_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
682
41
#define L_LBMC_TOPICNAME_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
683
82
#define O_LBMC_TOPICNAME_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
684
41
#define L_LBMC_TOPICNAME_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
685
80
#define O_LBMC_TOPICNAME_HDR_T_FLAGS OFFSETOF(lbmc_basic_hdr_t, res)
686
55
#define L_LBMC_TOPICNAME_HDR_T_FLAGS SIZEOF(lbmc_basic_hdr_t, res)
687
#define O_LBMC_TOPICNAME_HDR_T_TOPIC (OFFSETOF(lbmc_basic_hdr_t, res) + SIZEOF(lbmc_basic_hdr_t, res))
688
689
/* LBMC appheader header. */
690
69
#define O_LBMC_APPHDR_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
691
69
#define L_LBMC_APPHDR_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
692
138
#define O_LBMC_APPHDR_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
693
69
#define L_LBMC_APPHDR_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
694
274
#define O_LBMC_APPHDR_HDR_T_CODE OFFSETOF(lbmc_basic_hdr_t, res)
695
290
#define L_LBMC_APPHDR_HDR_T_CODE SIZEOF(lbmc_basic_hdr_t, res)
696
#define O_LBMC_APPHDR_HDR_T_DATA (OFFSETOF(lbmc_basic_hdr_t, res) + SIZEOF(lbmc_basic_hdr_t, res))
697
698
16
#define LBMC_APPHDR_CODE_MASK 0x7fff
699
700
/* LBMC appheader chain element */
701
typedef struct
702
{
703
    lbm_uint8_t next_hdr;
704
    lbm_uint8_t hdr_len;
705
    lbm_uint16_t res;
706
} lbmc_apphdr_chain_element_t;
707
159
#define O_LBMC_APPHDR_CHAIN_ELEMENT_T_NEXT_HDR OFFSETOF(lbmc_apphdr_chain_element_t, next_hdr)
708
88
#define L_LBMC_APPHDR_CHAIN_ELEMENT_T_NEXT_HDR SIZEOF(lbmc_apphdr_chain_element_t, next_hdr)
709
176
#define O_LBMC_APPHDR_CHAIN_ELEMENT_T_HDR_LEN OFFSETOF(lbmc_apphdr_chain_element_t, hdr_len)
710
88
#define L_LBMC_APPHDR_CHAIN_ELEMENT_T_HDR_LEN SIZEOF(lbmc_apphdr_chain_element_t, hdr_len)
711
122
#define O_LBMC_APPHDR_CHAIN_ELEMENT_T_RES OFFSETOF(lbmc_apphdr_chain_element_t, res)
712
122
#define L_LBMC_APPHDR_CHAIN_ELEMENT_T_RES SIZEOF(lbmc_apphdr_chain_element_t, res)
713
153
#define L_LBMC_APPHDR_CHAIN_ELEMENT_T_MIN (int) sizeof(lbmc_apphdr_chain_element_t)
714
715
/* LBMC appheader chain message properties element */
716
typedef struct
717
{
718
    lbm_uint8_t next_hdr;
719
    lbm_uint8_t hdr_len;
720
    lbm_uint16_t res;
721
    lbm_uint32_t len;
722
} lbmc_apphdr_chain_msgprop_element_t;
723
2
#define O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_NEXT_HDR OFFSETOF(lbmc_apphdr_chain_msgprop_element_t, next_hdr)
724
2
#define L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_NEXT_HDR SIZEOF(lbmc_apphdr_chain_msgprop_element_t, next_hdr)
725
4
#define O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_HDR_LEN OFFSETOF(lbmc_apphdr_chain_msgprop_element_t, hdr_len)
726
2
#define L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_HDR_LEN SIZEOF(lbmc_apphdr_chain_msgprop_element_t, hdr_len)
727
1
#define O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_RES OFFSETOF(lbmc_apphdr_chain_msgprop_element_t, res)
728
1
#define L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_RES SIZEOF(lbmc_apphdr_chain_msgprop_element_t, res)
729
2
#define O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_LEN OFFSETOF(lbmc_apphdr_chain_msgprop_element_t, len)
730
1
#define L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_LEN SIZEOF(lbmc_apphdr_chain_msgprop_element_t, len)
731
1
#define L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T (int) sizeof(lbmc_apphdr_chain_msgprop_element_t)
732
733
/* LBMC appheader chain header */
734
typedef struct
735
{
736
    lbm_uint8_t next_hdr;
737
    lbm_uint8_t hdr_len;
738
    lbm_uint8_t res;
739
    lbm_uint8_t first_chain_hdr;
740
} lbmc_apphdr_chain_hdr_t;
741
21
#define O_LBMC_APPHDR_CHAIN_HDR_T_NEXT_HDR OFFSETOF(lbmc_apphdr_chain_hdr_t, next_hdr)
742
21
#define L_LBMC_APPHDR_CHAIN_HDR_T_NEXT_HDR SIZEOF(lbmc_apphdr_chain_hdr_t, next_hdr)
743
42
#define O_LBMC_APPHDR_CHAIN_HDR_T_HDR_LEN OFFSETOF(lbmc_apphdr_chain_hdr_t, hdr_len)
744
21
#define L_LBMC_APPHDR_CHAIN_HDR_T_HDR_LEN SIZEOF(lbmc_apphdr_chain_hdr_t, hdr_len)
745
21
#define O_LBMC_APPHDR_CHAIN_HDR_T_RES OFFSETOF(lbmc_apphdr_chain_hdr_t, res)
746
21
#define L_LBMC_APPHDR_CHAIN_HDR_T_RES SIZEOF(lbmc_apphdr_chain_hdr_t, res)
747
42
#define O_LBMC_APPHDR_CHAIN_HDR_T_FIRST_CHAIN_HDR OFFSETOF(lbmc_apphdr_chain_hdr_t, first_chain_hdr)
748
21
#define L_LBMC_APPHDR_CHAIN_HDR_T_FIRST_CHAIN_HDR SIZEOF(lbmc_apphdr_chain_hdr_t, first_chain_hdr)
749
63
#define L_LBMC_APPHDR_CHAIN_HDR_T (int) sizeof(lbmc_apphdr_chain_hdr_t)
750
751
/* LBMC UMQ Message ID header */
752
typedef struct
753
{
754
    lbm_uint8_t next_hdr;
755
    lbm_uint8_t hdr_len;
756
    lbm_uint16_t flags;
757
    lbm_uint8_t msgid_regid[8];
758
    lbm_uint8_t msgid_stamp[8];
759
} lbmc_umq_msgid_hdr_t;
760
14
#define O_LBMC_UMQ_MSGID_HDR_T_NEXT_HDR OFFSETOF(lbmc_umq_msgid_hdr_t, next_hdr)
761
14
#define L_LBMC_UMQ_MSGID_HDR_T_NEXT_HDR SIZEOF(lbmc_umq_msgid_hdr_t, next_hdr)
762
14
#define O_LBMC_UMQ_MSGID_HDR_T_HDR_LEN OFFSETOF(lbmc_umq_msgid_hdr_t, hdr_len)
763
14
#define L_LBMC_UMQ_MSGID_HDR_T_HDR_LEN SIZEOF(lbmc_umq_msgid_hdr_t, hdr_len)
764
14
#define O_LBMC_UMQ_MSGID_HDR_T_FLAGS OFFSETOF(lbmc_umq_msgid_hdr_t, flags)
765
16
#define L_LBMC_UMQ_MSGID_HDR_T_FLAGS SIZEOF(lbmc_umq_msgid_hdr_t, flags)
766
14
#define O_LBMC_UMQ_MSGID_HDR_T_MSGID_REGID OFFSETOF(lbmc_umq_msgid_hdr_t, msgid_regid)
767
14
#define L_LBMC_UMQ_MSGID_HDR_T_MSGID_REGID SIZEOF(lbmc_umq_msgid_hdr_t, msgid_regid)
768
14
#define O_LBMC_UMQ_MSGID_HDR_T_MSGID_STAMP OFFSETOF(lbmc_umq_msgid_hdr_t, msgid_stamp)
769
14
#define L_LBMC_UMQ_MSGID_HDR_T_MSGID_STAMP SIZEOF(lbmc_umq_msgid_hdr_t, msgid_stamp)
770
28
#define L_LBMC_UMQ_MSGID_HDR_T (int) sizeof(lbmc_umq_msgid_hdr_t)
771
772
/* LBMC UMQ SQD receive header */
773
typedef struct
774
{
775
    lbm_uint8_t next_hdr;
776
    lbm_uint8_t hdr_len;
777
    lbm_uint16_t flags;
778
    lbm_uint32_t queue_id;
779
    lbm_uint32_t queue_ver;
780
    lbm_uint32_t rcr_idx;
781
    lbm_uint32_t assign_id;
782
} lbmc_umq_sqd_rcv_hdr_t;
783
10
#define O_LBMC_UMQ_SQD_RCV_HDR_T_NEXT_HDR OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, next_hdr)
784
10
#define L_LBMC_UMQ_SQD_RCV_HDR_T_NEXT_HDR SIZEOF(lbmc_umq_sqd_rcv_hdr_t, next_hdr)
785
10
#define O_LBMC_UMQ_SQD_RCV_HDR_T_HDR_LEN OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, hdr_len)
786
10
#define L_LBMC_UMQ_SQD_RCV_HDR_T_HDR_LEN SIZEOF(lbmc_umq_sqd_rcv_hdr_t, hdr_len)
787
10
#define O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, flags)
788
96
#define L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS SIZEOF(lbmc_umq_sqd_rcv_hdr_t, flags)
789
10
#define O_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_ID OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, queue_id)
790
10
#define L_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_ID SIZEOF(lbmc_umq_sqd_rcv_hdr_t, queue_id)
791
10
#define O_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_VER OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, queue_ver)
792
10
#define L_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_VER SIZEOF(lbmc_umq_sqd_rcv_hdr_t, queue_ver)
793
20
#define O_LBMC_UMQ_SQD_RCV_HDR_T_RCR_IDX OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, rcr_idx)
794
10
#define L_LBMC_UMQ_SQD_RCV_HDR_T_RCR_IDX SIZEOF(lbmc_umq_sqd_rcv_hdr_t, rcr_idx)
795
10
#define O_LBMC_UMQ_SQD_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_umq_sqd_rcv_hdr_t, assign_id)
796
10
#define L_LBMC_UMQ_SQD_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_umq_sqd_rcv_hdr_t, assign_id)
797
20
#define L_LBMC_UMQ_SQD_RCV_HDR_T (int) sizeof(lbmc_umq_sqd_rcv_hdr_t)
798
799
/* LBMC UMQ resubmission header */
800
typedef struct
801
{
802
    lbm_uint8_t next_hdr;
803
    lbm_uint8_t hdr_len;
804
    lbm_uint16_t flags;
805
    lbm_uint32_t rcr_idx;
806
    lbm_uint32_t resp_ip;
807
    lbm_uint16_t resp_port;
808
    lbm_uint16_t appset_idx;
809
} lbmc_umq_resub_hdr_t;
810
12
#define O_LBMC_UMQ_RESUB_HDR_T_NEXT_HDR OFFSETOF(lbmc_umq_resub_hdr_t, next_hdr)
811
12
#define L_LBMC_UMQ_RESUB_HDR_T_NEXT_HDR SIZEOF(lbmc_umq_resub_hdr_t, next_hdr)
812
12
#define O_LBMC_UMQ_RESUB_HDR_T_HDR_LEN OFFSETOF(lbmc_umq_resub_hdr_t, hdr_len)
813
12
#define L_LBMC_UMQ_RESUB_HDR_T_HDR_LEN SIZEOF(lbmc_umq_resub_hdr_t, hdr_len)
814
12
#define O_LBMC_UMQ_RESUB_HDR_T_FLAGS OFFSETOF(lbmc_umq_resub_hdr_t, flags)
815
32
#define L_LBMC_UMQ_RESUB_HDR_T_FLAGS SIZEOF(lbmc_umq_resub_hdr_t, flags)
816
12
#define O_LBMC_UMQ_RESUB_HDR_T_RCR_IDX OFFSETOF(lbmc_umq_resub_hdr_t, rcr_idx)
817
12
#define L_LBMC_UMQ_RESUB_HDR_T_RCR_IDX SIZEOF(lbmc_umq_resub_hdr_t, rcr_idx)
818
12
#define O_LBMC_UMQ_RESUB_HDR_T_RESP_IP OFFSETOF(lbmc_umq_resub_hdr_t, resp_ip)
819
12
#define L_LBMC_UMQ_RESUB_HDR_T_RESP_IP SIZEOF(lbmc_umq_resub_hdr_t, resp_ip)
820
12
#define O_LBMC_UMQ_RESUB_HDR_T_RESP_PORT OFFSETOF(lbmc_umq_resub_hdr_t, resp_port)
821
12
#define L_LBMC_UMQ_RESUB_HDR_T_RESP_PORT SIZEOF(lbmc_umq_resub_hdr_t, resp_port)
822
12
#define O_LBMC_UMQ_RESUB_HDR_T_APPSET_IDX OFFSETOF(lbmc_umq_resub_hdr_t, appset_idx)
823
12
#define L_LBMC_UMQ_RESUB_HDR_T_APPSET_IDX SIZEOF(lbmc_umq_resub_hdr_t, appset_idx)
824
24
#define L_LBMC_UMQ_RESUB_HDR_T (int) sizeof(lbmc_umq_resub_hdr_t)
825
826
/* LBMC originating transport ID header */
827
typedef struct
828
{
829
    lbm_uint8_t next_hdr;
830
    lbm_uint8_t hdr_len;
831
    lbm_uint16_t flags;
832
    lbm_uint8_t otid[LBM_OTID_BLOCK_SZ];
833
} lbmc_otid_hdr_t;
834
3
#define O_LBMC_OTID_HDR_T_NEXT_HDR OFFSETOF(lbmc_otid_hdr_t, next_hdr)
835
3
#define L_LBMC_OTID_HDR_T_NEXT_HDR SIZEOF(lbmc_otid_hdr_t, next_hdr)
836
3
#define O_LBMC_OTID_HDR_T_HDR_LEN OFFSETOF(lbmc_otid_hdr_t, hdr_len)
837
3
#define L_LBMC_OTID_HDR_T_HDR_LEN SIZEOF(lbmc_otid_hdr_t, hdr_len)
838
3
#define O_LBMC_OTID_HDR_T_FLAGS OFFSETOF(lbmc_otid_hdr_t, flags)
839
16
#define L_LBMC_OTID_HDR_T_FLAGS SIZEOF(lbmc_otid_hdr_t, flags)
840
3
#define O_LBMC_OTID_HDR_T_OTID OFFSETOF(lbmc_otid_hdr_t, otid)
841
3
#define L_LBMC_OTID_HDR_T_OTID SIZEOF(lbmc_otid_hdr_t, otid)
842
6
#define L_LBMC_OTID_HDR_T (int) sizeof(lbmc_otid_hdr_t)
843
844
/* LBMC context instance header(s) */
845
typedef struct
846
{
847
    lbm_uint8_t next_hdr;
848
    lbm_uint8_t hdr_len;
849
    lbm_uint16_t flags;
850
    lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
851
} lbmc_ctxinst_hdr_t;
852
70
#define O_LBMC_CTXINST_HDR_T_NEXT_HDR OFFSETOF(lbmc_ctxinst_hdr_t, next_hdr)
853
70
#define L_LBMC_CTXINST_HDR_T_NEXT_HDR SIZEOF(lbmc_ctxinst_hdr_t, next_hdr)
854
70
#define O_LBMC_CTXINST_HDR_T_HDR_LEN OFFSETOF(lbmc_ctxinst_hdr_t, hdr_len)
855
70
#define L_LBMC_CTXINST_HDR_T_HDR_LEN SIZEOF(lbmc_ctxinst_hdr_t, hdr_len)
856
70
#define O_LBMC_CTXINST_HDR_T_FLAGS OFFSETOF(lbmc_ctxinst_hdr_t, flags)
857
16
#define L_LBMC_CTXINST_HDR_T_FLAGS SIZEOF(lbmc_ctxinst_hdr_t, flags)
858
119
#define O_LBMC_CTXINST_HDR_T_CTXINST OFFSETOF(lbmc_ctxinst_hdr_t, ctxinst)
859
119
#define L_LBMC_CTXINST_HDR_T_CTXINST SIZEOF(lbmc_ctxinst_hdr_t, ctxinst)
860
140
#define L_LBMC_CTXINST_HDR_T (int) sizeof(lbmc_ctxinst_hdr_t)
861
862
/* LBMC source index header */
863
typedef struct
864
{
865
    lbm_uint8_t next_hdr;
866
    lbm_uint8_t hdr_len;
867
    lbm_uint16_t flags;
868
    char srcidx[8];
869
} lbmc_srcidx_hdr_t;
870
12
#define O_LBMC_SRCIDX_HDR_T_NEXT_HDR OFFSETOF(lbmc_srcidx_hdr_t, next_hdr)
871
12
#define L_LBMC_SRCIDX_HDR_T_NEXT_HDR SIZEOF(lbmc_srcidx_hdr_t, next_hdr)
872
12
#define O_LBMC_SRCIDX_HDR_T_HDR_LEN OFFSETOF(lbmc_srcidx_hdr_t, hdr_len)
873
12
#define L_LBMC_SRCIDX_HDR_T_HDR_LEN SIZEOF(lbmc_srcidx_hdr_t, hdr_len)
874
12
#define O_LBMC_SRCIDX_HDR_T_FLAGS OFFSETOF(lbmc_srcidx_hdr_t, flags)
875
16
#define L_LBMC_SRCIDX_HDR_T_FLAGS SIZEOF(lbmc_srcidx_hdr_t, flags)
876
12
#define O_LBMC_SRCIDX_HDR_T_SRCIDX OFFSETOF(lbmc_srcidx_hdr_t, srcidx)
877
12
#define L_LBMC_SRCIDX_HDR_T_SRCIDX SIZEOF(lbmc_srcidx_hdr_t, srcidx)
878
24
#define L_LBMC_SRCIDX_HDR_T (int) sizeof(lbmc_srcidx_hdr_t)
879
880
/* LBMC UMQ ULB message header */
881
typedef struct
882
{
883
    lbm_uint8_t next_hdr;
884
    lbm_uint8_t hdr_len;
885
    lbm_uint16_t flags;
886
    lbm_uint32_t queue_id;
887
    lbm_uint32_t ulb_src_id;
888
    lbm_uint32_t assign_id;
889
    lbm_uint16_t appset_idx;
890
    lbm_uint16_t num_ras;
891
} lbmc_umq_ulb_msg_hdr_t;
892
17
#define O_LBMC_UMQ_ULB_MSG_HDR_T_NEXT_HDR OFFSETOF(lbmc_umq_ulb_msg_hdr_t, next_hdr)
893
17
#define L_LBMC_UMQ_ULB_MSG_HDR_T_NEXT_HDR SIZEOF(lbmc_umq_ulb_msg_hdr_t, next_hdr)
894
17
#define O_LBMC_UMQ_ULB_MSG_HDR_T_HDR_LEN OFFSETOF(lbmc_umq_ulb_msg_hdr_t, hdr_len)
895
17
#define L_LBMC_UMQ_ULB_MSG_HDR_T_HDR_LEN SIZEOF(lbmc_umq_ulb_msg_hdr_t, hdr_len)
896
17
#define O_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS OFFSETOF(lbmc_umq_ulb_msg_hdr_t, flags)
897
48
#define L_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS SIZEOF(lbmc_umq_ulb_msg_hdr_t, flags)
898
17
#define O_LBMC_UMQ_ULB_MSG_HDR_T_QUEUE_ID OFFSETOF(lbmc_umq_ulb_msg_hdr_t, queue_id)
899
17
#define L_LBMC_UMQ_ULB_MSG_HDR_T_QUEUE_ID SIZEOF(lbmc_umq_ulb_msg_hdr_t, queue_id)
900
17
#define O_LBMC_UMQ_ULB_MSG_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_umq_ulb_msg_hdr_t, ulb_src_id)
901
17
#define L_LBMC_UMQ_ULB_MSG_HDR_T_ULB_SRC_ID SIZEOF(lbmc_umq_ulb_msg_hdr_t, ulb_src_id)
902
17
#define O_LBMC_UMQ_ULB_MSG_HDR_T_ASSIGN_ID OFFSETOF(lbmc_umq_ulb_msg_hdr_t, assign_id)
903
17
#define L_LBMC_UMQ_ULB_MSG_HDR_T_ASSIGN_ID SIZEOF(lbmc_umq_ulb_msg_hdr_t, assign_id)
904
17
#define O_LBMC_UMQ_ULB_MSG_HDR_T_APPSET_IDX OFFSETOF(lbmc_umq_ulb_msg_hdr_t, appset_idx)
905
17
#define L_LBMC_UMQ_ULB_MSG_HDR_T_APPSET_IDX SIZEOF(lbmc_umq_ulb_msg_hdr_t, appset_idx)
906
17
#define O_LBMC_UMQ_ULB_MSG_HDR_T_NUM_RAS OFFSETOF(lbmc_umq_ulb_msg_hdr_t, num_ras)
907
17
#define L_LBMC_UMQ_ULB_MSG_HDR_T_NUM_RAS SIZEOF(lbmc_umq_ulb_msg_hdr_t, num_ras)
908
34
#define L_LBMC_UMQ_ULB_MSG_HDR_T (int) sizeof(lbmc_umq_ulb_msg_hdr_t)
909
910
/* LBMC control source-side filtering initialization header */
911
typedef struct
912
{
913
    lbm_uint8_t next_hdr;
914
    lbm_uint8_t hdr_len;
915
    lbm_uint8_t flags;
916
    lbm_uint8_t transport;
917
    lbm_uint32_t transport_idx;
918
    lbm_uint32_t client_idx;
919
    lbm_uint16_t ssf_port;
920
    lbm_uint16_t res;
921
    lbm_uint32_t ssf_ip;
922
} lbmc_cntl_ssf_init_hdr_t;
923
8
#define O_LBMC_CNTL_SSF_INIT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ssf_init_hdr_t, next_hdr)
924
8
#define L_LBMC_CNTL_SSF_INIT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ssf_init_hdr_t, next_hdr)
925
8
#define O_LBMC_CNTL_SSF_INIT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ssf_init_hdr_t, hdr_len)
926
8
#define L_LBMC_CNTL_SSF_INIT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ssf_init_hdr_t, hdr_len)
927
8
#define O_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ssf_init_hdr_t, flags)
928
48
#define L_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS SIZEOF(lbmc_cntl_ssf_init_hdr_t, flags)
929
8
#define O_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT OFFSETOF(lbmc_cntl_ssf_init_hdr_t, transport)
930
8
#define L_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT SIZEOF(lbmc_cntl_ssf_init_hdr_t, transport)
931
8
#define O_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ssf_init_hdr_t, transport_idx)
932
8
#define L_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ssf_init_hdr_t, transport_idx)
933
8
#define O_LBMC_CNTL_SSF_INIT_HDR_T_CLIENT_IDX OFFSETOF(lbmc_cntl_ssf_init_hdr_t, client_idx)
934
8
#define L_LBMC_CNTL_SSF_INIT_HDR_T_CLIENT_IDX SIZEOF(lbmc_cntl_ssf_init_hdr_t, client_idx)
935
8
#define O_LBMC_CNTL_SSF_INIT_HDR_T_SSF_PORT OFFSETOF(lbmc_cntl_ssf_init_hdr_t, ssf_port)
936
8
#define L_LBMC_CNTL_SSF_INIT_HDR_T_SSF_PORT SIZEOF(lbmc_cntl_ssf_init_hdr_t, ssf_port)
937
8
#define O_LBMC_CNTL_SSF_INIT_HDR_T_RES OFFSETOF(lbmc_cntl_ssf_init_hdr_t, res)
938
8
#define L_LBMC_CNTL_SSF_INIT_HDR_T_RES SIZEOF(lbmc_cntl_ssf_init_hdr_t, res)
939
8
#define O_LBMC_CNTL_SSF_INIT_HDR_T_SSF_IP OFFSETOF(lbmc_cntl_ssf_init_hdr_t, ssf_ip)
940
8
#define L_LBMC_CNTL_SSF_INIT_HDR_T_SSF_IP SIZEOF(lbmc_cntl_ssf_init_hdr_t, ssf_ip)
941
16
#define L_LBMC_CNTL_SSF_INIT_HDR_T (int) sizeof(lbmc_cntl_ssf_init_hdr_t)
942
943
/* LBMC control source-side filtering control request header */
944
typedef struct
945
{
946
    lbm_uint8_t next_hdr;
947
    lbm_uint8_t hdr_len;
948
    lbm_uint8_t res;
949
    lbm_uint8_t mode;
950
    lbm_uint32_t transport_idx;
951
    lbm_uint32_t topic_idx;
952
    lbm_uint32_t client_idx;
953
} lbmc_cntl_ssf_creq_hdr_t;
954
13
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, next_hdr)
955
13
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ssf_creq_hdr_t, next_hdr)
956
13
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, hdr_len)
957
13
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ssf_creq_hdr_t, hdr_len)
958
13
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, res)
959
16
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_ssf_creq_hdr_t, res)
960
13
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_MODE OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, mode)
961
13
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_MODE SIZEOF(lbmc_cntl_ssf_creq_hdr_t, mode)
962
13
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, transport_idx)
963
13
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ssf_creq_hdr_t, transport_idx)
964
13
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, topic_idx)
965
13
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_ssf_creq_hdr_t, topic_idx)
966
13
#define O_LBMC_CNTL_SSF_CREQ_HDR_T_CLIENT_IDX OFFSETOF(lbmc_cntl_ssf_creq_hdr_t, client_idx)
967
13
#define L_LBMC_CNTL_SSF_CREQ_HDR_T_CLIENT_IDX SIZEOF(lbmc_cntl_ssf_creq_hdr_t, client_idx)
968
26
#define L_LBMC_CNTL_SSF_CREQ_HDR_T (int) sizeof(lbmc_cntl_ssf_creq_hdr_t)
969
970
/* LBMC control UME persistent registration header */
971
typedef struct
972
{
973
    lbm_uint8_t next_hdr;
974
    lbm_uint8_t hdr_len;
975
    lbm_uint8_t flags;
976
    lbm_uint8_t marker;
977
    lbm_uint32_t reg_id;
978
    lbm_uint32_t transport_idx;
979
    lbm_uint32_t topic_idx;
980
    lbm_uint32_t src_reg_id;
981
    lbm_uint16_t resp_port;
982
    lbm_uint16_t res2;
983
    lbm_uint32_t resp_ip;
984
} lbmc_cntl_ume_preg_hdr_t;
985
2
#define O_LBMC_CNTL_UME_PREG_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_preg_hdr_t, next_hdr)
986
2
#define L_LBMC_CNTL_UME_PREG_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_preg_hdr_t, next_hdr)
987
2
#define O_LBMC_CNTL_UME_PREG_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_preg_hdr_t, hdr_len)
988
2
#define L_LBMC_CNTL_UME_PREG_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_preg_hdr_t, hdr_len)
989
2
#define O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_preg_hdr_t, flags)
990
80
#define L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_preg_hdr_t, flags)
991
4
#define O_LBMC_CNTL_UME_PREG_HDR_T_MARKER OFFSETOF(lbmc_cntl_ume_preg_hdr_t, marker)
992
20
#define L_LBMC_CNTL_UME_PREG_HDR_T_MARKER SIZEOF(lbmc_cntl_ume_preg_hdr_t, marker)
993
2
#define O_LBMC_CNTL_UME_PREG_HDR_T_REG_ID OFFSETOF(lbmc_cntl_ume_preg_hdr_t, reg_id)
994
2
#define L_LBMC_CNTL_UME_PREG_HDR_T_REG_ID SIZEOF(lbmc_cntl_ume_preg_hdr_t, reg_id)
995
2
#define O_LBMC_CNTL_UME_PREG_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_preg_hdr_t, transport_idx)
996
2
#define L_LBMC_CNTL_UME_PREG_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_preg_hdr_t, transport_idx)
997
2
#define O_LBMC_CNTL_UME_PREG_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_ume_preg_hdr_t, topic_idx)
998
2
#define L_LBMC_CNTL_UME_PREG_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_ume_preg_hdr_t, topic_idx)
999
2
#define O_LBMC_CNTL_UME_PREG_HDR_T_SRC_REG_ID OFFSETOF(lbmc_cntl_ume_preg_hdr_t, src_reg_id)
1000
2
#define L_LBMC_CNTL_UME_PREG_HDR_T_SRC_REG_ID SIZEOF(lbmc_cntl_ume_preg_hdr_t, src_reg_id)
1001
2
#define O_LBMC_CNTL_UME_PREG_HDR_T_RESP_PORT OFFSETOF(lbmc_cntl_ume_preg_hdr_t, resp_port)
1002
2
#define L_LBMC_CNTL_UME_PREG_HDR_T_RESP_PORT SIZEOF(lbmc_cntl_ume_preg_hdr_t, resp_port)
1003
2
#define O_LBMC_CNTL_UME_PREG_HDR_T_RES2 OFFSETOF(lbmc_cntl_ume_preg_hdr_t, res2)
1004
2
#define L_LBMC_CNTL_UME_PREG_HDR_T_RES2 SIZEOF(lbmc_cntl_ume_preg_hdr_t, res2)
1005
2
#define O_LBMC_CNTL_UME_PREG_HDR_T_RESP_IP OFFSETOF(lbmc_cntl_ume_preg_hdr_t, resp_ip)
1006
2
#define L_LBMC_CNTL_UME_PREG_HDR_T_RESP_IP SIZEOF(lbmc_cntl_ume_preg_hdr_t, resp_ip)
1007
4
#define L_LBMC_CNTL_UME_PREG_HDR_T (int) sizeof(lbmc_cntl_ume_preg_hdr_t)
1008
1009
#define LBMC_CNTL_UME_PREG_MARKER(x) (x & 0x7F)
1010
32
#define LBMC_CNTL_UME_PREG_MARKER_MASK 0x7F
1011
1012
/* LBMC control UME persistent registration response header */
1013
typedef struct
1014
{
1015
    lbm_uint8_t next_hdr;
1016
    lbm_uint8_t hdr_len;
1017
    lbm_uint8_t code;
1018
    lbm_uint8_t marker;
1019
    lbm_uint32_t reg_id;
1020
    lbm_uint32_t transport_idx;
1021
    lbm_uint32_t topic_idx;
1022
    lbm_uint32_t low_seqnum;
1023
    lbm_uint32_t high_seqnum;
1024
} lbmc_cntl_ume_preg_resp_hdr_t;
1025
7
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, next_hdr)
1026
7
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, next_hdr)
1027
7
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, hdr_len)
1028
7
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, hdr_len)
1029
14
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, code)
1030
96
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, code)
1031
14
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, marker)
1032
30
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, marker)
1033
7
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_REG_ID OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, reg_id)
1034
7
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_REG_ID SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, reg_id)
1035
7
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, transport_idx)
1036
7
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, transport_idx)
1037
7
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, topic_idx)
1038
7
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, topic_idx)
1039
7
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_LOW_SEQNUM OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, low_seqnum)
1040
7
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_LOW_SEQNUM SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, low_seqnum)
1041
7
#define O_LBMC_CNTL_UME_PREG_RESP_HDR_T_HIGH_SEQNUM OFFSETOF(lbmc_cntl_ume_preg_resp_hdr_t, high_seqnum)
1042
7
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T_HIGH_SEQNUM SIZEOF(lbmc_cntl_ume_preg_resp_hdr_t, high_seqnum)
1043
14
#define L_LBMC_CNTL_UME_PREG_RESP_HDR_T (int) sizeof(lbmc_cntl_ume_preg_resp_hdr_t)
1044
1045
#define LBMC_CNTL_UME_PREG_RESP_CODE(x) (x & 0x0F)
1046
16
#define LBMC_CNTL_UME_PREG_RESP_CODE_MASK 0x0F
1047
1048
/* LBMC control UME acknowledgement header */
1049
typedef struct
1050
{
1051
    lbm_uint8_t next_hdr;
1052
    lbm_uint8_t hdr_len;
1053
    lbm_uint8_t flags;
1054
    lbm_uint8_t type;
1055
    lbm_uint32_t transport_idx;
1056
    lbm_uint32_t id_2;
1057
    lbm_uint32_t rcv_reg_id;
1058
    lbm_uint32_t seqnum;
1059
} lbmc_cntl_ume_ack_hdr_t;
1060
30
#define O_LBMC_CNTL_UME_ACK_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_ack_hdr_t, next_hdr)
1061
30
#define L_LBMC_CNTL_UME_ACK_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_ack_hdr_t, next_hdr)
1062
30
#define O_LBMC_CNTL_UME_ACK_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_ack_hdr_t, hdr_len)
1063
30
#define L_LBMC_CNTL_UME_ACK_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_ack_hdr_t, hdr_len)
1064
30
#define O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_ack_hdr_t, flags)
1065
80
#define L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_ack_hdr_t, flags)
1066
30
#define O_LBMC_CNTL_UME_ACK_HDR_T_TYPE OFFSETOF(lbmc_cntl_ume_ack_hdr_t, type)
1067
30
#define L_LBMC_CNTL_UME_ACK_HDR_T_TYPE SIZEOF(lbmc_cntl_ume_ack_hdr_t, type)
1068
30
#define O_LBMC_CNTL_UME_ACK_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_ack_hdr_t, transport_idx)
1069
30
#define L_LBMC_CNTL_UME_ACK_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_ack_hdr_t, transport_idx)
1070
30
#define O_LBMC_CNTL_UME_ACK_HDR_T_ID_2 OFFSETOF(lbmc_cntl_ume_ack_hdr_t, id_2)
1071
30
#define L_LBMC_CNTL_UME_ACK_HDR_T_ID_2 SIZEOF(lbmc_cntl_ume_ack_hdr_t, id_2)
1072
30
#define O_LBMC_CNTL_UME_ACK_HDR_T_RCV_REG_ID OFFSETOF(lbmc_cntl_ume_ack_hdr_t, rcv_reg_id)
1073
30
#define L_LBMC_CNTL_UME_ACK_HDR_T_RCV_REG_ID SIZEOF(lbmc_cntl_ume_ack_hdr_t, rcv_reg_id)
1074
30
#define O_LBMC_CNTL_UME_ACK_HDR_T_SEQNUM OFFSETOF(lbmc_cntl_ume_ack_hdr_t, seqnum)
1075
30
#define L_LBMC_CNTL_UME_ACK_HDR_T_SEQNUM SIZEOF(lbmc_cntl_ume_ack_hdr_t, seqnum)
1076
60
#define L_LBMC_CNTL_UME_ACK_HDR_T (int) sizeof(lbmc_cntl_ume_ack_hdr_t)
1077
1078
/* LBMC control UME ranged acknowledgement header */
1079
typedef struct
1080
{
1081
    lbm_uint8_t next_hdr;
1082
    lbm_uint8_t hdr_len;
1083
    lbm_uint16_t flags;
1084
    lbm_uint32_t first_seqnum;
1085
    lbm_uint32_t last_seqnum;
1086
} lbmc_cntl_ume_ranged_ack_hdr_t;
1087
21
#define O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_ranged_ack_hdr_t, next_hdr)
1088
21
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_ranged_ack_hdr_t, next_hdr)
1089
21
#define O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_ranged_ack_hdr_t, hdr_len)
1090
21
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_ranged_ack_hdr_t, hdr_len)
1091
21
#define O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_ranged_ack_hdr_t, flags)
1092
16
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_ranged_ack_hdr_t, flags)
1093
21
#define O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FIRST_SEQNUM OFFSETOF(lbmc_cntl_ume_ranged_ack_hdr_t, first_seqnum)
1094
21
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FIRST_SEQNUM SIZEOF(lbmc_cntl_ume_ranged_ack_hdr_t, first_seqnum)
1095
21
#define O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_LAST_SEQNUM OFFSETOF(lbmc_cntl_ume_ranged_ack_hdr_t, last_seqnum)
1096
21
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_LAST_SEQNUM SIZEOF(lbmc_cntl_ume_ranged_ack_hdr_t, last_seqnum)
1097
42
#define L_LBMC_CNTL_UME_RANGED_ACK_HDR_T (int) sizeof(lbmc_cntl_ume_ranged_ack_hdr_t)
1098
1099
/* LBMC control UME acknowledgement ID header */
1100
typedef struct
1101
{
1102
    lbm_uint8_t next_hdr;
1103
    lbm_uint8_t hdr_len;
1104
    lbm_uint16_t flags;
1105
    lbm_uint32_t id;
1106
} lbmc_cntl_ume_ack_id_hdr_t;
1107
11
#define O_LBMC_CNTL_UME_ACK_ID_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_ack_id_hdr_t, next_hdr)
1108
11
#define L_LBMC_CNTL_UME_ACK_ID_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_ack_id_hdr_t, next_hdr)
1109
11
#define O_LBMC_CNTL_UME_ACK_ID_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_ack_id_hdr_t, hdr_len)
1110
11
#define L_LBMC_CNTL_UME_ACK_ID_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_ack_id_hdr_t, hdr_len)
1111
11
#define O_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_ack_id_hdr_t, flags)
1112
16
#define L_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_ack_id_hdr_t, flags)
1113
11
#define O_LBMC_CNTL_UME_ACK_ID_HDR_T_ID OFFSETOF(lbmc_cntl_ume_ack_id_hdr_t, id)
1114
11
#define L_LBMC_CNTL_UME_ACK_ID_HDR_T_ID SIZEOF(lbmc_cntl_ume_ack_id_hdr_t, id)
1115
22
#define L_LBMC_CNTL_UME_ACK_ID_HDR_T (int) sizeof(lbmc_cntl_ume_ack_id_hdr_t)
1116
1117
/* LBMC control UME retransmission request header */
1118
typedef struct
1119
{
1120
    lbm_uint8_t next_hdr;
1121
    lbm_uint8_t hdr_len;
1122
    lbm_uint16_t flags;
1123
    lbm_uint32_t request_idx;
1124
    lbm_uint32_t transport_idx;
1125
    lbm_uint32_t id_2;
1126
    lbm_uint32_t seqnum;
1127
    lbm_uint16_t rx_port;
1128
    lbm_uint16_t res;
1129
    lbm_uint32_t rx_ip;
1130
} lbmc_cntl_ume_rxreq_hdr_t;
1131
23
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, next_hdr)
1132
23
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, next_hdr)
1133
23
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, hdr_len)
1134
23
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, hdr_len)
1135
69
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, flags)
1136
55
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, flags)
1137
23
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_REQUEST_IDX OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, request_idx)
1138
23
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_REQUEST_IDX SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, request_idx)
1139
23
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, transport_idx)
1140
23
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, transport_idx)
1141
23
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_ID_2 OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, id_2)
1142
23
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_ID_2 SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, id_2)
1143
23
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_SEQNUM OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, seqnum)
1144
23
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_SEQNUM SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, seqnum)
1145
23
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_RX_PORT OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, rx_port)
1146
23
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_RX_PORT SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, rx_port)
1147
23
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_RES OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, res)
1148
23
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_RES SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, res)
1149
23
#define O_LBMC_CNTL_UME_RXREQ_HDR_T_RX_IP OFFSETOF(lbmc_cntl_ume_rxreq_hdr_t, rx_ip)
1150
23
#define L_LBMC_CNTL_UME_RXREQ_HDR_T_RX_IP SIZEOF(lbmc_cntl_ume_rxreq_hdr_t, rx_ip)
1151
46
#define L_LBMC_CNTL_UME_RXREQ_HDR_T (int) sizeof(lbmc_cntl_ume_rxreq_hdr_t)
1152
1153
/* LBMC control UME ranged retransmission request header */
1154
typedef struct
1155
{
1156
    lbm_uint8_t next_hdr;
1157
    lbm_uint8_t hdr_len;
1158
    lbm_uint16_t flags;
1159
    lbm_uint32_t first_seqnum;
1160
    lbm_uint32_t last_seqnum;
1161
} lbmc_cntl_ume_ranged_rxreq_hdr_t;
1162
8
#define O_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_ranged_rxreq_hdr_t, next_hdr)
1163
8
#define L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_ranged_rxreq_hdr_t, next_hdr)
1164
8
#define O_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_ranged_rxreq_hdr_t, hdr_len)
1165
8
#define L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_ranged_rxreq_hdr_t, hdr_len)
1166
8
#define O_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_ranged_rxreq_hdr_t, flags)
1167
16
#define L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_ranged_rxreq_hdr_t, flags)
1168
8
#define O_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_FIRST_SEQNUM OFFSETOF(lbmc_cntl_ume_ranged_rxreq_hdr_t, first_seqnum)
1169
8
#define L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_FIRST_SEQNUM SIZEOF(lbmc_cntl_ume_ranged_rxreq_hdr_t, first_seqnum)
1170
8
#define O_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_LAST_SEQNUM OFFSETOF(lbmc_cntl_ume_ranged_rxreq_hdr_t, last_seqnum)
1171
8
#define L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_LAST_SEQNUM SIZEOF(lbmc_cntl_ume_ranged_rxreq_hdr_t, last_seqnum)
1172
16
#define L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T (int) sizeof(lbmc_cntl_ume_ranged_rxreq_hdr_t)
1173
1174
/* LBMC control late join initiation request */
1175
typedef struct
1176
{
1177
    lbm_uint8_t next_hdr;
1178
    lbm_uint8_t hdr_len;
1179
    lbm_uint16_t flags;
1180
    lbm_uint32_t request_idx;
1181
    lbm_uint32_t transport_idx;
1182
    lbm_uint32_t topic_idx;
1183
    lbm_uint32_t req_ip;
1184
    lbm_uint16_t req_port;
1185
    lbm_uint16_t res;
1186
    lbm_uint32_t tx_low_sqn;
1187
    lbm_uint32_t rx_req_max;
1188
    lbm_uint32_t rx_req_outstanding_max;
1189
} lbmc_cntl_lji_req_hdr_t;
1190
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_lji_req_hdr_t, next_hdr)
1191
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_lji_req_hdr_t, next_hdr)
1192
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_lji_req_hdr_t, hdr_len)
1193
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_lji_req_hdr_t, hdr_len)
1194
#define O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_lji_req_hdr_t, flags)
1195
#define L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_lji_req_hdr_t, flags)
1196
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_REQUEST_IDX OFFSETOF(lbmc_cntl_lji_req_hdr_t, request_idx)
1197
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_REQUEST_IDX SIZEOF(lbmc_cntl_lji_req_hdr_t, request_idx)
1198
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_lji_req_hdr_t, transport_idx)
1199
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_lji_req_hdr_t, transport_idx)
1200
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_lji_req_hdr_t, topic_idx)
1201
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_lji_req_hdr_t, topic_idx)
1202
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_REQ_IP OFFSETOF(lbmc_cntl_lji_req_hdr_t, req_ip)
1203
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_REQ_IP SIZEOF(lbmc_cntl_lji_req_hdr_t, req_ip)
1204
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_REQ_PORT OFFSETOF(lbmc_cntl_lji_req_hdr_t, req_port)
1205
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_REQ_PORT SIZEOF(lbmc_cntl_lji_req_hdr_t, req_port)
1206
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_RES OFFSETOF(lbmc_cntl_lji_req_hdr_t, res)
1207
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_RES SIZEOF(lbmc_cntl_lji_req_hdr_t, res)
1208
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_TX_LOW_SQN OFFSETOF(lbmc_cntl_lji_req_hdr_t, tx_low_sqn)
1209
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_TX_LOW_SQN SIZEOF(lbmc_cntl_lji_req_hdr_t, tx_low_sqn)
1210
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_MAX OFFSETOF(lbmc_cntl_lji_req_hdr_t, rx_req_max)
1211
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_MAX SIZEOF(lbmc_cntl_lji_req_hdr_t, rx_req_max)
1212
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_OUTSTANDING_MAX OFFSETOF(lbmc_cntl_lji_req_hdr_t, rx_req_outstanding_max)
1213
7
#define L_LBMC_CNTL_LJI_REQ_HDR_T_RX_REQ_OUTSTANDING_MAX SIZEOF(lbmc_cntl_lji_req_hdr_t, rx_req_outstanding_max)
1214
7
#define O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_lji_req_hdr_t, flags)
1215
64
#define L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_lji_req_hdr_t, flags)
1216
14
#define L_LBMC_CNTL_LJI_REQ_HDR_T (int) sizeof(lbmc_cntl_lji_req_hdr_t)
1217
1218
/* LBMC control UME keepalive header */
1219
typedef struct
1220
{
1221
    lbm_uint8_t next_hdr;
1222
    lbm_uint8_t hdr_len;
1223
    lbm_uint8_t flags;
1224
    lbm_uint8_t type;
1225
    lbm_uint32_t transport_idx;
1226
    lbm_uint32_t topic_idx;
1227
    lbm_uint32_t reg_id;
1228
} lbmc_cntl_ume_keepalive_hdr_t;
1229
16
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, next_hdr)
1230
16
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, next_hdr)
1231
16
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, hdr_len)
1232
16
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, hdr_len)
1233
16
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, flags)
1234
48
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, flags)
1235
16
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TYPE OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, type)
1236
16
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TYPE SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, type)
1237
16
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, transport_idx)
1238
16
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, transport_idx)
1239
16
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, topic_idx)
1240
16
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, topic_idx)
1241
16
#define O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_REG_ID OFFSETOF(lbmc_cntl_ume_keepalive_hdr_t, reg_id)
1242
16
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_REG_ID SIZEOF(lbmc_cntl_ume_keepalive_hdr_t, reg_id)
1243
32
#define L_LBMC_CNTL_UME_KEEPALIVE_HDR_T (int) sizeof(lbmc_cntl_ume_keepalive_hdr_t)
1244
1245
/* LBMC control UME store ID header */
1246
typedef struct
1247
{
1248
    lbm_uint8_t next_hdr;
1249
    lbm_uint8_t hdr_len;
1250
    lbm_uint16_t store_id;
1251
} lbmc_cntl_ume_storeid_hdr_t;
1252
4
#define O_LBMC_CNTL_UME_STOREID_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_storeid_hdr_t, next_hdr)
1253
4
#define L_LBMC_CNTL_UME_STOREID_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_storeid_hdr_t, next_hdr)
1254
4
#define O_LBMC_CNTL_UME_STOREID_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_storeid_hdr_t, hdr_len)
1255
4
#define L_LBMC_CNTL_UME_STOREID_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_storeid_hdr_t, hdr_len)
1256
8
#define O_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID OFFSETOF(lbmc_cntl_ume_storeid_hdr_t, store_id)
1257
24
#define L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID SIZEOF(lbmc_cntl_ume_storeid_hdr_t, store_id)
1258
8
#define L_LBMC_CNTL_UME_STOREID_HDR_T (int) sizeof(lbmc_cntl_ume_storeid_hdr_t)
1259
1260
#define LBMC_CNTL_UME_STOREID_STOREID(x) (x & 0x7FFF)
1261
16
#define LBMC_CNTL_UME_STOREID_STOREID_MASK 0x7FFF
1262
1263
/* LBMC control UME capability header */
1264
typedef struct
1265
{
1266
    lbm_uint8_t next_hdr;
1267
    lbm_uint8_t hdr_len;
1268
    lbm_uint16_t flags;
1269
} lbmc_cntl_ume_capability_hdr_t;
1270
12
#define O_LBMC_CNTL_UME_CAPABILITY_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_capability_hdr_t, next_hdr)
1271
12
#define L_LBMC_CNTL_UME_CAPABILITY_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_capability_hdr_t, next_hdr)
1272
12
#define O_LBMC_CNTL_UME_CAPABILITY_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_capability_hdr_t, hdr_len)
1273
12
#define L_LBMC_CNTL_UME_CAPABILITY_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_capability_hdr_t, hdr_len)
1274
12
#define O_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_capability_hdr_t, flags)
1275
64
#define L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_capability_hdr_t, flags)
1276
24
#define L_LBMC_CNTL_UME_CAPABILITY_HDR_T (int) sizeof(lbmc_cntl_ume_capability_hdr_t)
1277
1278
/* LBMC control UME Proxy Source header */
1279
typedef struct
1280
{
1281
    lbm_uint8_t next_hdr;
1282
    lbm_uint8_t hdr_len;
1283
    lbm_uint16_t flags;
1284
} lbmc_cntl_ume_proxy_src_hdr_t;
1285
24
#define O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_proxy_src_hdr_t, next_hdr)
1286
24
#define L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_proxy_src_hdr_t, next_hdr)
1287
24
#define O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_proxy_src_hdr_t, hdr_len)
1288
24
#define L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_proxy_src_hdr_t, hdr_len)
1289
24
#define O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_proxy_src_hdr_t, flags)
1290
48
#define L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_proxy_src_hdr_t, flags)
1291
48
#define L_LBMC_CNTL_UME_PROXY_SRC_HDR_T (int) sizeof(lbmc_cntl_ume_proxy_src_hdr_t)
1292
1293
/* LBMC control UME Store header */
1294
typedef struct
1295
{
1296
    lbm_uint8_t next_hdr;
1297
    lbm_uint8_t hdr_len;
1298
    lbm_uint8_t flags;
1299
    lbm_uint8_t grp_idx;
1300
    lbm_uint16_t store_tcp_port;
1301
    lbm_uint16_t store_idx;
1302
    lbm_uint32_t store_ip_addr;
1303
    lbm_uint32_t src_reg_id;
1304
} lbmc_cntl_ume_store_hdr_t;
1305
48
#define O_LBMC_CNTL_UME_STORE_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_store_hdr_t, next_hdr)
1306
48
#define L_LBMC_CNTL_UME_STORE_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_store_hdr_t, next_hdr)
1307
48
#define O_LBMC_CNTL_UME_STORE_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_store_hdr_t, hdr_len)
1308
48
#define L_LBMC_CNTL_UME_STORE_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_store_hdr_t, hdr_len)
1309
48
#define O_LBMC_CNTL_UME_STORE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_store_hdr_t, flags)
1310
32
#define L_LBMC_CNTL_UME_STORE_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_store_hdr_t, flags)
1311
48
#define O_LBMC_CNTL_UME_STORE_HDR_T_GRP_IDX OFFSETOF(lbmc_cntl_ume_store_hdr_t, grp_idx)
1312
48
#define L_LBMC_CNTL_UME_STORE_HDR_T_GRP_IDX SIZEOF(lbmc_cntl_ume_store_hdr_t, grp_idx)
1313
48
#define O_LBMC_CNTL_UME_STORE_HDR_T_STORE_TCP_PORT OFFSETOF(lbmc_cntl_ume_store_hdr_t, store_tcp_port)
1314
48
#define L_LBMC_CNTL_UME_STORE_HDR_T_STORE_TCP_PORT SIZEOF(lbmc_cntl_ume_store_hdr_t, store_tcp_port)
1315
48
#define O_LBMC_CNTL_UME_STORE_HDR_T_STORE_IDX OFFSETOF(lbmc_cntl_ume_store_hdr_t, store_idx)
1316
48
#define L_LBMC_CNTL_UME_STORE_HDR_T_STORE_IDX SIZEOF(lbmc_cntl_ume_store_hdr_t, store_idx)
1317
48
#define O_LBMC_CNTL_UME_STORE_HDR_T_STORE_IP_ADDR OFFSETOF(lbmc_cntl_ume_store_hdr_t, store_ip_addr)
1318
48
#define L_LBMC_CNTL_UME_STORE_HDR_T_STORE_IP_ADDR SIZEOF(lbmc_cntl_ume_store_hdr_t, store_ip_addr)
1319
48
#define O_LBMC_CNTL_UME_STORE_HDR_T_SRC_REG_ID OFFSETOF(lbmc_cntl_ume_store_hdr_t, src_reg_id)
1320
48
#define L_LBMC_CNTL_UME_STORE_HDR_T_SRC_REG_ID SIZEOF(lbmc_cntl_ume_store_hdr_t, src_reg_id)
1321
96
#define L_LBMC_CNTL_UME_STORE_HDR_T (int) sizeof(lbmc_cntl_ume_store_hdr_t)
1322
1323
/* LBMC control UME Store Extended header */
1324
typedef struct
1325
{
1326
    lbm_uint8_t next_hdr;
1327
    lbm_uint8_t hdr_len;
1328
    lbm_uint8_t flags;
1329
    lbm_uint8_t grp_idx;
1330
    lbm_uint16_t store_tcp_port;
1331
    lbm_uint16_t store_idx;
1332
    lbm_uint32_t store_ip_addr;
1333
    lbm_uint32_t src_reg_id;
1334
    lbm_uint32_t domain_id;
1335
    lbm_uint32_t version;
1336
} lbmc_cntl_ume_store_ext_hdr_t;
1337
3
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, next_hdr)
1338
3
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, next_hdr)
1339
3
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, hdr_len)
1340
3
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, hdr_len)
1341
3
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, flags)
1342
16
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, flags)
1343
3
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_GRP_IDX OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, grp_idx)
1344
3
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_GRP_IDX SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, grp_idx)
1345
3
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_TCP_PORT OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, store_tcp_port)
1346
3
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_TCP_PORT SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, store_tcp_port)
1347
3
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IDX OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, store_idx)
1348
3
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IDX SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, store_idx)
1349
3
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IP_ADDR OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, store_ip_addr)
1350
3
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IP_ADDR SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, store_ip_addr)
1351
3
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_SRC_REG_ID OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, src_reg_id)
1352
3
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_SRC_REG_ID SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, src_reg_id)
1353
3
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, domain_id)
1354
3
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, domain_id)
1355
3
#define O_LBMC_CNTL_UME_STORE_EXT_HDR_T_VERSION OFFSETOF(lbmc_cntl_ume_store_ext_hdr_t, version)
1356
3
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T_VERSION SIZEOF(lbmc_cntl_ume_store_ext_hdr_t, version)
1357
6
#define L_LBMC_CNTL_UME_STORE_EXT_HDR_T (int) sizeof(lbmc_cntl_ume_store_ext_hdr_t)
1358
1359
/* LBMC control UME Late Join info header */
1360
typedef struct
1361
{
1362
    lbm_uint8_t next_hdr;
1363
    lbm_uint8_t hdr_len;
1364
    lbm_uint16_t flags;
1365
    lbm_uint32_t low_seqnum;
1366
    lbm_uint32_t high_seqnum;
1367
    lbm_uint32_t qidx;
1368
} lbmc_cntl_ume_lj_info_hdr_t;
1369
15
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, next_hdr)
1370
15
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, next_hdr)
1371
15
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, hdr_len)
1372
15
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, hdr_len)
1373
15
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, flags)
1374
16
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, flags)
1375
15
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_LOW_SEQNUM OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, low_seqnum)
1376
15
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_LOW_SEQNUM SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, low_seqnum)
1377
15
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_HIGH_SEQNUM OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, high_seqnum)
1378
15
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_HIGH_SEQNUM SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, high_seqnum)
1379
15
#define O_LBMC_CNTL_UME_LJ_INFO_HDR_T_QIDX OFFSETOF(lbmc_cntl_ume_lj_info_hdr_t, qidx)
1380
15
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T_QIDX SIZEOF(lbmc_cntl_ume_lj_info_hdr_t, qidx)
1381
30
#define L_LBMC_CNTL_UME_LJ_INFO_HDR_T (int) sizeof(lbmc_cntl_ume_lj_info_hdr_t)
1382
1383
/* LBMC control UME Store Group header */
1384
typedef struct
1385
{
1386
    lbm_uint8_t next_hdr;
1387
    lbm_uint8_t hdr_len;
1388
    lbm_uint8_t flags;
1389
    lbm_uint8_t grp_idx;
1390
    lbm_uint16_t grp_sz;
1391
    lbm_uint16_t res1;
1392
} lbmc_cntl_ume_store_group_hdr_t;
1393
4
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, next_hdr)
1394
4
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_store_group_hdr_t, next_hdr)
1395
4
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, hdr_len)
1396
4
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_store_group_hdr_t, hdr_len)
1397
4
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, flags)
1398
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_store_group_hdr_t, flags)
1399
4
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_IDX OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, grp_idx)
1400
4
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_IDX SIZEOF(lbmc_cntl_ume_store_group_hdr_t, grp_idx)
1401
4
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_SZ OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, grp_sz)
1402
4
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_SZ SIZEOF(lbmc_cntl_ume_store_group_hdr_t, grp_sz)
1403
4
#define O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_RES1 OFFSETOF(lbmc_cntl_ume_store_group_hdr_t, res1)
1404
4
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_RES1 SIZEOF(lbmc_cntl_ume_store_group_hdr_t, res1)
1405
8
#define L_LBMC_CNTL_UME_STORE_GROUP_HDR_T (int) sizeof(lbmc_cntl_ume_store_group_hdr_t)
1406
1407
/* LBMC control TSNI header */
1408
typedef struct
1409
{
1410
    lbm_uint8_t next_hdr;
1411
    lbm_uint8_t hdr_len;
1412
    lbm_uint16_t num_recs;
1413
} lbmc_cntl_tsni_hdr_t;
1414
69
#define O_LBMC_CNTL_TSNI_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_tsni_hdr_t, next_hdr)
1415
69
#define L_LBMC_CNTL_TSNI_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_tsni_hdr_t, next_hdr)
1416
138
#define O_LBMC_CNTL_TSNI_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_tsni_hdr_t, hdr_len)
1417
69
#define L_LBMC_CNTL_TSNI_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_tsni_hdr_t, hdr_len)
1418
138
#define O_LBMC_CNTL_TSNI_HDR_T_NUM_RECS OFFSETOF(lbmc_cntl_tsni_hdr_t, num_recs)
1419
154
#define L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS SIZEOF(lbmc_cntl_tsni_hdr_t, num_recs)
1420
207
#define L_LBMC_CNTL_TSNI_HDR_T (int) sizeof(lbmc_cntl_tsni_hdr_t)
1421
1422
16
#define LBMC_CNTL_TSNI_NUM_RECS_MASK 0x7fff
1423
1424
typedef struct
1425
{
1426
    lbm_uint32_t tidx;
1427
    lbm_uint32_t sqn;
1428
} lbmc_cntl_tsni_rec_hdr_t;
1429
268
#define O_LBMC_CNTL_TSNI_REC_HDR_T_TIDX OFFSETOF(lbmc_cntl_tsni_rec_hdr_t, tidx)
1430
268
#define L_LBMC_CNTL_TSNI_REC_HDR_T_TIDX SIZEOF(lbmc_cntl_tsni_rec_hdr_t, tidx)
1431
268
#define O_LBMC_CNTL_TSNI_REC_HDR_T_SQN OFFSETOF(lbmc_cntl_tsni_rec_hdr_t, sqn)
1432
268
#define L_LBMC_CNTL_TSNI_REC_HDR_T_SQN SIZEOF(lbmc_cntl_tsni_rec_hdr_t, sqn)
1433
873
#define L_LBMC_CNTL_TSNI_REC_HDR_T (int) sizeof(lbmc_cntl_tsni_rec_hdr_t)
1434
1435
/* LBMC control UMQ registration header(s) */
1436
typedef struct
1437
{
1438
    lbm_uint16_t port;
1439
    lbm_uint16_t reserved;
1440
    lbm_uint32_t ip;
1441
    lbm_uint32_t capabilities;
1442
} lbmc_cntl_umq_reg_ctx_hdr_t;
1443
2
#define O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_PORT OFFSETOF(lbmc_cntl_umq_reg_ctx_hdr_t, port)
1444
2
#define L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_PORT SIZEOF(lbmc_cntl_umq_reg_ctx_hdr_t, port)
1445
2
#define O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_ctx_hdr_t, reserved)
1446
2
#define L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_ctx_hdr_t, reserved)
1447
2
#define O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_IP OFFSETOF(lbmc_cntl_umq_reg_ctx_hdr_t, ip)
1448
2
#define L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_IP SIZEOF(lbmc_cntl_umq_reg_ctx_hdr_t, ip)
1449
2
#define O_LBMC_CNTL_UMQ_REG_CTX_HDR_T_CAPABILITIES OFFSETOF(lbmc_cntl_umq_reg_ctx_hdr_t, capabilities)
1450
2
#define L_LBMC_CNTL_UMQ_REG_CTX_HDR_T_CAPABILITIES SIZEOF(lbmc_cntl_umq_reg_ctx_hdr_t, capabilities)
1451
4
#define L_LBMC_CNTL_UMQ_REG_CTX_HDR_T (int) sizeof(lbmc_cntl_umq_reg_ctx_hdr_t)
1452
1453
typedef struct
1454
{
1455
    lbm_uint32_t transport_idx;
1456
    lbm_uint32_t topic_idx;
1457
} lbmc_cntl_umq_reg_src_hdr_t;
1458
2
#define O_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_umq_reg_src_hdr_t, transport_idx)
1459
2
#define L_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_umq_reg_src_hdr_t, transport_idx)
1460
2
#define O_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_umq_reg_src_hdr_t, topic_idx)
1461
2
#define L_LBMC_CNTL_UMQ_REG_SRC_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_umq_reg_src_hdr_t, topic_idx)
1462
4
#define L_LBMC_CNTL_UMQ_REG_SRC_HDR_T (int) sizeof(lbmc_cntl_umq_reg_src_hdr_t)
1463
1464
typedef struct
1465
{
1466
    lbm_uint32_t assign_id;
1467
    lbm_uint32_t rcv_type_id;
1468
    lbm_uint32_t last_topic_rcr_tsp;
1469
} lbmc_cntl_umq_reg_rcv_hdr_t;
1470
1
#define O_LBMC_CNTL_UMQ_REG_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_reg_rcv_hdr_t, assign_id)
1471
1
#define L_LBMC_CNTL_UMQ_REG_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_reg_rcv_hdr_t, assign_id)
1472
1
#define O_LBMC_CNTL_UMQ_REG_RCV_HDR_T_RCV_TYPE_ID OFFSETOF(lbmc_cntl_umq_reg_rcv_hdr_t, rcv_type_id)
1473
1
#define L_LBMC_CNTL_UMQ_REG_RCV_HDR_T_RCV_TYPE_ID SIZEOF(lbmc_cntl_umq_reg_rcv_hdr_t, rcv_type_id)
1474
1
#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)
1475
1
#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)
1476
2
#define L_LBMC_CNTL_UMQ_REG_RCV_HDR_T (int) sizeof(lbmc_cntl_umq_reg_rcv_hdr_t)
1477
1478
typedef struct
1479
{
1480
    lbm_uint32_t rcr_idx;
1481
    lbm_uint32_t assign_id;
1482
} lbmc_cntl_umq_rcv_dereg_hdr_t;
1483
2
#define O_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcv_dereg_hdr_t, rcr_idx)
1484
2
#define L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcv_dereg_hdr_t, rcr_idx)
1485
2
#define O_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcv_dereg_hdr_t, assign_id)
1486
2
#define L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcv_dereg_hdr_t, assign_id)
1487
4
#define L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T (int) sizeof(lbmc_cntl_umq_rcv_dereg_hdr_t)
1488
1489
typedef struct
1490
{
1491
    lbm_uint32_t ulb_src_id;
1492
    lbm_uint32_t assign_id;
1493
    lbm_uint32_t rcv_type_id;
1494
    lbm_uint16_t port;
1495
    lbm_uint16_t reserved;
1496
    lbm_uint32_t ip;
1497
    lbm_uint32_t capabilities;
1498
} lbmc_cntl_umq_reg_ulb_rcv_hdr_t;
1499
1
#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)
1500
1
#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)
1501
1
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, assign_id)
1502
1
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, assign_id)
1503
1
#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)
1504
1
#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)
1505
1
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_PORT OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, port)
1506
1
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_PORT SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, port)
1507
1
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, reserved)
1508
1
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, reserved)
1509
1
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_IP OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, ip)
1510
1
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_IP SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, ip)
1511
1
#define O_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_CAPABILITIES OFFSETOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, capabilities)
1512
1
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T_CAPABILITIES SIZEOF(lbmc_cntl_umq_reg_ulb_rcv_hdr_t, capabilities)
1513
2
#define L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T (int) sizeof(lbmc_cntl_umq_reg_ulb_rcv_hdr_t)
1514
1515
typedef struct
1516
{
1517
    lbm_uint32_t ulb_src_id;
1518
    lbm_uint32_t assign_id;
1519
} lbmc_cntl_umq_ulb_rcv_dereg_hdr_t;
1520
1
#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)
1521
1
#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)
1522
1
#define O_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ulb_rcv_dereg_hdr_t, assign_id)
1523
1
#define L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ulb_rcv_dereg_hdr_t, assign_id)
1524
2
#define L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T (int) sizeof(lbmc_cntl_umq_ulb_rcv_dereg_hdr_t)
1525
1526
typedef struct
1527
{
1528
    lbm_uint32_t assign_id;
1529
    lbm_uint32_t rcv_type_id;
1530
    lbm_uint32_t last_topic_rcr_tsp;
1531
} lbmc_cntl_umq_reg_observer_rcv_hdr_t;
1532
0
#define O_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_reg_observer_rcv_hdr_t, assign_id)
1533
0
#define L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_reg_observer_rcv_hdr_t, assign_id)
1534
0
#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)
1535
0
#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)
1536
0
#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)
1537
0
#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)
1538
0
#define L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T (int) sizeof(lbmc_cntl_umq_reg_observer_rcv_hdr_t)
1539
1540
typedef struct
1541
{
1542
    lbm_uint32_t rcr_idx;
1543
    lbm_uint32_t assign_id;
1544
} lbmc_cntl_umq_observer_rcv_dereg_hdr_t;
1545
1
#define O_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_observer_rcv_dereg_hdr_t, rcr_idx)
1546
1
#define L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_observer_rcv_dereg_hdr_t, rcr_idx)
1547
1
#define O_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_observer_rcv_dereg_hdr_t, assign_id)
1548
1
#define L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_observer_rcv_dereg_hdr_t, assign_id)
1549
2
#define L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T (int) sizeof(lbmc_cntl_umq_observer_rcv_dereg_hdr_t)
1550
1551
typedef struct
1552
{
1553
    lbm_uint8_t next_hdr;
1554
    lbm_uint8_t hdr_len;
1555
    lbm_uint8_t flags;
1556
    lbm_uint8_t reg_type;
1557
    lbm_uint32_t queue_id;
1558
    lbm_uint16_t cmd_id;
1559
    lbm_uint16_t inst_idx;
1560
    lbm_uint8_t regid[8];
1561
} lbmc_cntl_umq_reg_hdr_t;
1562
36
#define O_LBMC_CNTL_UMQ_REG_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_reg_hdr_t, next_hdr)
1563
36
#define L_LBMC_CNTL_UMQ_REG_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_reg_hdr_t, next_hdr)
1564
72
#define O_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_reg_hdr_t, hdr_len)
1565
36
#define L_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_reg_hdr_t, hdr_len)
1566
36
#define O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_reg_hdr_t, flags)
1567
80
#define L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_reg_hdr_t, flags)
1568
72
#define O_LBMC_CNTL_UMQ_REG_HDR_T_REG_TYPE OFFSETOF(lbmc_cntl_umq_reg_hdr_t, reg_type)
1569
36
#define L_LBMC_CNTL_UMQ_REG_HDR_T_REG_TYPE SIZEOF(lbmc_cntl_umq_reg_hdr_t, reg_type)
1570
36
#define O_LBMC_CNTL_UMQ_REG_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_reg_hdr_t, queue_id)
1571
36
#define L_LBMC_CNTL_UMQ_REG_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_reg_hdr_t, queue_id)
1572
36
#define O_LBMC_CNTL_UMQ_REG_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_reg_hdr_t, cmd_id)
1573
36
#define L_LBMC_CNTL_UMQ_REG_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_reg_hdr_t, cmd_id)
1574
36
#define O_LBMC_CNTL_UMQ_REG_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_reg_hdr_t, inst_idx)
1575
36
#define L_LBMC_CNTL_UMQ_REG_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_reg_hdr_t, inst_idx)
1576
36
#define O_LBMC_CNTL_UMQ_REG_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_reg_hdr_t, regid)
1577
36
#define L_LBMC_CNTL_UMQ_REG_HDR_T_REGID SIZEOF(lbmc_cntl_umq_reg_hdr_t, regid)
1578
36
#define L_LBMC_CNTL_UMQ_REG_HDR_T (int) sizeof(lbmc_cntl_umq_reg_hdr_t)
1579
1580
/* LBMC control UMQ registration response header(s) */
1581
typedef struct
1582
{
1583
    lbm_uint32_t capabilities;
1584
} lbmc_cntl_umq_reg_resp_ctx_hdr_t;
1585
1
#define O_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T_CAPABILITIES OFFSETOF(lbmc_cntl_umq_reg_resp_ctx_hdr_t, capabilities)
1586
1
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T_CAPABILITIES SIZEOF(lbmc_cntl_umq_reg_resp_ctx_hdr_t, capabilities)
1587
2
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T (int) sizeof(lbmc_cntl_umq_reg_resp_ctx_hdr_t)
1588
1589
typedef struct
1590
{
1591
    lbm_uint32_t capabilities;
1592
    lbm_uint16_t reserved;
1593
    lbm_uint16_t flags;
1594
    lbm_uint8_t stamp[8];
1595
} lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t;
1596
1
#define O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_CAPABILITIES OFFSETOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, capabilities)
1597
1
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_CAPABILITIES SIZEOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, capabilities)
1598
1
#define O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, reserved)
1599
1
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, reserved)
1600
1
#define O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, flags)
1601
16
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, flags)
1602
1
#define O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_STAMP OFFSETOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, stamp)
1603
1
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_STAMP SIZEOF(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t, stamp)
1604
2
#define L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T (int) sizeof(lbmc_cntl_umq_reg_resp_ctx_ex_hdr_t)
1605
1606
typedef struct
1607
{
1608
    lbm_uint16_t reserved;
1609
    lbm_uint16_t code;
1610
} lbmc_cntl_umq_reg_resp_err_hdr_t;
1611
3
#define O_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_resp_err_hdr_t, reserved)
1612
3
#define L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_resp_err_hdr_t, reserved)
1613
3
#define O_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_CODE OFFSETOF(lbmc_cntl_umq_reg_resp_err_hdr_t, code)
1614
3
#define L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T_CODE SIZEOF(lbmc_cntl_umq_reg_resp_err_hdr_t, code)
1615
6
#define L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T (int) sizeof(lbmc_cntl_umq_reg_resp_err_hdr_t)
1616
1617
typedef struct
1618
{
1619
    lbm_uint32_t rcr_idx;
1620
} lbmc_cntl_umq_reg_resp_src_hdr_t;
1621
1
#define O_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_src_hdr_t, rcr_idx)
1622
1
#define L_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_reg_resp_src_hdr_t, rcr_idx)
1623
2
#define L_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T (int) sizeof(lbmc_cntl_umq_reg_resp_src_hdr_t)
1624
1625
typedef struct
1626
{
1627
    lbm_uint32_t rcr_idx;
1628
    lbm_uint32_t assign_id;
1629
    lbm_uint16_t appset_idx;
1630
    lbm_uint16_t reserved;
1631
} lbmc_cntl_umq_reg_resp_rcv_hdr_t;
1632
1
#define O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, rcr_idx)
1633
1
#define L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, rcr_idx)
1634
1
#define O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, assign_id)
1635
1
#define L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, assign_id)
1636
1
#define O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, appset_idx)
1637
1
#define L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, appset_idx)
1638
1
#define O_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, reserved)
1639
1
#define L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_resp_rcv_hdr_t, reserved)
1640
2
#define L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T (int) sizeof(lbmc_cntl_umq_reg_resp_rcv_hdr_t)
1641
1642
typedef struct
1643
{
1644
    lbm_uint32_t rcr_idx;
1645
    lbm_uint32_t assign_id;
1646
} lbmc_cntl_umq_rcv_dereg_resp_hdr_t;
1647
1
#define O_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcv_dereg_resp_hdr_t, rcr_idx)
1648
1
#define L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcv_dereg_resp_hdr_t, rcr_idx)
1649
1
#define O_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcv_dereg_resp_hdr_t, assign_id)
1650
1
#define L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcv_dereg_resp_hdr_t, assign_id)
1651
2
#define L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T (int) sizeof(lbmc_cntl_umq_rcv_dereg_resp_hdr_t)
1652
1653
typedef struct
1654
{
1655
    lbm_uint32_t ulb_src_id;
1656
    lbm_uint32_t assign_id;
1657
    lbm_uint16_t appset_idx;
1658
    lbm_uint16_t reserved;
1659
    lbm_uint32_t capabilities;
1660
} lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t;
1661
1
#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)
1662
1
#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)
1663
1
#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)
1664
1
#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)
1665
1
#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)
1666
1
#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)
1667
1
#define O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, reserved)
1668
1
#define L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, reserved)
1669
1
#define O_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_CAPABILITIES OFFSETOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, capabilities)
1670
1
#define L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T_CAPABILITIES SIZEOF(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t, capabilities)
1671
2
#define L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T (int) sizeof(lbmc_cntl_umq_reg_resp_ulb_rcv_hdr_t)
1672
1673
typedef struct
1674
{
1675
    lbm_uint32_t ulb_src_id;
1676
    lbm_uint32_t assign_id;
1677
} lbmc_cntl_umq_ulb_rcv_dereg_resp_hdr_t;
1678
1
#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)
1679
1
#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)
1680
1
#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)
1681
1
#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)
1682
2
#define L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T (int) sizeof(lbmc_cntl_umq_ulb_rcv_dereg_resp_hdr_t)
1683
1684
typedef struct
1685
{
1686
    lbm_uint32_t rcr_idx;
1687
    lbm_uint32_t assign_id;
1688
    lbm_uint16_t appset_idx;
1689
    lbm_uint16_t reserved;
1690
} lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t;
1691
0
#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)
1692
0
#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)
1693
0
#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)
1694
0
#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)
1695
0
#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)
1696
0
#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)
1697
0
#define O_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t, reserved)
1698
0
#define L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t, reserved)
1699
0
#define L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T (int) sizeof(lbmc_cntl_umq_reg_resp_observer_rcv_hdr_t)
1700
1701
typedef struct
1702
{
1703
    lbm_uint32_t rcr_idx;
1704
    lbm_uint32_t assign_id;
1705
} lbmc_cntl_umq_observer_rcv_dereg_resp_hdr_t;
1706
0
#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)
1707
0
#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)
1708
0
#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)
1709
0
#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)
1710
0
#define L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T (int) sizeof(lbmc_cntl_umq_observer_rcv_dereg_resp_hdr_t)
1711
1712
typedef struct
1713
{
1714
    lbm_uint8_t next_hdr;
1715
    lbm_uint8_t hdr_len;
1716
    lbm_uint8_t flags;
1717
    lbm_uint8_t resp_type;
1718
    lbm_uint32_t queue_id;
1719
    lbm_uint16_t cmd_id;
1720
    lbm_uint16_t inst_idx;
1721
    lbm_uint8_t regid[8];
1722
} lbmc_cntl_umq_reg_resp_hdr_t;
1723
35
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, next_hdr)
1724
35
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, next_hdr)
1725
70
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, hdr_len)
1726
35
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, hdr_len)
1727
34
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, flags)
1728
80
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, flags)
1729
69
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESP_TYPE OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, resp_type)
1730
34
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESP_TYPE SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, resp_type)
1731
34
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, queue_id)
1732
34
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, queue_id)
1733
34
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, cmd_id)
1734
34
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, cmd_id)
1735
34
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, inst_idx)
1736
34
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, inst_idx)
1737
34
#define O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESPID OFFSETOF(lbmc_cntl_umq_reg_resp_hdr_t, regid)
1738
34
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESPID SIZEOF(lbmc_cntl_umq_reg_resp_hdr_t, regid)
1739
34
#define L_LBMC_CNTL_UMQ_REG_RESP_HDR_T (int) sizeof(lbmc_cntl_umq_reg_resp_hdr_t)
1740
1741
/* LBMC control UMQ ACK header(s) */
1742
typedef struct
1743
{
1744
    lbm_uint8_t regid[8];
1745
    lbm_uint8_t stamp[8];
1746
} lbmc_cntl_umq_ack_msgid_hdr_t;
1747
140
#define O_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_ack_msgid_hdr_t, regid)
1748
140
#define L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_REGID SIZEOF(lbmc_cntl_umq_ack_msgid_hdr_t, regid)
1749
140
#define O_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_STAMP OFFSETOF(lbmc_cntl_umq_ack_msgid_hdr_t, stamp)
1750
140
#define L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T_STAMP SIZEOF(lbmc_cntl_umq_ack_msgid_hdr_t, stamp)
1751
280
#define L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T (int) sizeof(lbmc_cntl_umq_ack_msgid_hdr_t)
1752
1753
typedef struct
1754
{
1755
    lbm_uint32_t queue_id;
1756
    lbm_uint16_t inst_idx;
1757
    lbm_uint16_t reserved;
1758
} lbmc_cntl_umq_ack_stable_hdr_t;
1759
1
#define O_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_ack_stable_hdr_t, queue_id)
1760
1
#define L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_ack_stable_hdr_t, queue_id)
1761
1
#define O_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_ack_stable_hdr_t, inst_idx)
1762
1
#define L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_ack_stable_hdr_t, inst_idx)
1763
1
#define O_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ack_stable_hdr_t, reserved)
1764
1
#define L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ack_stable_hdr_t, reserved)
1765
2
#define L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T (int) sizeof(lbmc_cntl_umq_ack_stable_hdr_t)
1766
1767
typedef struct
1768
{
1769
    lbm_uint32_t rcr_idx;
1770
    lbm_uint32_t assign_id;
1771
    lbm_uint16_t appset_idx;
1772
    lbm_uint16_t reserved;
1773
} lbmc_cntl_umq_ack_cr_hdr_t;
1774
1
#define O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_ack_cr_hdr_t, rcr_idx)
1775
1
#define L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_ack_cr_hdr_t, rcr_idx)
1776
1
#define O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ack_cr_hdr_t, assign_id)
1777
1
#define L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ack_cr_hdr_t, assign_id)
1778
1
#define O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ack_cr_hdr_t, appset_idx)
1779
1
#define L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ack_cr_hdr_t, appset_idx)
1780
1
#define O_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ack_cr_hdr_t, reserved)
1781
1
#define L_LBMC_CNTL_UMQ_ACK_CR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ack_cr_hdr_t, reserved)
1782
2
#define L_LBMC_CNTL_UMQ_ACK_CR_HDR_T (int) sizeof(lbmc_cntl_umq_ack_cr_hdr_t)
1783
1784
typedef struct
1785
{
1786
    lbm_uint32_t ulb_src_id;
1787
    lbm_uint32_t assign_id;
1788
    lbm_uint16_t appset_idx;
1789
    lbm_uint16_t reserved;
1790
} lbmc_cntl_umq_ack_ulb_cr_hdr_t;
1791
0
#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)
1792
0
#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)
1793
0
#define O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, assign_id)
1794
0
#define L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, assign_id)
1795
0
#define O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, appset_idx)
1796
0
#define L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, appset_idx)
1797
0
#define O_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, reserved)
1798
0
#define L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ack_ulb_cr_hdr_t, reserved)
1799
0
#define L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T (int) sizeof(lbmc_cntl_umq_ack_ulb_cr_hdr_t)
1800
1801
typedef struct
1802
{
1803
    lbm_uint8_t next_hdr;
1804
    lbm_uint8_t hdr_len;
1805
    lbm_uint8_t msgs;
1806
    lbm_uint8_t ack_type;
1807
} lbmc_cntl_umq_ack_hdr_t;
1808
50
#define O_LBMC_CNTL_UMQ_ACK_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_ack_hdr_t, next_hdr)
1809
50
#define L_LBMC_CNTL_UMQ_ACK_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_ack_hdr_t, next_hdr)
1810
100
#define O_LBMC_CNTL_UMQ_ACK_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_ack_hdr_t, hdr_len)
1811
50
#define L_LBMC_CNTL_UMQ_ACK_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_ack_hdr_t, hdr_len)
1812
150
#define O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS OFFSETOF(lbmc_cntl_umq_ack_hdr_t, msgs)
1813
98
#define L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS SIZEOF(lbmc_cntl_umq_ack_hdr_t, msgs)
1814
100
#define O_LBMC_CNTL_UMQ_ACK_HDR_T_ACK_TYPE OFFSETOF(lbmc_cntl_umq_ack_hdr_t, ack_type)
1815
50
#define L_LBMC_CNTL_UMQ_ACK_HDR_T_ACK_TYPE SIZEOF(lbmc_cntl_umq_ack_hdr_t, ack_type)
1816
50
#define L_LBMC_CNTL_UMQ_ACK_HDR_T (int) sizeof(lbmc_cntl_umq_ack_hdr_t)
1817
1818
/* UMQ control receiver control record header */
1819
typedef struct
1820
{
1821
    lbm_uint8_t next_hdr;
1822
    lbm_uint8_t hdr_len;
1823
    lbm_uint16_t flags;
1824
    lbm_uint32_t queue_id;
1825
    lbm_uint32_t rcr_idx;
1826
    lbm_uint8_t msgid_regid[8];
1827
    lbm_uint8_t msgid_stamp[8];
1828
    lbm_uint32_t topic_tsp;
1829
    lbm_uint32_t q_tsp;
1830
    lbm_uint32_t assign_id;
1831
    lbm_uint16_t appset_idx;
1832
    lbm_uint16_t num_ras;
1833
    lbm_uint32_t queue_ver;
1834
} lbmc_cntl_umq_rcr_hdr_t;
1835
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, next_hdr)
1836
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_rcr_hdr_t, next_hdr)
1837
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, hdr_len)
1838
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_rcr_hdr_t, hdr_len)
1839
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, flags)
1840
96
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_rcr_hdr_t, flags)
1841
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, queue_id)
1842
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_rcr_hdr_t, queue_id)
1843
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, rcr_idx)
1844
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcr_hdr_t, rcr_idx)
1845
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, msgid_regid)
1846
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_rcr_hdr_t, msgid_regid)
1847
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, msgid_stamp)
1848
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_rcr_hdr_t, msgid_stamp)
1849
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_TOPIC_TSP OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, topic_tsp)
1850
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_TOPIC_TSP SIZEOF(lbmc_cntl_umq_rcr_hdr_t, topic_tsp)
1851
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_Q_TSP OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, q_tsp)
1852
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_Q_TSP SIZEOF(lbmc_cntl_umq_rcr_hdr_t, q_tsp)
1853
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, assign_id)
1854
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcr_hdr_t, assign_id)
1855
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, appset_idx)
1856
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_rcr_hdr_t, appset_idx)
1857
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_NUM_RAS OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, num_ras)
1858
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_NUM_RAS SIZEOF(lbmc_cntl_umq_rcr_hdr_t, num_ras)
1859
12
#define O_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_VER OFFSETOF(lbmc_cntl_umq_rcr_hdr_t, queue_ver)
1860
12
#define L_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_VER SIZEOF(lbmc_cntl_umq_rcr_hdr_t, queue_ver)
1861
24
#define L_LBMC_CNTL_UMQ_RCR_HDR_T (int) sizeof(lbmc_cntl_umq_rcr_hdr_t)
1862
1863
/* LBMC control UMQ keepalive header(s) */
1864
typedef struct
1865
{
1866
    lbm_uint32_t transport_idx;
1867
    lbm_uint32_t topic_idx;
1868
} lbmc_cntl_umq_ka_src_hdr_t;
1869
2
#define O_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_umq_ka_src_hdr_t, transport_idx)
1870
2
#define L_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_umq_ka_src_hdr_t, transport_idx)
1871
2
#define O_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_umq_ka_src_hdr_t, topic_idx)
1872
2
#define L_LBMC_CNTL_UMQ_KA_SRC_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_umq_ka_src_hdr_t, topic_idx)
1873
4
#define L_LBMC_CNTL_UMQ_KA_SRC_HDR_T (int) sizeof(lbmc_cntl_umq_ka_src_hdr_t)
1874
1875
typedef struct
1876
{
1877
    lbm_uint32_t rcr_idx;
1878
    lbm_uint32_t assign_id;
1879
} lbmc_cntl_umq_ka_rcv_hdr_t;
1880
1
#define O_LBMC_CNTL_UMQ_KA_RCV_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_ka_rcv_hdr_t, rcr_idx)
1881
1
#define L_LBMC_CNTL_UMQ_KA_RCV_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_ka_rcv_hdr_t, rcr_idx)
1882
1
#define O_LBMC_CNTL_UMQ_KA_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ka_rcv_hdr_t, assign_id)
1883
1
#define L_LBMC_CNTL_UMQ_KA_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ka_rcv_hdr_t, assign_id)
1884
2
#define L_LBMC_CNTL_UMQ_KA_RCV_HDR_T (int) sizeof(lbmc_cntl_umq_ka_rcv_hdr_t)
1885
1886
typedef struct
1887
{
1888
    lbm_uint32_t ulb_src_id;
1889
    lbm_uint32_t assign_id;
1890
} lbmc_cntl_umq_ka_ulb_rcv_hdr_t;
1891
2
#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)
1892
2
#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)
1893
2
#define O_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ka_ulb_rcv_hdr_t, assign_id)
1894
2
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ka_ulb_rcv_hdr_t, assign_id)
1895
4
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T (int) sizeof(lbmc_cntl_umq_ka_ulb_rcv_hdr_t)
1896
1897
typedef struct
1898
{
1899
    lbm_uint32_t ulb_src_id;
1900
    lbm_uint32_t assign_id;
1901
    lbm_uint16_t appset_idx;
1902
    lbm_uint16_t reserved;
1903
} lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t;
1904
1
#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)
1905
1
#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)
1906
1
#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)
1907
1
#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)
1908
1
#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)
1909
1
#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)
1910
1
#define O_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t, reserved)
1911
1
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t, reserved)
1912
2
#define L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T (int) sizeof(lbmc_cntl_umq_ka_ulb_rcv_resp_hdr_t)
1913
1914
typedef struct
1915
{
1916
    lbm_uint8_t next_hdr;
1917
    lbm_uint8_t hdr_len;
1918
    lbm_uint8_t flags;
1919
    lbm_uint8_t ka_type;
1920
    lbm_uint32_t queue_id;
1921
    lbm_uint8_t regid[8];
1922
    lbm_uint16_t inst_idx;
1923
    lbm_uint16_t reserved;
1924
} lbmc_cntl_umq_ka_hdr_t;
1925
22
#define O_LBMC_CNTL_UMQ_KA_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_ka_hdr_t, next_hdr)
1926
22
#define L_LBMC_CNTL_UMQ_KA_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_ka_hdr_t, next_hdr)
1927
44
#define O_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_ka_hdr_t, hdr_len)
1928
22
#define L_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_ka_hdr_t, hdr_len)
1929
22
#define O_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_ka_hdr_t, flags)
1930
32
#define L_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_ka_hdr_t, flags)
1931
44
#define O_LBMC_CNTL_UMQ_KA_HDR_T_KA_TYPE OFFSETOF(lbmc_cntl_umq_ka_hdr_t, ka_type)
1932
22
#define L_LBMC_CNTL_UMQ_KA_HDR_T_KA_TYPE SIZEOF(lbmc_cntl_umq_ka_hdr_t, ka_type)
1933
22
#define O_LBMC_CNTL_UMQ_KA_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_ka_hdr_t, queue_id)
1934
22
#define L_LBMC_CNTL_UMQ_KA_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_ka_hdr_t, queue_id)
1935
22
#define O_LBMC_CNTL_UMQ_KA_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_ka_hdr_t, regid)
1936
22
#define L_LBMC_CNTL_UMQ_KA_HDR_T_REGID SIZEOF(lbmc_cntl_umq_ka_hdr_t, regid)
1937
22
#define O_LBMC_CNTL_UMQ_KA_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_ka_hdr_t, inst_idx)
1938
22
#define L_LBMC_CNTL_UMQ_KA_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_ka_hdr_t, inst_idx)
1939
22
#define O_LBMC_CNTL_UMQ_KA_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_ka_hdr_t, reserved)
1940
22
#define L_LBMC_CNTL_UMQ_KA_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_ka_hdr_t, reserved)
1941
22
#define L_LBMC_CNTL_UMQ_KA_HDR_T (int) sizeof(lbmc_cntl_umq_ka_hdr_t)
1942
1943
/* LBMC control UMQ retransmission request header(s) */
1944
typedef struct
1945
{
1946
    lbm_uint8_t regid[8];
1947
} lbmc_cntl_umq_rxreq_regid_resp_hdr_t;
1948
10
#define O_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_rxreq_regid_resp_hdr_t, regid)
1949
10
#define L_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T_REGID SIZEOF(lbmc_cntl_umq_rxreq_regid_resp_hdr_t, regid)
1950
20
#define L_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T (int) sizeof(lbmc_cntl_umq_rxreq_regid_resp_hdr_t)
1951
1952
typedef struct
1953
{
1954
    lbm_uint32_t ip;
1955
    lbm_uint16_t port;
1956
    lbm_uint16_t reserved;
1957
} lbmc_cntl_umq_rxreq_addr_resp_hdr_t;
1958
8
#define O_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_IP OFFSETOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, ip)
1959
8
#define L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_IP SIZEOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, ip)
1960
8
#define O_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_PORT OFFSETOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, port)
1961
8
#define L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_PORT SIZEOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, port)
1962
8
#define O_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, reserved)
1963
8
#define L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_rxreq_addr_resp_hdr_t, reserved)
1964
16
#define L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T (int) sizeof(lbmc_cntl_umq_rxreq_addr_resp_hdr_t)
1965
1966
typedef struct
1967
{
1968
    lbm_uint32_t assign_id;
1969
    lbm_uint8_t msgid_regid[8];
1970
    lbm_uint8_t msgid_stamp[8];
1971
} lbmc_cntl_umq_rxreq_mr_hdr_t;
1972
2
#define O_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rxreq_mr_hdr_t, assign_id)
1973
2
#define L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rxreq_mr_hdr_t, assign_id)
1974
2
#define O_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_rxreq_mr_hdr_t, msgid_regid)
1975
2
#define L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_rxreq_mr_hdr_t, msgid_regid)
1976
2
#define O_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_rxreq_mr_hdr_t, msgid_stamp)
1977
2
#define L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_rxreq_mr_hdr_t, msgid_stamp)
1978
4
#define L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T (int) sizeof(lbmc_cntl_umq_rxreq_mr_hdr_t)
1979
1980
typedef struct
1981
{
1982
    lbm_uint32_t ulb_src_id;
1983
    lbm_uint32_t assign_id;
1984
    lbm_uint16_t appset_idx;
1985
    lbm_uint16_t reserved;
1986
    lbm_uint8_t msgid_regid[8];
1987
    lbm_uint8_t msgid_stamp[8];
1988
} lbmc_cntl_umq_rxreq_ulb_mr_hdr_t;
1989
0
#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)
1990
0
#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)
1991
0
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, assign_id)
1992
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, assign_id)
1993
0
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, appset_idx)
1994
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, appset_idx)
1995
0
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, reserved)
1996
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, reserved)
1997
0
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, msgid_regid)
1998
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, msgid_regid)
1999
0
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, msgid_stamp)
2000
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t, msgid_stamp)
2001
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T (int) sizeof(lbmc_cntl_umq_rxreq_ulb_mr_hdr_t)
2002
2003
typedef struct
2004
{
2005
    lbm_uint32_t ulb_src_id;
2006
    lbm_uint32_t assign_id;
2007
    lbm_uint8_t msgid_regid[8];
2008
    lbm_uint8_t msgid_stamp[8];
2009
} lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t;
2010
0
#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)
2011
0
#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)
2012
0
#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)
2013
0
#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)
2014
0
#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)
2015
0
#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)
2016
0
#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)
2017
0
#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)
2018
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T (int) sizeof(lbmc_cntl_umq_rxreq_ulb_mr_abort_hdr_t)
2019
2020
typedef struct
2021
{
2022
    lbm_uint32_t tsp;
2023
} lbmc_cntl_umq_rxreq_qrcrr_hdr_t;
2024
1
#define O_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T_TSP OFFSETOF(lbmc_cntl_umq_rxreq_qrcrr_hdr_t, tsp)
2025
1
#define L_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T_TSP SIZEOF(lbmc_cntl_umq_rxreq_qrcrr_hdr_t, tsp)
2026
2
#define L_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T (int) sizeof(lbmc_cntl_umq_rxreq_qrcrr_hdr_t)
2027
2028
typedef struct
2029
{
2030
    lbm_uint32_t rcr_idx;
2031
    lbm_uint32_t tsp;
2032
} lbmc_cntl_umq_rxreq_trcrr_hdr_t;
2033
0
#define O_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rxreq_trcrr_hdr_t, rcr_idx)
2034
0
#define L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rxreq_trcrr_hdr_t, rcr_idx)
2035
0
#define O_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_TSP OFFSETOF(lbmc_cntl_umq_rxreq_trcrr_hdr_t, tsp)
2036
0
#define L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T_TSP SIZEOF(lbmc_cntl_umq_rxreq_trcrr_hdr_t, tsp)
2037
0
#define L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T (int) sizeof(lbmc_cntl_umq_rxreq_trcrr_hdr_t)
2038
2039
typedef struct
2040
{
2041
    lbm_uint32_t ulb_src_id;
2042
    lbm_uint32_t assign_id;
2043
    lbm_uint32_t tsp;
2044
} lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t;
2045
0
#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)
2046
0
#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)
2047
0
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t, assign_id)
2048
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t, assign_id)
2049
0
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_TSP OFFSETOF(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t, tsp)
2050
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T_TSP SIZEOF(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t, tsp)
2051
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T (int) sizeof(lbmc_cntl_umq_rxreq_ulb_trcrr_hdr_t)
2052
2053
typedef struct
2054
{
2055
    lbm_uint32_t ulb_src_id;
2056
    lbm_uint32_t assign_id;
2057
    lbm_uint32_t tsp;
2058
} lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t;
2059
0
#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)
2060
0
#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)
2061
0
#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)
2062
0
#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)
2063
0
#define O_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_TSP OFFSETOF(lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t, tsp)
2064
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T_TSP SIZEOF(lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t, tsp)
2065
0
#define L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T (int) sizeof(lbmc_cntl_umq_rxreq_ulb_trcrr_abort_hdr_t)
2066
2067
typedef struct
2068
{
2069
    lbm_uint8_t next_hdr;
2070
    lbm_uint8_t hdr_len;
2071
    lbm_uint8_t flags;
2072
    lbm_uint8_t rxreq_type;
2073
} lbmc_cntl_umq_rxreq_hdr_t;
2074
18
#define O_LBMC_CNTL_UMQ_RXREQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_rxreq_hdr_t, next_hdr)
2075
18
#define L_LBMC_CNTL_UMQ_RXREQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_rxreq_hdr_t, next_hdr)
2076
36
#define O_LBMC_CNTL_UMQ_RXREQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_rxreq_hdr_t, hdr_len)
2077
18
#define L_LBMC_CNTL_UMQ_RXREQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_rxreq_hdr_t, hdr_len)
2078
36
#define O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_rxreq_hdr_t, flags)
2079
32
#define L_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_rxreq_hdr_t, flags)
2080
36
#define O_LBMC_CNTL_UMQ_RXREQ_HDR_T_RXREQ_TYPE OFFSETOF(lbmc_cntl_umq_rxreq_hdr_t, rxreq_type)
2081
18
#define L_LBMC_CNTL_UMQ_RXREQ_HDR_T_RXREQ_TYPE SIZEOF(lbmc_cntl_umq_rxreq_hdr_t, rxreq_type)
2082
18
#define L_LBMC_CNTL_UMQ_RXREQ_HDR_T (int) sizeof(lbmc_cntl_umq_rxreq_hdr_t)
2083
2084
/* LBMC control UMQ queue management header */
2085
typedef struct
2086
{
2087
    lbm_uint8_t next_hdr;
2088
    lbm_uint8_t hdr_len;
2089
} lbmc_cntl_umq_qmgmt_hdr_t;
2090
48
#define O_LBMC_CNTL_UMQ_QMGMT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_qmgmt_hdr_t, next_hdr)
2091
48
#define L_LBMC_CNTL_UMQ_QMGMT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_qmgmt_hdr_t, next_hdr)
2092
96
#define O_LBMC_CNTL_UMQ_QMGMT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_qmgmt_hdr_t, hdr_len)
2093
48
#define L_LBMC_CNTL_UMQ_QMGMT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_qmgmt_hdr_t, hdr_len)
2094
48
#define L_LBMC_CNTL_UMQ_QMGMT_HDR_T (int) sizeof(lbmc_cntl_umq_qmgmt_hdr_t)
2095
2096
/* LBMC control UMQ resubmission request header */
2097
typedef struct
2098
{
2099
    lbm_uint8_t next_hdr;
2100
    lbm_uint8_t hdr_len;
2101
    lbm_uint16_t flags;
2102
    lbm_uint8_t msgid_regid[8];
2103
    lbm_uint8_t msgid_stamp[8];
2104
    lbm_uint32_t rcr_idx;
2105
    lbm_uint32_t resp_ip;
2106
    lbm_uint16_t resp_port;
2107
    lbm_uint16_t appset_idx;
2108
} lbmc_cntl_umq_resub_req_hdr_t;
2109
10
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, next_hdr)
2110
10
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, next_hdr)
2111
10
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, hdr_len)
2112
10
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, hdr_len)
2113
10
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, flags)
2114
16
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, flags)
2115
10
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, msgid_regid)
2116
10
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, msgid_regid)
2117
10
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, msgid_stamp)
2118
10
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, msgid_stamp)
2119
10
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, rcr_idx)
2120
10
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, rcr_idx)
2121
10
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_IP OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, resp_ip)
2122
10
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_IP SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, resp_ip)
2123
10
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_PORT OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, resp_port)
2124
10
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RESP_PORT SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, resp_port)
2125
10
#define O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_resub_req_hdr_t, appset_idx)
2126
10
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_resub_req_hdr_t, appset_idx)
2127
20
#define L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T (int) sizeof(lbmc_cntl_umq_resub_req_hdr_t)
2128
2129
/* LBMC control UMQ resubmission response header */
2130
typedef struct
2131
{
2132
    lbm_uint8_t next_hdr;
2133
    lbm_uint8_t hdr_len;
2134
    lbm_uint8_t flags;
2135
    lbm_uint8_t code;
2136
    lbm_uint8_t msgid_regid[8];
2137
    lbm_uint8_t msgid_stamp[8];
2138
    lbm_uint32_t rcr_idx;
2139
    lbm_uint16_t reserved;
2140
    lbm_uint16_t appset_idx;
2141
} lbmc_cntl_umq_resub_resp_hdr_t;
2142
9
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, next_hdr)
2143
9
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, next_hdr)
2144
9
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, hdr_len)
2145
9
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, hdr_len)
2146
9
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, flags)
2147
16
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, flags)
2148
9
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_CODE OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, code)
2149
9
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_CODE SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, code)
2150
9
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, msgid_regid)
2151
9
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, msgid_regid)
2152
9
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, msgid_stamp)
2153
9
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, msgid_stamp)
2154
9
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, rcr_idx)
2155
9
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, rcr_idx)
2156
9
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, reserved)
2157
9
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, reserved)
2158
9
#define O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_resub_resp_hdr_t, appset_idx)
2159
9
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_resub_resp_hdr_t, appset_idx)
2160
18
#define L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T (int) sizeof(lbmc_cntl_umq_resub_resp_hdr_t)
2161
2162
/* LBMC control topic interest header */
2163
typedef struct
2164
{
2165
    lbm_uint8_t next_hdr;
2166
    lbm_uint8_t hdr_len;
2167
    lbm_uint16_t flags;
2168
    lbm_uint32_t domain_id;
2169
} lbmc_cntl_topic_interest_hdr_t;
2170
11
#define O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_topic_interest_hdr_t, next_hdr)
2171
11
#define L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_topic_interest_hdr_t, next_hdr)
2172
11
#define O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_topic_interest_hdr_t, hdr_len)
2173
11
#define L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_topic_interest_hdr_t, hdr_len)
2174
11
#define O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS OFFSETOF(lbmc_cntl_topic_interest_hdr_t, flags)
2175
48
#define L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS SIZEOF(lbmc_cntl_topic_interest_hdr_t, flags)
2176
11
#define O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_topic_interest_hdr_t, domain_id)
2177
11
#define L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_topic_interest_hdr_t, domain_id)
2178
22
#define L_LBMC_CNTL_TOPIC_INTEREST_HDR_T (int) sizeof(lbmc_cntl_topic_interest_hdr_t)
2179
2180
/* LBMC control pattern interest header */
2181
typedef struct
2182
{
2183
    lbm_uint8_t next_hdr;
2184
    lbm_uint8_t hdr_len;
2185
    lbm_uint8_t flags;
2186
    lbm_uint8_t type;
2187
    lbm_uint32_t domain_id;
2188
    lbm_uint8_t idx[8];
2189
} lbmc_cntl_pattern_interest_hdr_t;
2190
15
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, next_hdr)
2191
15
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_pattern_interest_hdr_t, next_hdr)
2192
15
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, hdr_len)
2193
15
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_pattern_interest_hdr_t, hdr_len)
2194
15
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, flags)
2195
48
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS SIZEOF(lbmc_cntl_pattern_interest_hdr_t, flags)
2196
15
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_TYPE OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, type)
2197
15
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_TYPE SIZEOF(lbmc_cntl_pattern_interest_hdr_t, type)
2198
15
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, domain_id)
2199
15
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_pattern_interest_hdr_t, domain_id)
2200
15
#define O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_INDEX OFFSETOF(lbmc_cntl_pattern_interest_hdr_t, idx)
2201
15
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_INDEX SIZEOF(lbmc_cntl_pattern_interest_hdr_t, idx)
2202
30
#define L_LBMC_CNTL_PATTERN_INTEREST_HDR_T (int) sizeof(lbmc_cntl_pattern_interest_hdr_t)
2203
2204
/* LBMC control advertisement header */
2205
typedef struct
2206
{
2207
    lbm_uint8_t next_hdr;
2208
    lbm_uint8_t hdr_len;
2209
    lbm_uint8_t flags;
2210
    lbm_uint8_t hop_count;
2211
    lbm_uint32_t ad_flags;
2212
    lbm_uint32_t cost;
2213
    lbm_uint32_t transport_idx;
2214
    lbm_uint32_t topic_idx;
2215
    lbm_uint32_t low_seqno;
2216
    lbm_uint32_t high_seqno;
2217
    lbm_uint32_t domain_id;
2218
    lbm_uint8_t pat_idx[8];
2219
    lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
2220
} lbmc_cntl_advertisement_hdr_t;
2221
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_advertisement_hdr_t, next_hdr)
2222
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_advertisement_hdr_t, next_hdr)
2223
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_advertisement_hdr_t, hdr_len)
2224
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_advertisement_hdr_t, hdr_len)
2225
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS OFFSETOF(lbmc_cntl_advertisement_hdr_t, flags)
2226
80
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS SIZEOF(lbmc_cntl_advertisement_hdr_t, flags)
2227
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HOP_COUNT OFFSETOF(lbmc_cntl_advertisement_hdr_t, hop_count)
2228
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HOP_COUNT SIZEOF(lbmc_cntl_advertisement_hdr_t, hop_count)
2229
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS OFFSETOF(lbmc_cntl_advertisement_hdr_t, ad_flags)
2230
80
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS SIZEOF(lbmc_cntl_advertisement_hdr_t, ad_flags)
2231
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_COST OFFSETOF(lbmc_cntl_advertisement_hdr_t, cost)
2232
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_COST SIZEOF(lbmc_cntl_advertisement_hdr_t, cost)
2233
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_advertisement_hdr_t, transport_idx)
2234
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_advertisement_hdr_t, transport_idx)
2235
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_advertisement_hdr_t, topic_idx)
2236
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_advertisement_hdr_t, topic_idx)
2237
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_LOW_SEQNO OFFSETOF(lbmc_cntl_advertisement_hdr_t, low_seqno)
2238
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_LOW_SEQNO SIZEOF(lbmc_cntl_advertisement_hdr_t, low_seqno)
2239
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HIGH_SEQNO OFFSETOF(lbmc_cntl_advertisement_hdr_t, high_seqno)
2240
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HIGH_SEQNO SIZEOF(lbmc_cntl_advertisement_hdr_t, high_seqno)
2241
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_advertisement_hdr_t, domain_id)
2242
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_advertisement_hdr_t, domain_id)
2243
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_PAT_IDX OFFSETOF(lbmc_cntl_advertisement_hdr_t, pat_idx)
2244
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_PAT_IDX SIZEOF(lbmc_cntl_advertisement_hdr_t, pat_idx)
2245
13
#define O_LBMC_CNTL_ADVERTISEMENT_HDR_T_CTXINST OFFSETOF(lbmc_cntl_advertisement_hdr_t, ctxinst)
2246
13
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T_CTXINST SIZEOF(lbmc_cntl_advertisement_hdr_t, ctxinst)
2247
26
#define L_LBMC_CNTL_ADVERTISEMENT_HDR_T (int) sizeof(lbmc_cntl_advertisement_hdr_t)
2248
2249
/* LBMC control UME storename header. */
2250
5
#define O_LBMC_UME_STORENAME_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
2251
5
#define L_LBMC_UME_STORENAME_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
2252
10
#define O_LBMC_UME_STORENAME_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
2253
5
#define L_LBMC_UME_STORENAME_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
2254
9
#define O_LBMC_UME_STORENAME_HDR_T_FLAGS OFFSETOF(lbmc_basic_hdr_t, res)
2255
20
#define L_LBMC_UME_STORENAME_HDR_T_FLAGS SIZEOF(lbmc_basic_hdr_t, res)
2256
#define O_LBMC_UME_STORENAME_HDR_T_STORE (OFFSETOF(lbmc_basic_hdr_t, res) + SIZEOF(lbmc_basic_hdr_t, res))
2257
2258
/* UMQ control ULB receiver control record header */
2259
typedef struct
2260
{
2261
    lbm_uint8_t next_hdr;
2262
    lbm_uint8_t hdr_len;
2263
    lbm_uint16_t flags;
2264
    lbm_uint32_t queue_id;
2265
    lbm_uint32_t ulb_src_id;
2266
    lbm_uint8_t msgid_regid[8];
2267
    lbm_uint8_t msgid_stamp[8];
2268
    lbm_uint32_t topic_tsp;
2269
    lbm_uint32_t assign_id;
2270
    lbm_uint16_t appset_idx;
2271
    lbm_uint16_t num_ras;
2272
} lbmc_cntl_umq_ulb_rcr_hdr_t;
2273
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, next_hdr)
2274
5
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, next_hdr)
2275
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, hdr_len)
2276
5
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, hdr_len)
2277
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, flags)
2278
80
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, flags)
2279
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, queue_id)
2280
5
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, queue_id)
2281
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ULB_SRC_ID OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, ulb_src_id)
2282
5
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ULB_SRC_ID SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, ulb_src_id)
2283
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_REGID OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, msgid_regid)
2284
5
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_REGID SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, msgid_regid)
2285
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_STAMP OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, msgid_stamp)
2286
5
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_STAMP SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, msgid_stamp)
2287
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_TOPIC_TSP OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, topic_tsp)
2288
5
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_TOPIC_TSP SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, topic_tsp)
2289
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, assign_id)
2290
5
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, assign_id)
2291
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_APPSET_IDX OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, appset_idx)
2292
5
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_APPSET_IDX SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, appset_idx)
2293
5
#define O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NUM_RAS OFFSETOF(lbmc_cntl_umq_ulb_rcr_hdr_t, num_ras)
2294
5
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NUM_RAS SIZEOF(lbmc_cntl_umq_ulb_rcr_hdr_t, num_ras)
2295
10
#define L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T (int) sizeof(lbmc_cntl_umq_ulb_rcr_hdr_t)
2296
2297
/* LBMC control UMQ load factor header */
2298
typedef struct
2299
{
2300
    lbm_uint8_t next_hdr;
2301
    lbm_uint8_t hdr_len;
2302
    lbm_uint8_t flags;
2303
    lbm_uint8_t type;
2304
    lbm_uint16_t num_srcs;
2305
    lbm_uint16_t lf;
2306
} lbmc_cntl_umq_lf_hdr_t;
2307
10
#define O_LBMC_CNTL_UMQ_LF_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_lf_hdr_t, next_hdr)
2308
10
#define L_LBMC_CNTL_UMQ_LF_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_lf_hdr_t, next_hdr)
2309
10
#define O_LBMC_CNTL_UMQ_LF_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_lf_hdr_t, hdr_len)
2310
10
#define L_LBMC_CNTL_UMQ_LF_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_lf_hdr_t, hdr_len)
2311
10
#define O_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_lf_hdr_t, flags)
2312
16
#define L_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_lf_hdr_t, flags)
2313
10
#define O_LBMC_CNTL_UMQ_LF_HDR_T_TYPE OFFSETOF(lbmc_cntl_umq_lf_hdr_t, type)
2314
10
#define L_LBMC_CNTL_UMQ_LF_HDR_T_TYPE SIZEOF(lbmc_cntl_umq_lf_hdr_t, type)
2315
10
#define O_LBMC_CNTL_UMQ_LF_HDR_T_NUM_SRCS OFFSETOF(lbmc_cntl_umq_lf_hdr_t, num_srcs)
2316
10
#define L_LBMC_CNTL_UMQ_LF_HDR_T_NUM_SRCS SIZEOF(lbmc_cntl_umq_lf_hdr_t, num_srcs)
2317
10
#define O_LBMC_CNTL_UMQ_LF_HDR_T_LF OFFSETOF(lbmc_cntl_umq_lf_hdr_t, lf)
2318
10
#define L_LBMC_CNTL_UMQ_LF_HDR_T_LF SIZEOF(lbmc_cntl_umq_lf_hdr_t, lf)
2319
20
#define L_LBMC_CNTL_UMQ_LF_HDR_T (int) sizeof(lbmc_cntl_umq_lf_hdr_t)
2320
2321
/* LBMC control context information header */
2322
typedef struct
2323
{
2324
    lbm_uint8_t next_hdr;
2325
    lbm_uint8_t hdr_len;
2326
    lbm_uint16_t flags;
2327
    lbm_uint8_t reserved;
2328
    lbm_uint8_t hop_count;
2329
    lbm_uint16_t port;
2330
    lbm_uint32_t addr;
2331
    lbm_uint32_t domain_id;
2332
    lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
2333
} lbmc_cntl_ctxinfo_hdr_t;
2334
15
#define O_LBMC_CNTL_CTXINFO_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, next_hdr)
2335
15
#define L_LBMC_CNTL_CTXINFO_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ctxinfo_hdr_t, next_hdr)
2336
30
#define O_LBMC_CNTL_CTXINFO_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, hdr_len)
2337
15
#define L_LBMC_CNTL_CTXINFO_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ctxinfo_hdr_t, hdr_len)
2338
30
#define O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, flags)
2339
128
#define L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS SIZEOF(lbmc_cntl_ctxinfo_hdr_t, flags)
2340
15
#define O_LBMC_CNTL_CTXINFO_HDR_T_RESERVED OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, reserved)
2341
15
#define L_LBMC_CNTL_CTXINFO_HDR_T_RESERVED SIZEOF(lbmc_cntl_ctxinfo_hdr_t, reserved)
2342
15
#define O_LBMC_CNTL_CTXINFO_HDR_T_HOP_COUNT OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, hop_count)
2343
15
#define L_LBMC_CNTL_CTXINFO_HDR_T_HOP_COUNT SIZEOF(lbmc_cntl_ctxinfo_hdr_t, hop_count)
2344
15
#define O_LBMC_CNTL_CTXINFO_HDR_T_PORT OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, port)
2345
15
#define L_LBMC_CNTL_CTXINFO_HDR_T_PORT SIZEOF(lbmc_cntl_ctxinfo_hdr_t, port)
2346
15
#define O_LBMC_CNTL_CTXINFO_HDR_T_ADDR OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, addr)
2347
15
#define L_LBMC_CNTL_CTXINFO_HDR_T_ADDR SIZEOF(lbmc_cntl_ctxinfo_hdr_t, addr)
2348
15
#define O_LBMC_CNTL_CTXINFO_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, domain_id)
2349
15
#define L_LBMC_CNTL_CTXINFO_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_ctxinfo_hdr_t, domain_id)
2350
15
#define O_LBMC_CNTL_CTXINFO_HDR_T_CTXINST OFFSETOF(lbmc_cntl_ctxinfo_hdr_t, ctxinst)
2351
15
#define L_LBMC_CNTL_CTXINFO_HDR_T_CTXINST SIZEOF(lbmc_cntl_ctxinfo_hdr_t, ctxinst)
2352
29
#define L_LBMC_CNTL_CTXINFO_HDR_T (int) sizeof(lbmc_cntl_ctxinfo_hdr_t)
2353
2354
/* LBMC control UME proxy source election header */
2355
typedef struct
2356
{
2357
    lbm_uint8_t next_hdr;
2358
    lbm_uint8_t hdr_len;
2359
    lbm_uint16_t flags;
2360
    lbm_uint32_t source_ip;
2361
    lbm_uint32_t store_ip;
2362
    lbm_uint32_t transport_idx;
2363
    lbm_uint32_t topic_idx;
2364
    lbm_uint16_t source_port;
2365
    lbm_uint16_t store_port;
2366
    lbm_uint8_t source_ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
2367
    lbm_uint8_t store_ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
2368
} lbmc_cntl_ume_pser_hdr_t;
2369
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_pser_hdr_t, next_hdr)
2370
14
#define L_LBMC_CNTL_UME_PSER_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_pser_hdr_t, next_hdr)
2371
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_pser_hdr_t, hdr_len)
2372
14
#define L_LBMC_CNTL_UME_PSER_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_pser_hdr_t, hdr_len)
2373
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_pser_hdr_t, flags)
2374
64
#define L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_pser_hdr_t, flags)
2375
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_IP OFFSETOF(lbmc_cntl_ume_pser_hdr_t, source_ip)
2376
14
#define L_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_IP SIZEOF(lbmc_cntl_ume_pser_hdr_t, source_ip)
2377
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_STORE_IP OFFSETOF(lbmc_cntl_ume_pser_hdr_t, store_ip)
2378
14
#define L_LBMC_CNTL_UME_PSER_HDR_T_STORE_IP SIZEOF(lbmc_cntl_ume_pser_hdr_t, store_ip)
2379
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_ume_pser_hdr_t, transport_idx)
2380
14
#define L_LBMC_CNTL_UME_PSER_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_ume_pser_hdr_t, transport_idx)
2381
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_ume_pser_hdr_t, topic_idx)
2382
14
#define L_LBMC_CNTL_UME_PSER_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_ume_pser_hdr_t, topic_idx)
2383
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_PORT OFFSETOF(lbmc_cntl_ume_pser_hdr_t, source_port)
2384
14
#define L_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_PORT SIZEOF(lbmc_cntl_ume_pser_hdr_t, source_port)
2385
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_STORE_PORT OFFSETOF(lbmc_cntl_ume_pser_hdr_t, store_port)
2386
14
#define L_LBMC_CNTL_UME_PSER_HDR_T_STORE_PORT SIZEOF(lbmc_cntl_ume_pser_hdr_t, store_port)
2387
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_CTXINST OFFSETOF(lbmc_cntl_ume_pser_hdr_t, source_ctxinst)
2388
14
#define L_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_CTXINST SIZEOF(lbmc_cntl_ume_pser_hdr_t, source_ctxinst)
2389
14
#define O_LBMC_CNTL_UME_PSER_HDR_T_STORE_CTXINST OFFSETOF(lbmc_cntl_ume_pser_hdr_t, store_ctxinst)
2390
14
#define L_LBMC_CNTL_UME_PSER_HDR_T_STORE_CTXINST SIZEOF(lbmc_cntl_ume_pser_hdr_t, store_ctxinst)
2391
28
#define L_LBMC_CNTL_UME_PSER_HDR_T (int) sizeof(lbmc_cntl_ume_pser_hdr_t)
2392
2393
/* LBMC domain header */
2394
typedef struct
2395
{
2396
    lbm_uint8_t next_hdr;
2397
    lbm_uint8_t hdr_len;
2398
    lbm_uint16_t flags;
2399
    lbm_uint32_t domain;
2400
} lbmc_domain_hdr_t;
2401
12
#define O_LBMC_DOMAIN_HDR_T_NEXT_HDR OFFSETOF(lbmc_domain_hdr_t, next_hdr)
2402
12
#define L_LBMC_DOMAIN_HDR_T_NEXT_HDR SIZEOF(lbmc_domain_hdr_t, next_hdr)
2403
12
#define O_LBMC_DOMAIN_HDR_T_HDR_LEN OFFSETOF(lbmc_domain_hdr_t, hdr_len)
2404
12
#define L_LBMC_DOMAIN_HDR_T_HDR_LEN SIZEOF(lbmc_domain_hdr_t, hdr_len)
2405
12
#define O_LBMC_DOMAIN_HDR_T_FLAGS OFFSETOF(lbmc_domain_hdr_t, flags)
2406
32
#define L_LBMC_DOMAIN_HDR_T_FLAGS SIZEOF(lbmc_domain_hdr_t, flags)
2407
12
#define O_LBMC_DOMAIN_HDR_T_DOMAIN OFFSETOF(lbmc_domain_hdr_t, domain)
2408
12
#define L_LBMC_DOMAIN_HDR_T_DOMAIN SIZEOF(lbmc_domain_hdr_t, domain)
2409
24
#define L_LBMC_DOMAIN_HDR_T (int) sizeof(lbmc_domain_hdr_t)
2410
2411
/* LBMC control TNWG capabilities header */
2412
typedef struct
2413
{
2414
    lbm_uint8_t next_hdr;
2415
    lbm_uint8_t hdr_len;
2416
    lbm_uint16_t flags;
2417
    lbm_uint32_t capabilities1;
2418
    lbm_uint32_t capabilities2;
2419
    lbm_uint32_t capabilities3;
2420
    lbm_uint32_t capabilities4;
2421
} lbmc_cntl_tnwg_capabilities_hdr_t;
2422
2423
21
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, next_hdr)
2424
21
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, next_hdr)
2425
21
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, hdr_len)
2426
21
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, hdr_len)
2427
21
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, flags)
2428
16
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, flags)
2429
21
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1 OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities1)
2430
32
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1 SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities1)
2431
21
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES2 OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities2)
2432
21
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES2 SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities2)
2433
21
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3 OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities3)
2434
32
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3 SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities3)
2435
21
#define O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES4 OFFSETOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities4)
2436
21
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES4 SIZEOF(lbmc_cntl_tnwg_capabilities_hdr_t, capabilities4)
2437
42
#define L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T (int) sizeof(lbmc_cntl_tnwg_capabilities_hdr_t)
2438
2439
/* LBMC pattern index header */
2440
typedef struct
2441
{
2442
    lbm_uint8_t next_hdr;
2443
    lbm_uint8_t hdr_len;
2444
    lbm_uint16_t flags;
2445
    char patidx[8];
2446
} lbmc_patidx_hdr_t;
2447
19
#define O_LBMC_PATIDX_HDR_T_NEXT_HDR OFFSETOF(lbmc_patidx_hdr_t, next_hdr)
2448
19
#define L_LBMC_PATIDX_HDR_T_NEXT_HDR SIZEOF(lbmc_patidx_hdr_t, next_hdr)
2449
19
#define O_LBMC_PATIDX_HDR_T_HDR_LEN OFFSETOF(lbmc_patidx_hdr_t, hdr_len)
2450
19
#define L_LBMC_PATIDX_HDR_T_HDR_LEN SIZEOF(lbmc_patidx_hdr_t, hdr_len)
2451
19
#define O_LBMC_PATIDX_HDR_T_FLAGS OFFSETOF(lbmc_patidx_hdr_t, flags)
2452
16
#define L_LBMC_PATIDX_HDR_T_FLAGS SIZEOF(lbmc_patidx_hdr_t, flags)
2453
19
#define O_LBMC_PATIDX_HDR_T_PATIDX OFFSETOF(lbmc_patidx_hdr_t, patidx)
2454
19
#define L_LBMC_PATIDX_HDR_T_PATIDX SIZEOF(lbmc_patidx_hdr_t, patidx)
2455
38
#define L_LBMC_PATIDX_HDR_T (int) sizeof(lbmc_patidx_hdr_t)
2456
2457
/* LBMC control UME client lifetime header */
2458
typedef struct
2459
{
2460
    lbm_uint8_t next_hdr;
2461
    lbm_uint8_t hdr_len;
2462
    lbm_uint16_t flags;
2463
    lbm_uint32_t activity_tmo;
2464
    lbm_uint32_t lifetime;
2465
    lbm_uint32_t ttl;
2466
} lbmc_cntl_ume_client_lifetime_hdr_t;
2467
13
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, next_hdr)
2468
13
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, next_hdr)
2469
13
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, hdr_len)
2470
13
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, hdr_len)
2471
13
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, flags)
2472
16
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, flags)
2473
13
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_ACTIVITY_TMO OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, activity_tmo)
2474
13
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_ACTIVITY_TMO SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, activity_tmo)
2475
13
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_LIFETIME OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, lifetime)
2476
13
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_LIFETIME SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, lifetime)
2477
13
#define O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_TTL OFFSETOF(lbmc_cntl_ume_client_lifetime_hdr_t, ttl)
2478
13
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_TTL SIZEOF(lbmc_cntl_ume_client_lifetime_hdr_t, ttl)
2479
26
#define L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T (int) sizeof(lbmc_cntl_ume_client_lifetime_hdr_t)
2480
2481
/* LBMC control UME session ID header */
2482
typedef struct
2483
{
2484
    lbm_uint8_t next_hdr;
2485
    lbm_uint8_t hdr_len;
2486
    lbm_uint16_t flags;
2487
    lbm_uint8_t sid[8];
2488
} lbmc_cntl_ume_sid_hdr_t;
2489
11
#define O_LBMC_CNTL_UME_SID_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_sid_hdr_t, next_hdr)
2490
11
#define L_LBMC_CNTL_UME_SID_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_sid_hdr_t, next_hdr)
2491
11
#define O_LBMC_CNTL_UME_SID_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_sid_hdr_t, hdr_len)
2492
11
#define L_LBMC_CNTL_UME_SID_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_sid_hdr_t, hdr_len)
2493
11
#define O_LBMC_CNTL_UME_SID_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_sid_hdr_t, flags)
2494
16
#define L_LBMC_CNTL_UME_SID_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_sid_hdr_t, flags)
2495
11
#define O_LBMC_CNTL_UME_SID_HDR_T_SID OFFSETOF(lbmc_cntl_ume_sid_hdr_t, sid)
2496
11
#define L_LBMC_CNTL_UME_SID_HDR_T_SID SIZEOF(lbmc_cntl_ume_sid_hdr_t, sid)
2497
22
#define L_LBMC_CNTL_UME_SID_HDR_T (int) sizeof(lbmc_cntl_ume_sid_hdr_t)
2498
2499
/* LBMC control UMQ index command header */
2500
typedef struct
2501
{
2502
    lbm_uint8_t next_hdr;
2503
    lbm_uint8_t hdr_len;
2504
    lbm_uint8_t flags;
2505
    lbm_uint8_t cmd_type;
2506
    lbm_uint32_t queue_id;
2507
    lbm_uint16_t cmd_id;
2508
    lbm_uint16_t inst_idx;
2509
    lbm_uint8_t regid[8];
2510
} lbmc_cntl_umq_idx_cmd_hdr_t;
2511
28
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, next_hdr)
2512
28
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, next_hdr)
2513
56
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, hdr_len)
2514
28
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, hdr_len)
2515
28
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, flags)
2516
16
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, flags)
2517
28
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_TYPE OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, cmd_type)
2518
28
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_TYPE SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, cmd_type)
2519
28
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, queue_id)
2520
28
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, queue_id)
2521
28
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, cmd_id)
2522
28
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, cmd_id)
2523
28
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, inst_idx)
2524
28
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, inst_idx)
2525
28
#define O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_idx_cmd_hdr_t, regid)
2526
28
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_REGID SIZEOF(lbmc_cntl_umq_idx_cmd_hdr_t, regid)
2527
61
#define L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_hdr_t)
2528
2529
typedef struct
2530
{
2531
    lbm_uint32_t rcr_idx;
2532
    lbm_uint32_t assign_id;
2533
} lbmc_cntl_umq_rcv_stop_idx_assign_hdr_t;
2534
1
#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)
2535
1
#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)
2536
1
#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)
2537
1
#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)
2538
2
#define L_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_rcv_stop_idx_assign_hdr_t)
2539
2540
typedef struct
2541
{
2542
    lbm_uint32_t rcr_idx;
2543
    lbm_uint32_t assign_id;
2544
} lbmc_cntl_umq_rcv_start_idx_assign_hdr_t;
2545
4
#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)
2546
4
#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)
2547
4
#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)
2548
4
#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)
2549
8
#define L_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_rcv_start_idx_assign_hdr_t)
2550
2551
typedef struct
2552
{
2553
    lbm_uint32_t rcr_idx;
2554
    lbm_uint32_t assign_id;
2555
    lbm_uint32_t flags;
2556
    lbm_uint8_t index_len;
2557
    lbm_uint8_t reserved[3];
2558
} lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t;
2559
0
#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)
2560
0
#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)
2561
0
#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)
2562
0
#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)
2563
0
#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)
2564
16
#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)
2565
0
#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)
2566
0
#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)
2567
0
#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)
2568
0
#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)
2569
#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
2570
0
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_rcv_release_idx_assign_hdr_t)
2571
2572
typedef struct
2573
{
2574
    lbm_uint32_t src_id;
2575
    lbm_uint32_t assign_id;
2576
    lbm_uint16_t appset_idx;
2577
    lbm_uint16_t reserved;
2578
} lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t;
2579
0
#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)
2580
0
#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)
2581
0
#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)
2582
0
#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)
2583
0
#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)
2584
0
#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)
2585
0
#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)
2586
0
#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)
2587
0
#define L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_ulb_rcv_stop_idx_assign_hdr_t)
2588
2589
typedef struct
2590
{
2591
    lbm_uint32_t src_id;
2592
    lbm_uint32_t assign_id;
2593
    lbm_uint16_t appset_idx;
2594
    lbm_uint16_t reserved;
2595
} lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t;
2596
1
#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)
2597
1
#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)
2598
1
#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)
2599
1
#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)
2600
1
#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)
2601
1
#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)
2602
1
#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)
2603
1
#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)
2604
2
#define L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_ulb_rcv_start_idx_assign_hdr_t)
2605
2606
typedef struct
2607
{
2608
    lbm_uint32_t src_id;
2609
    lbm_uint32_t assign_id;
2610
    lbm_uint32_t flags;
2611
    lbm_uint16_t appset_idx;
2612
    lbm_uint8_t index_len;
2613
    lbm_uint8_t reserved[1];
2614
} lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t;
2615
2
#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)
2616
2
#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)
2617
2
#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)
2618
2
#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)
2619
4
#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)
2620
16
#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)
2621
2
#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)
2622
2
#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)
2623
2
#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)
2624
2
#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)
2625
2
#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)
2626
2
#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)
2627
#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
2628
8
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_ulb_idx_cmd_rcv_release_idx_assign_hdr_t)
2629
2630
typedef struct
2631
{
2632
    lbm_uint32_t rcr_idx;
2633
    lbm_uint32_t assign_id;
2634
    lbm_uint32_t flags;
2635
    lbm_uint8_t index_len;
2636
    lbm_uint8_t reserved[3];
2637
} lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t;
2638
1
#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)
2639
1
#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)
2640
1
#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)
2641
1
#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)
2642
2
#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)
2643
16
#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)
2644
1
#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)
2645
1
#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)
2646
1
#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)
2647
1
#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)
2648
#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
2649
4
#define L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_rcv_reserve_idx_assign_hdr_t)
2650
2651
typedef struct
2652
{
2653
    lbm_uint32_t src_id;
2654
    lbm_uint32_t assign_id;
2655
    lbm_uint32_t flags;
2656
    lbm_uint16_t appset_idx;
2657
    lbm_uint8_t index_len;
2658
    lbm_uint8_t reserved[1];
2659
} lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t;
2660
2
#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)
2661
2
#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)
2662
2
#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)
2663
2
#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)
2664
4
#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)
2665
16
#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)
2666
2
#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)
2667
2
#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)
2668
2
#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)
2669
2
#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)
2670
2
#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)
2671
2
#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)
2672
#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
2673
8
#define L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_ulb_idx_cmd_rcv_reserve_idx_assign_hdr_t)
2674
2675
/* LBMC control UMQ index command response header */
2676
typedef struct
2677
{
2678
    lbm_uint8_t next_hdr;
2679
    lbm_uint8_t hdr_len;
2680
    lbm_uint8_t flags;
2681
    lbm_uint8_t resp_type;
2682
    lbm_uint32_t queue_id;
2683
    lbm_uint16_t cmd_id;
2684
    lbm_uint16_t inst_idx;
2685
    lbm_uint8_t regid[8];
2686
} lbmc_cntl_umq_idx_cmd_resp_hdr_t;
2687
17
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, next_hdr)
2688
17
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, next_hdr)
2689
34
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, hdr_len)
2690
17
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, hdr_len)
2691
17
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, flags)
2692
32
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, flags)
2693
17
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_RESP_TYPE OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, resp_type)
2694
17
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_RESP_TYPE SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, resp_type)
2695
17
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, queue_id)
2696
17
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, queue_id)
2697
17
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, cmd_id)
2698
17
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, cmd_id)
2699
17
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, inst_idx)
2700
17
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, inst_idx)
2701
17
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, regid)
2702
17
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_REGID SIZEOF(lbmc_cntl_umq_idx_cmd_resp_hdr_t, regid)
2703
35
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_resp_hdr_t)
2704
2705
typedef struct
2706
{
2707
    lbm_uint16_t reserved;
2708
    lbm_uint16_t code;
2709
} lbmc_cntl_umq_idx_cmd_resp_err_hdr_t;
2710
1
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_err_hdr_t, reserved)
2711
1
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_idx_cmd_resp_err_hdr_t, reserved)
2712
1
#define O_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_CODE OFFSETOF(lbmc_cntl_umq_idx_cmd_resp_err_hdr_t, code)
2713
1
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T_CODE SIZEOF(lbmc_cntl_umq_idx_cmd_resp_err_hdr_t, code)
2714
4
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_resp_err_hdr_t)
2715
2716
typedef struct
2717
{
2718
    lbm_uint32_t rcr_idx;
2719
    lbm_uint32_t assign_id;
2720
} lbmc_cntl_umq_idx_cmd_resp_rcv_stop_idx_assign_hdr_t;
2721
2
#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)
2722
2
#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)
2723
2
#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)
2724
2
#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)
2725
4
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_resp_rcv_stop_idx_assign_hdr_t)
2726
2727
typedef struct
2728
{
2729
    lbm_uint32_t rcr_idx;
2730
    lbm_uint32_t assign_id;
2731
    lbm_uint16_t appset_idx;
2732
    lbm_uint16_t reserved;
2733
} lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t;
2734
1
#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)
2735
1
#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)
2736
1
#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)
2737
1
#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)
2738
1
#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)
2739
1
#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)
2740
1
#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)
2741
1
#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)
2742
2
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_resp_rcv_start_idx_assign_hdr_t)
2743
2744
typedef struct
2745
{
2746
    lbm_uint32_t rcr_idx;
2747
    lbm_uint32_t assign_id;
2748
    lbm_uint16_t appset_idx;
2749
    lbm_uint16_t reserved;
2750
} lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t;
2751
0
#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)
2752
0
#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)
2753
0
#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)
2754
0
#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)
2755
0
#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)
2756
0
#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)
2757
0
#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)
2758
0
#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)
2759
0
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_resp_rcv_release_idx_assign_hdr_t)
2760
2761
typedef struct
2762
{
2763
    lbm_uint32_t src_id;
2764
    lbm_uint32_t assign_id;
2765
    lbm_uint16_t appset_idx;
2766
    lbm_uint16_t reserved;
2767
} lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t;
2768
1
#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)
2769
1
#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)
2770
1
#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)
2771
1
#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)
2772
1
#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)
2773
1
#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)
2774
1
#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)
2775
1
#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)
2776
2
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_stop_idx_assign_hdr_t)
2777
2778
typedef struct
2779
{
2780
    lbm_uint32_t src_id;
2781
    lbm_uint32_t assign_id;
2782
    lbm_uint16_t appset_idx;
2783
    lbm_uint16_t reserved;
2784
} lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t;
2785
1
#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)
2786
1
#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)
2787
1
#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)
2788
1
#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)
2789
1
#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)
2790
1
#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)
2791
1
#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)
2792
1
#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)
2793
2
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_start_idx_assign_hdr_t)
2794
2795
typedef struct
2796
{
2797
    lbm_uint32_t src_id;
2798
    lbm_uint32_t assign_id;
2799
    lbm_uint16_t appset_idx;
2800
    lbm_uint16_t reserved;
2801
} lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t;
2802
1
#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)
2803
1
#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)
2804
1
#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)
2805
1
#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)
2806
1
#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)
2807
1
#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)
2808
1
#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)
2809
1
#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)
2810
2
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_release_idx_assign_hdr_t)
2811
2812
typedef struct
2813
{
2814
    lbm_uint32_t rcr_idx;
2815
    lbm_uint32_t assign_id;
2816
    lbm_uint32_t flags;
2817
    lbm_uint16_t appset_idx;
2818
    lbm_uint8_t index_len;
2819
    lbm_uint8_t reserved[1];
2820
} lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t;
2821
0
#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)
2822
0
#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)
2823
0
#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)
2824
0
#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)
2825
0
#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)
2826
16
#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)
2827
0
#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)
2828
0
#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)
2829
0
#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)
2830
0
#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)
2831
0
#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)
2832
0
#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)
2833
#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
2834
0
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_resp_rcv_reserve_idx_assign_hdr_t)
2835
2836
typedef struct
2837
{
2838
    lbm_uint32_t src_id;
2839
    lbm_uint32_t assign_id;
2840
    lbm_uint32_t flags;
2841
    lbm_uint16_t appset_idx;
2842
    lbm_uint8_t index_len;
2843
    lbm_uint8_t reserved[1];
2844
} lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t;
2845
#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)
2846
#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)
2847
#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)
2848
#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)
2849
#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)
2850
16
#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)
2851
#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)
2852
#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)
2853
#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)
2854
#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)
2855
#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)
2856
#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)
2857
#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
2858
#define L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T (int) sizeof(lbmc_cntl_umq_idx_cmd_resp_ulb_rcv_reserve_idx_assign_hdr_t)
2859
2860
/* LBMC originating domain header (same as lbmc_domain_hdr_t) */
2861
14
#define O_LBMC_ODOMAIN_HDR_T_NEXT_HDR OFFSETOF(lbmc_domain_hdr_t, next_hdr)
2862
14
#define L_LBMC_ODOMAIN_HDR_T_NEXT_HDR SIZEOF(lbmc_domain_hdr_t, next_hdr)
2863
14
#define O_LBMC_ODOMAIN_HDR_T_HDR_LEN OFFSETOF(lbmc_domain_hdr_t, hdr_len)
2864
14
#define L_LBMC_ODOMAIN_HDR_T_HDR_LEN SIZEOF(lbmc_domain_hdr_t, hdr_len)
2865
14
#define O_LBMC_ODOMAIN_HDR_T_FLAGS OFFSETOF(lbmc_domain_hdr_t, flags)
2866
16
#define L_LBMC_ODOMAIN_HDR_T_FLAGS SIZEOF(lbmc_domain_hdr_t, flags)
2867
14
#define O_LBMC_ODOMAIN_HDR_T_ODOMAIN OFFSETOF(lbmc_domain_hdr_t, domain)
2868
14
#define L_LBMC_ODOMAIN_HDR_T_ODOMAIN SIZEOF(lbmc_domain_hdr_t, domain)
2869
28
#define L_LBMC_ODOMAIN_HDR_T (int) sizeof(lbmc_domain_hdr_t)
2870
2871
/* LBMC stream header */
2872
typedef struct
2873
{
2874
    lbm_uint8_t next_hdr;
2875
    lbm_uint8_t hdr_len;
2876
    lbm_uint16_t flags;
2877
    lbm_uint32_t stream_id;
2878
    lbm_uint32_t sqn;
2879
    lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
2880
} lbmc_stream_hdr_t;
2881
28
#define O_LBMC_STREAM_HDR_T_NEXT_HDR OFFSETOF(lbmc_stream_hdr_t, next_hdr)
2882
28
#define L_LBMC_STREAM_HDR_T_NEXT_HDR SIZEOF(lbmc_stream_hdr_t, next_hdr)
2883
28
#define O_LBMC_STREAM_HDR_T_HDR_LEN OFFSETOF(lbmc_stream_hdr_t, hdr_len)
2884
28
#define L_LBMC_STREAM_HDR_T_HDR_LEN SIZEOF(lbmc_stream_hdr_t, hdr_len)
2885
28
#define O_LBMC_STREAM_HDR_T_FLAGS OFFSETOF(lbmc_stream_hdr_t, flags)
2886
16
#define L_LBMC_STREAM_HDR_T_FLAGS SIZEOF(lbmc_stream_hdr_t, flags)
2887
56
#define O_LBMC_STREAM_HDR_T_STREAM_ID OFFSETOF(lbmc_stream_hdr_t, stream_id)
2888
28
#define L_LBMC_STREAM_HDR_T_STREAM_ID SIZEOF(lbmc_stream_hdr_t, stream_id)
2889
56
#define O_LBMC_STREAM_HDR_T_SQN OFFSETOF(lbmc_stream_hdr_t, sqn)
2890
28
#define L_LBMC_STREAM_HDR_T_SQN SIZEOF(lbmc_stream_hdr_t, sqn)
2891
56
#define O_LBMC_STREAM_HDR_T_CTXINST OFFSETOF(lbmc_stream_hdr_t, ctxinst)
2892
56
#define L_LBMC_STREAM_HDR_T_CTXINST SIZEOF(lbmc_stream_hdr_t, ctxinst)
2893
56
#define L_LBMC_STREAM_HDR_T (int) sizeof(lbmc_stream_hdr_t)
2894
2895
/* LBMC control topic multi-domain interest header */
2896
typedef struct
2897
{
2898
    lbm_uint8_t next_hdr;
2899
    lbm_uint8_t hdr_len;
2900
    lbm_uint16_t flags;
2901
    lbm_uint16_t domain_count;
2902
    lbm_uint16_t res1;
2903
} lbmc_cntl_topic_md_interest_hdr_t;
2904
8
#define O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_topic_md_interest_hdr_t, next_hdr)
2905
8
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_topic_md_interest_hdr_t, next_hdr)
2906
16
#define O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_topic_md_interest_hdr_t, hdr_len)
2907
8
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_topic_md_interest_hdr_t, hdr_len)
2908
8
#define O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS OFFSETOF(lbmc_cntl_topic_md_interest_hdr_t, flags)
2909
48
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS SIZEOF(lbmc_cntl_topic_md_interest_hdr_t, flags)
2910
16
#define O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_DOMAIN_COUNT OFFSETOF(lbmc_cntl_topic_md_interest_hdr_t, domain_count)
2911
8
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_DOMAIN_COUNT SIZEOF(lbmc_cntl_topic_md_interest_hdr_t, domain_count)
2912
8
#define O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_RES1 OFFSETOF(lbmc_cntl_topic_md_interest_hdr_t, res1)
2913
8
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_RES1 SIZEOF(lbmc_cntl_topic_md_interest_hdr_t, res1)
2914
16
#define L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T (int) sizeof(lbmc_cntl_topic_md_interest_hdr_t)
2915
2916
/* LBMC control pattern multi-domain interest header */
2917
typedef struct
2918
{
2919
    lbm_uint8_t next_hdr;
2920
    lbm_uint8_t hdr_len;
2921
    lbm_uint8_t flags;
2922
    lbm_uint8_t type;
2923
    lbm_uint16_t domain_count;
2924
    lbm_uint16_t res1;
2925
    lbm_uint8_t idx[8];
2926
} lbmc_cntl_pattern_md_interest_hdr_t;
2927
7
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, next_hdr)
2928
7
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, next_hdr)
2929
14
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, hdr_len)
2930
7
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, hdr_len)
2931
7
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, flags)
2932
48
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, flags)
2933
7
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_TYPE OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, type)
2934
7
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_TYPE SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, type)
2935
14
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_DOMAIN_COUNT OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, domain_count)
2936
7
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_DOMAIN_COUNT SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, domain_count)
2937
7
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_RES1 OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, res1)
2938
7
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_RES1 SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, res1)
2939
7
#define O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_INDEX OFFSETOF(lbmc_cntl_pattern_md_interest_hdr_t, idx)
2940
7
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_INDEX SIZEOF(lbmc_cntl_pattern_md_interest_hdr_t, idx)
2941
14
#define L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T (int) sizeof(lbmc_cntl_pattern_md_interest_hdr_t)
2942
2943
/* LBMC control TNWG keepalive header */
2944
typedef struct
2945
{
2946
    lbm_uint8_t next_hdr;
2947
    lbm_uint8_t hdr_len;
2948
    lbm_uint16_t flags;
2949
    lbm_uint32_t idx;
2950
    lbm_uint8_t ts_seconds[8];
2951
    lbm_uint32_t ts_microseconds;
2952
    lbm_uint32_t reserved_1;
2953
    lbm_uint8_t reserved_2[8];
2954
    lbm_uint8_t reserved_3[8];
2955
    lbm_uint8_t reserved_4[8];
2956
    lbm_uint8_t reserved_5[8];
2957
    lbm_uint8_t reserved_6[8];
2958
} lbmc_cntl_tnwg_ka_hdr_t;
2959
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, next_hdr)
2960
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, next_hdr)
2961
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, hdr_len)
2962
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, hdr_len)
2963
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, flags)
2964
48
#define L_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, flags)
2965
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_INDEX OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, idx)
2966
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_INDEX SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, idx)
2967
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_TS_SECONDS OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, ts_seconds)
2968
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_TS_SECONDS SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, ts_seconds)
2969
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_TS_MICROSECONDS OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, ts_microseconds)
2970
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_TS_MICROSECONDS SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, ts_microseconds)
2971
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_1 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_1)
2972
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_1 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_1)
2973
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_2 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_2)
2974
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_2 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_2)
2975
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_3 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_3)
2976
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_3 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_3)
2977
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_4 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_4)
2978
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_4 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_4)
2979
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_5 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_5)
2980
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_5 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_5)
2981
3
#define O_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_6 OFFSETOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_6)
2982
3
#define L_LBMC_CNTL_TNWG_KA_HDR_T_RESERVED_6 SIZEOF(lbmc_cntl_tnwg_ka_hdr_t, reserved_6)
2983
6
#define L_LBMC_CNTL_TNWG_KA_HDR_T (int) sizeof(lbmc_cntl_tnwg_ka_hdr_t)
2984
2985
/* LBMC control UME receiver keepalive header */
2986
typedef struct
2987
{
2988
    lbm_uint8_t next_hdr;
2989
    lbm_uint8_t hdr_len;
2990
    lbm_uint16_t flags;
2991
    lbm_uint32_t rcv_regid;
2992
    lbm_uint64_t session_id;
2993
    lbm_uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
2994
} lbmc_cntl_ume_receiver_keepalive_hdr_t;
2995
8
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, next_hdr)
2996
8
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, next_hdr)
2997
8
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, hdr_len)
2998
8
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, hdr_len)
2999
8
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, flags)
3000
16
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, flags)
3001
8
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_RCV_REGID OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, rcv_regid)
3002
8
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_RCV_REGID SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, rcv_regid)
3003
8
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_SESSION_ID OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, session_id)
3004
8
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_SESSION_ID SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, session_id)
3005
8
#define O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_CTXINST OFFSETOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, ctxinst)
3006
8
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_CTXINST SIZEOF(lbmc_cntl_ume_receiver_keepalive_hdr_t, ctxinst)
3007
16
#define L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T (int) sizeof(lbmc_cntl_ume_receiver_keepalive_hdr_t)
3008
3009
/* LBMC control UMQ command header */
3010
typedef struct
3011
{
3012
    lbm_uint8_t next_hdr;
3013
    lbm_uint8_t hdr_len;
3014
    lbm_uint8_t flags;
3015
    lbm_uint8_t cmd_type;
3016
    lbm_uint32_t queue_id;
3017
    lbm_uint16_t cmd_id;
3018
    lbm_uint16_t inst_idx;
3019
    lbm_uint8_t regid[8];
3020
} lbmc_cntl_umq_cmd_hdr_t;
3021
13
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, next_hdr)
3022
13
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_cmd_hdr_t, next_hdr)
3023
26
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, hdr_len)
3024
13
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_cmd_hdr_t, hdr_len)
3025
13
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, flags)
3026
16
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_cmd_hdr_t, flags)
3027
26
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_TYPE OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, cmd_type)
3028
13
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_TYPE SIZEOF(lbmc_cntl_umq_cmd_hdr_t, cmd_type)
3029
13
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, queue_id)
3030
13
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_cmd_hdr_t, queue_id)
3031
13
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, cmd_id)
3032
13
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_cmd_hdr_t, cmd_id)
3033
13
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, inst_idx)
3034
13
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_cmd_hdr_t, inst_idx)
3035
13
#define O_LBMC_CNTL_UMQ_CMD_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_cmd_hdr_t, regid)
3036
13
#define L_LBMC_CNTL_UMQ_CMD_HDR_T_REGID SIZEOF(lbmc_cntl_umq_cmd_hdr_t, regid)
3037
13
#define L_LBMC_CNTL_UMQ_CMD_HDR_T (int) sizeof(lbmc_cntl_umq_cmd_hdr_t)
3038
3039
typedef struct
3040
{
3041
    lbm_uint8_t serial_num[8];
3042
} lbmc_cntl_umq_ctx_queue_topic_list_hdr_t;
3043
1
#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)
3044
1
#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)
3045
2
#define L_LBMC_CNTL_UMQ_CTX_QUEUE_TOPIC_LIST_HDR_T (int) sizeof(lbmc_cntl_umq_ctx_queue_topic_list_hdr_t)
3046
3047
typedef struct
3048
{
3049
    lbm_uint32_t rcr_idx;
3050
    lbm_uint32_t assign_id;
3051
    lbm_uint16_t info_only;
3052
    lbm_uint8_t num_msgids;
3053
    lbm_uint8_t flags;
3054
} lbmc_cntl_umq_rcv_msg_retrieve_hdr_t;
3055
2
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, rcr_idx)
3056
2
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, rcr_idx)
3057
2
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, assign_id)
3058
2
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, assign_id)
3059
2
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_INFO_ONLY OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, info_only)
3060
2
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_INFO_ONLY SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, info_only)
3061
4
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGIDS OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, num_msgids)
3062
2
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGIDS SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, num_msgids)
3063
2
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, flags)
3064
2
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t, flags)
3065
4
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T (int) sizeof(lbmc_cntl_umq_rcv_msg_retrieve_hdr_t)
3066
3067
typedef struct
3068
{
3069
    lbm_uint8_t regid[8];
3070
    lbm_uint8_t stamp[8];
3071
} lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t;
3072
8
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t, regid)
3073
8
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_REGID SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t, regid)
3074
8
#define O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STAMP OFFSETOF(lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t, stamp)
3075
8
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T_STAMP SIZEOF(lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t, stamp)
3076
16
#define L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T (int) sizeof(lbmc_cntl_umq_rcv_msg_retrieve_entry_hdr_t)
3077
3078
typedef struct
3079
{
3080
    lbm_uint32_t rcr_idx;
3081
    lbm_uint32_t assign_id;
3082
} lbmc_cntl_umq_rcv_msg_list_hdr_t;
3083
0
#define O_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_RCR_IDX OFFSETOF(lbmc_cntl_umq_rcv_msg_list_hdr_t, rcr_idx)
3084
0
#define L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_RCR_IDX SIZEOF(lbmc_cntl_umq_rcv_msg_list_hdr_t, rcr_idx)
3085
0
#define O_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_ASSIGN_ID OFFSETOF(lbmc_cntl_umq_rcv_msg_list_hdr_t, assign_id)
3086
0
#define L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T_ASSIGN_ID SIZEOF(lbmc_cntl_umq_rcv_msg_list_hdr_t, assign_id)
3087
0
#define L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T (int) sizeof(lbmc_cntl_umq_rcv_msg_list_hdr_t)
3088
3089
/* LBMC control UMQ command response header */
3090
typedef struct
3091
{
3092
    lbm_uint8_t next_hdr;
3093
    lbm_uint8_t hdr_len;
3094
    lbm_uint8_t flags;
3095
    lbm_uint8_t resp_type;
3096
    lbm_uint32_t queue_id;
3097
    lbm_uint16_t cmd_id;
3098
    lbm_uint16_t inst_idx;
3099
    lbm_uint8_t regid[8];
3100
} lbmc_cntl_umq_cmd_resp_hdr_t;
3101
40
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, next_hdr)
3102
40
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, next_hdr)
3103
80
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, hdr_len)
3104
40
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, hdr_len)
3105
40
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, flags)
3106
16
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, flags)
3107
80
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_RESP_TYPE OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, resp_type)
3108
40
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_RESP_TYPE SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, resp_type)
3109
40
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_QUEUE_ID OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, queue_id)
3110
40
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_QUEUE_ID SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, queue_id)
3111
40
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_CMD_ID OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, cmd_id)
3112
40
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_CMD_ID SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, cmd_id)
3113
40
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_INST_IDX OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, inst_idx)
3114
40
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_INST_IDX SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, inst_idx)
3115
40
#define O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_REGID OFFSETOF(lbmc_cntl_umq_cmd_resp_hdr_t, regid)
3116
40
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_REGID SIZEOF(lbmc_cntl_umq_cmd_resp_hdr_t, regid)
3117
80
#define L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T (int) sizeof(lbmc_cntl_umq_cmd_resp_hdr_t)
3118
3119
typedef struct
3120
{
3121
    lbm_uint32_t rcr_idx;
3122
    lbm_uint32_t assign_id;
3123
} lbmc_cntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t;
3124
1
#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)
3125
1
#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)
3126
1
#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)
3127
1
#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)
3128
2
#define L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T (int) sizeof(lbmc_cntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t)
3129
3130
typedef struct
3131
{
3132
    lbm_uint8_t num_msgs;
3133
    lbm_uint8_t flags;
3134
    lbm_uint16_t reserved;
3135
} lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t;
3136
6
#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)
3137
3
#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)
3138
3
#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)
3139
3
#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)
3140
3
#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)
3141
3
#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)
3142
6
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T (int) sizeof(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_hdr_t)
3143
3144
typedef struct
3145
{
3146
    lbm_uint8_t regid[8];
3147
    lbm_uint8_t stamp[8];
3148
    lbm_uint32_t assign_id;
3149
    lbm_uint16_t num_ras;
3150
    lbm_uint8_t status;
3151
    lbm_uint8_t reserved;
3152
} lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t;
3153
7
#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)
3154
7
#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)
3155
7
#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)
3156
7
#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)
3157
7
#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)
3158
7
#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)
3159
7
#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)
3160
7
#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)
3161
7
#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)
3162
7
#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)
3163
7
#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)
3164
7
#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)
3165
21
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T (int) sizeof(lbmc_xcntl_umq_cmd_resp_rcv_msg_retrieve_entry_hdr_t)
3166
3167
typedef struct
3168
{
3169
    lbm_uint32_t rcr_idx;
3170
    lbm_uint32_t assign_id;
3171
} lbmc_cntl_umq_cmd_resp_rcv_msg_list_hdr_t;
3172
1
#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)
3173
1
#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)
3174
1
#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)
3175
1
#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)
3176
2
#define L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T (int) sizeof(lbmc_cntl_umq_cmd_resp_rcv_msg_list_hdr_t)
3177
3178
typedef struct
3179
{
3180
    lbm_uint8_t num_msgs[8];
3181
} lbmc_xcntl_umq_cmd_resp_rcv_msg_list_hdr_t;
3182
2
#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)
3183
1
#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)
3184
2
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T (int) sizeof(lbmc_xcntl_umq_cmd_resp_rcv_msg_list_hdr_t)
3185
3186
typedef struct
3187
{
3188
    lbm_uint8_t regid[8];
3189
    lbm_uint8_t stamp[8];
3190
} lbmc_xcntl_umq_cmd_resp_rcv_msg_list_msg_entry_hdr_t;
3191
11
#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)
3192
11
#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)
3193
11
#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)
3194
11
#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)
3195
33
#define L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T (int) sizeof(lbmc_xcntl_umq_cmd_resp_rcv_msg_list_msg_entry_hdr_t)
3196
3197
typedef struct
3198
{
3199
    lbm_uint32_t num_topics;
3200
} lbmc_cntl_umq_cmd_resp_ctx_topic_list_hdr_t;
3201
26
#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)
3202
13
#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)
3203
26
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T (int) sizeof(lbmc_cntl_umq_cmd_resp_ctx_topic_list_hdr_t)
3204
3205
typedef struct
3206
{
3207
    lbm_uint16_t num_receiver_type_ids;
3208
    lbm_uint16_t appset_idx;
3209
    lbm_uint8_t appset_name_len;
3210
    lbm_uint8_t reserved[3];
3211
} lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t;
3212
68
#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)
3213
34
#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)
3214
34
#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)
3215
34
#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)
3216
68
#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)
3217
34
#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)
3218
34
#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)
3219
34
#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)
3220
102
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T (int) sizeof(lbmc_cntl_umq_cmd_resp_ctx_topic_list_appset_entry_hdr_t)
3221
3222
typedef struct
3223
{
3224
    lbm_uint32_t rcr_idx;
3225
    lbm_uint16_t num_appsets;
3226
    lbm_uint8_t topic_len;
3227
    lbm_uint8_t reserved;
3228
} lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t;
3229
28
#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)
3230
28
#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)
3231
56
#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)
3232
28
#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)
3233
56
#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)
3234
28
#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)
3235
28
#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)
3236
28
#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)
3237
84
#define L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T (int) sizeof(lbmc_cntl_umq_cmd_resp_ctx_topic_list_topic_entry_hdr_t)
3238
3239
typedef struct
3240
{
3241
    lbm_uint16_t reserved;
3242
    lbm_uint16_t code;
3243
} lbmc_cntl_umq_cmd_resp_err_hdr_t;
3244
2
#define O_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_RESERVED OFFSETOF(lbmc_cntl_umq_cmd_resp_err_hdr_t, reserved)
3245
2
#define L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_RESERVED SIZEOF(lbmc_cntl_umq_cmd_resp_err_hdr_t, reserved)
3246
2
#define O_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_CODE OFFSETOF(lbmc_cntl_umq_cmd_resp_err_hdr_t, code)
3247
2
#define L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T_CODE SIZEOF(lbmc_cntl_umq_cmd_resp_err_hdr_t, code)
3248
8
#define L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T (int) sizeof(lbmc_cntl_umq_cmd_resp_err_hdr_t)
3249
3250
/* LBMC control source registration information request header. */
3251
typedef struct
3252
{
3253
    lbm_uint8_t next_hdr;
3254
    lbm_uint8_t hdr_len;
3255
    lbm_uint16_t flags;
3256
    lbm_uint32_t transport_idx;
3257
    lbm_uint32_t topic_idx;
3258
} lbmc_cntl_sri_req_hdr_t;
3259
10
#define O_LBMC_CNTL_SRI_REQ_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_sri_req_hdr_t, next_hdr)
3260
10
#define L_LBMC_CNTL_SRI_REQ_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_sri_req_hdr_t, next_hdr)
3261
10
#define O_LBMC_CNTL_SRI_REQ_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_sri_req_hdr_t, hdr_len)
3262
10
#define L_LBMC_CNTL_SRI_REQ_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_sri_req_hdr_t, hdr_len)
3263
10
#define O_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS OFFSETOF(lbmc_cntl_sri_req_hdr_t, flags)
3264
16
#define L_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS SIZEOF(lbmc_cntl_sri_req_hdr_t, flags)
3265
10
#define O_LBMC_CNTL_SRI_REQ_HDR_T_TRANSPORT_IDX OFFSETOF(lbmc_cntl_sri_req_hdr_t, transport_idx)
3266
10
#define L_LBMC_CNTL_SRI_REQ_HDR_T_TRANSPORT_IDX SIZEOF(lbmc_cntl_sri_req_hdr_t, transport_idx)
3267
10
#define O_LBMC_CNTL_SRI_REQ_HDR_T_TOPIC_IDX OFFSETOF(lbmc_cntl_sri_req_hdr_t, topic_idx)
3268
10
#define L_LBMC_CNTL_SRI_REQ_HDR_T_TOPIC_IDX SIZEOF(lbmc_cntl_sri_req_hdr_t, topic_idx)
3269
20
#define L_LBMC_CNTL_SRI_REQ_HDR_T (int) sizeof(lbmc_cntl_sri_req_hdr_t)
3270
3271
/* LBMC control UME store domain header. */
3272
typedef struct
3273
{
3274
    lbm_uint8_t next_hdr;
3275
    lbm_uint8_t hdr_len;
3276
    lbm_uint16_t flags;
3277
    lbm_uint32_t domain;
3278
} lbmc_cntl_ume_store_domain_hdr_t;
3279
10
#define O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_store_domain_hdr_t, next_hdr)
3280
10
#define L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_store_domain_hdr_t, next_hdr)
3281
10
#define O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_store_domain_hdr_t, hdr_len)
3282
10
#define L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_store_domain_hdr_t, hdr_len)
3283
10
#define O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_store_domain_hdr_t, flags)
3284
16
#define L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_store_domain_hdr_t, flags)
3285
10
#define O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_DOMAIN OFFSETOF(lbmc_cntl_ume_store_domain_hdr_t, domain)
3286
10
#define L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_DOMAIN SIZEOF(lbmc_cntl_ume_store_domain_hdr_t, domain)
3287
20
#define L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T (int) sizeof(lbmc_cntl_ume_store_domain_hdr_t)
3288
3289
/* LBMC control source registration information header. */
3290
typedef struct
3291
{
3292
    lbm_uint8_t next_hdr;
3293
    lbm_uint8_t hdr_len;
3294
    lbm_uint16_t flags;
3295
    lbm_uint32_t version;
3296
    lbm_uint32_t low_sqn;
3297
    lbm_uint32_t high_sqn;
3298
} lbmc_cntl_sri_hdr_t;
3299
12
#define O_LBMC_CNTL_SRI_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_sri_hdr_t, next_hdr)
3300
12
#define L_LBMC_CNTL_SRI_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_sri_hdr_t, next_hdr)
3301
12
#define O_LBMC_CNTL_SRI_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_sri_hdr_t, hdr_len)
3302
12
#define L_LBMC_CNTL_SRI_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_sri_hdr_t, hdr_len)
3303
12
#define O_LBMC_CNTL_SRI_HDR_T_FLAGS OFFSETOF(lbmc_cntl_sri_hdr_t, flags)
3304
48
#define L_LBMC_CNTL_SRI_HDR_T_FLAGS SIZEOF(lbmc_cntl_sri_hdr_t, flags)
3305
12
#define O_LBMC_CNTL_SRI_HDR_T_VERSION OFFSETOF(lbmc_cntl_sri_hdr_t, version)
3306
12
#define L_LBMC_CNTL_SRI_HDR_T_VERSION SIZEOF(lbmc_cntl_sri_hdr_t, version)
3307
12
#define O_LBMC_CNTL_SRI_HDR_T_LOW_SQN OFFSETOF(lbmc_cntl_sri_hdr_t, low_sqn)
3308
12
#define L_LBMC_CNTL_SRI_HDR_T_LOW_SQN SIZEOF(lbmc_cntl_sri_hdr_t, low_sqn)
3309
12
#define O_LBMC_CNTL_SRI_HDR_T_HIGH_SQN OFFSETOF(lbmc_cntl_sri_hdr_t, high_sqn)
3310
12
#define L_LBMC_CNTL_SRI_HDR_T_HIGH_SQN SIZEOF(lbmc_cntl_sri_hdr_t, high_sqn)
3311
24
#define L_LBMC_CNTL_SRI_HDR_T (int) sizeof(lbmc_cntl_sri_hdr_t)
3312
3313
/* LBMC control route information header. */
3314
typedef struct
3315
{
3316
    lbm_uint8_t next_hdr;
3317
    lbm_uint8_t hdr_len;
3318
    lbm_uint16_t flags;
3319
    lbm_uint32_t gateway_version;
3320
    lbm_uint32_t configuration_signature;
3321
    lbm_uint8_t node_id[8];
3322
    lbm_uint32_t topology;
3323
    lbm_uint16_t vers;
3324
    lbm_uint16_t sqn;
3325
    lbm_uint8_t ttl;
3326
    lbm_uint8_t reserved1;
3327
    lbm_uint16_t reserved2;
3328
} lbmc_cntl_route_info_hdr_t;
3329
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_route_info_hdr_t, next_hdr)
3330
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_route_info_hdr_t, next_hdr)
3331
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_route_info_hdr_t, hdr_len)
3332
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_route_info_hdr_t, hdr_len)
3333
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS OFFSETOF(lbmc_cntl_route_info_hdr_t, flags)
3334
16
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS SIZEOF(lbmc_cntl_route_info_hdr_t, flags)
3335
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_GATEWAY_VERSION OFFSETOF(lbmc_cntl_route_info_hdr_t, gateway_version)
3336
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_GATEWAY_VERSION SIZEOF(lbmc_cntl_route_info_hdr_t, gateway_version)
3337
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_CONFIGURATION_SIGNATURE OFFSETOF(lbmc_cntl_route_info_hdr_t, configuration_signature)
3338
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_CONFIGURATION_SIGNATURE SIZEOF(lbmc_cntl_route_info_hdr_t, configuration_signature)
3339
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_NODE_ID OFFSETOF(lbmc_cntl_route_info_hdr_t, node_id)
3340
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_NODE_ID SIZEOF(lbmc_cntl_route_info_hdr_t, node_id)
3341
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_TOPOLOGY OFFSETOF(lbmc_cntl_route_info_hdr_t, topology)
3342
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_TOPOLOGY SIZEOF(lbmc_cntl_route_info_hdr_t, topology)
3343
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_VERS OFFSETOF(lbmc_cntl_route_info_hdr_t, vers)
3344
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_VERS SIZEOF(lbmc_cntl_route_info_hdr_t, vers)
3345
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_SQN OFFSETOF(lbmc_cntl_route_info_hdr_t, sqn)
3346
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_SQN SIZEOF(lbmc_cntl_route_info_hdr_t, sqn)
3347
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_TTL OFFSETOF(lbmc_cntl_route_info_hdr_t, ttl)
3348
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_TTL SIZEOF(lbmc_cntl_route_info_hdr_t, ttl)
3349
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED1 OFFSETOF(lbmc_cntl_route_info_hdr_t, reserved1)
3350
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED1 SIZEOF(lbmc_cntl_route_info_hdr_t, reserved1)
3351
9
#define O_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED2 OFFSETOF(lbmc_cntl_route_info_hdr_t, reserved2)
3352
9
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T_RESERVED2 SIZEOF(lbmc_cntl_route_info_hdr_t, reserved2)
3353
18
#define L_LBMC_CNTL_ROUTE_INFO_HDR_T (int) sizeof(lbmc_cntl_route_info_hdr_t)
3354
3355
/* LBMC control route information neighbor header. */
3356
typedef struct
3357
{
3358
    lbm_uint8_t next_hdr;
3359
    lbm_uint8_t hdr_len;
3360
    lbm_uint16_t flags;
3361
    lbm_uint8_t node_id[8];
3362
    lbm_uint32_t ingress_cost;
3363
    lbm_uint32_t egress_cost;
3364
} lbmc_cntl_route_info_neighbor_hdr_t;
3365
11
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, next_hdr)
3366
11
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, next_hdr)
3367
11
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, hdr_len)
3368
11
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, hdr_len)
3369
11
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, flags)
3370
16
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, flags)
3371
11
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NODE_ID OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, node_id)
3372
11
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NODE_ID SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, node_id)
3373
11
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_INGRESS_COST OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, ingress_cost)
3374
11
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_INGRESS_COST SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, ingress_cost)
3375
11
#define O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_EGRESS_COST OFFSETOF(lbmc_cntl_route_info_neighbor_hdr_t, egress_cost)
3376
11
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_EGRESS_COST SIZEOF(lbmc_cntl_route_info_neighbor_hdr_t, egress_cost)
3377
22
#define L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T (int) sizeof(lbmc_cntl_route_info_neighbor_hdr_t)
3378
3379
/* LBMC control route information neighbor extended (route group) header.
3380
 * The group ID list that follows is variable-length, sized by hdr_len --
3381
 * not part of this fixed struct. */
3382
typedef struct
3383
{
3384
    lbm_uint8_t next_hdr;
3385
    lbm_uint8_t hdr_len;
3386
    lbm_uint16_t flags;
3387
    lbm_uint32_t node_id;
3388
} lbmc_cntl_route_info_nbr_ext_hdr_t;
3389
10
#define O_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_route_info_nbr_ext_hdr_t, next_hdr)
3390
10
#define L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_route_info_nbr_ext_hdr_t, next_hdr)
3391
20
#define O_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_route_info_nbr_ext_hdr_t, hdr_len)
3392
10
#define L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_route_info_nbr_ext_hdr_t, hdr_len)
3393
10
#define O_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_FLAGS OFFSETOF(lbmc_cntl_route_info_nbr_ext_hdr_t, flags)
3394
16
#define L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_FLAGS SIZEOF(lbmc_cntl_route_info_nbr_ext_hdr_t, flags)
3395
10
#define O_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_NODE_ID OFFSETOF(lbmc_cntl_route_info_nbr_ext_hdr_t, node_id)
3396
10
#define L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_NODE_ID SIZEOF(lbmc_cntl_route_info_nbr_ext_hdr_t, node_id)
3397
10
#define L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T (int) sizeof(lbmc_cntl_route_info_nbr_ext_hdr_t)
3398
281
#define L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_GROUP_SZ 2
3399
3400
/* LBMC control gateway name header. */
3401
10
#define O_LBMC_CNTL_GATEWAY_NAME_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
3402
10
#define L_LBMC_CNTL_GATEWAY_NAME_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
3403
20
#define O_LBMC_CNTL_GATEWAY_NAME_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
3404
10
#define L_LBMC_CNTL_GATEWAY_NAME_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
3405
19
#define O_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS OFFSETOF(lbmc_basic_hdr_t, res)
3406
25
#define L_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS SIZEOF(lbmc_basic_hdr_t, res)
3407
#define O_LBMC_CNTL_GATEWAY_NAME_HDR_T_NAME (OFFSETOF(lbmc_basic_hdr_t, res) + SIZEOF(lbmc_basic_hdr_t, res))
3408
3409
/* LBMC control generic authentication header. */
3410
typedef struct
3411
{
3412
    lbm_uint8_t next_hdr;
3413
    lbm_uint8_t hdr_len;
3414
    lbm_uint8_t flags;
3415
    lbm_uint8_t opid;
3416
} lbmc_cntl_auth_generic_hdr_t;
3417
15
#define O_LBMC_CNTL_AUTH_GENERIC_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_auth_generic_hdr_t, next_hdr)
3418
15
#define L_LBMC_CNTL_AUTH_GENERIC_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_auth_generic_hdr_t, next_hdr)
3419
30
#define O_LBMC_CNTL_AUTH_GENERIC_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_auth_generic_hdr_t, hdr_len)
3420
15
#define L_LBMC_CNTL_AUTH_GENERIC_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_auth_generic_hdr_t, hdr_len)
3421
15
#define O_LBMC_CNTL_AUTH_GENERIC_HDR_T_FLAGS OFFSETOF(lbmc_cntl_auth_generic_hdr_t, flags)
3422
15
#define L_LBMC_CNTL_AUTH_GENERIC_HDR_T_FLAGS SIZEOF(lbmc_cntl_auth_generic_hdr_t, flags)
3423
35
#define O_LBMC_CNTL_AUTH_GENERIC_HDR_T_OPID OFFSETOF(lbmc_cntl_auth_generic_hdr_t, opid)
3424
15
#define L_LBMC_CNTL_AUTH_GENERIC_HDR_T_OPID SIZEOF(lbmc_cntl_auth_generic_hdr_t, opid)
3425
30
#define L_LBMC_CNTL_AUTH_GENERIC_HDR_T (int) sizeof(lbmc_cntl_auth_generic_hdr_t)
3426
3427
/* LBMC control authentication request header. */
3428
typedef struct
3429
{
3430
    lbm_uint8_t next_hdr;
3431
    lbm_uint8_t hdr_len;
3432
    lbm_uint8_t flags;
3433
    lbm_uint8_t opid;
3434
    lbm_uint8_t user_len;
3435
} lbmc_cntl_auth_request_hdr_t;
3436
2
#define O_LBMC_CNTL_AUTH_REQUEST_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_auth_request_hdr_t, next_hdr)
3437
2
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_auth_request_hdr_t, next_hdr)
3438
4
#define O_LBMC_CNTL_AUTH_REQUEST_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_auth_request_hdr_t, hdr_len)
3439
2
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_auth_request_hdr_t, hdr_len)
3440
2
#define O_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS OFFSETOF(lbmc_cntl_auth_request_hdr_t, flags)
3441
16
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS SIZEOF(lbmc_cntl_auth_request_hdr_t, flags)
3442
2
#define O_LBMC_CNTL_AUTH_REQUEST_HDR_T_OPID OFFSETOF(lbmc_cntl_auth_request_hdr_t, opid)
3443
2
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T_OPID SIZEOF(lbmc_cntl_auth_request_hdr_t, opid)
3444
4
#define O_LBMC_CNTL_AUTH_REQUEST_HDR_T_USER_LEN OFFSETOF(lbmc_cntl_auth_request_hdr_t, user_len)
3445
2
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T_USER_LEN SIZEOF(lbmc_cntl_auth_request_hdr_t, user_len)
3446
2
#define L_LBMC_CNTL_AUTH_REQUEST_HDR_T (int) sizeof(lbmc_cntl_auth_request_hdr_t)
3447
3448
/* LBMC control authentication challenge header. */
3449
typedef struct
3450
{
3451
    lbm_uint8_t next_hdr;
3452
    lbm_uint8_t hdr_len;
3453
    lbm_uint8_t flags;
3454
    lbm_uint8_t opid;
3455
    lbm_uint8_t mod_len;
3456
    lbm_uint8_t gen_len;
3457
    lbm_uint8_t salt_len;
3458
    lbm_uint8_t pubkey_len;
3459
} lbmc_cntl_auth_challenge_hdr_t;
3460
1
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, next_hdr)
3461
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_auth_challenge_hdr_t, next_hdr)
3462
2
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, hdr_len)
3463
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_auth_challenge_hdr_t, hdr_len)
3464
1
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, flags)
3465
16
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS SIZEOF(lbmc_cntl_auth_challenge_hdr_t, flags)
3466
1
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_OPID OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, opid)
3467
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_OPID SIZEOF(lbmc_cntl_auth_challenge_hdr_t, opid)
3468
2
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_MOD_LEN OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, mod_len)
3469
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_MOD_LEN SIZEOF(lbmc_cntl_auth_challenge_hdr_t, mod_len)
3470
2
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_GEN_LEN OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, gen_len)
3471
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_GEN_LEN SIZEOF(lbmc_cntl_auth_challenge_hdr_t, gen_len)
3472
2
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_SALT_LEN OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, salt_len)
3473
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_SALT_LEN SIZEOF(lbmc_cntl_auth_challenge_hdr_t, salt_len)
3474
2
#define O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_PUBKEY_LEN OFFSETOF(lbmc_cntl_auth_challenge_hdr_t, pubkey_len)
3475
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_PUBKEY_LEN SIZEOF(lbmc_cntl_auth_challenge_hdr_t, pubkey_len)
3476
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T (int) sizeof(lbmc_cntl_auth_challenge_hdr_t)
3477
3478
/* LBMC control authentication challenge response header. */
3479
typedef struct
3480
{
3481
    lbm_uint8_t next_hdr;
3482
    lbm_uint8_t hdr_len;
3483
    lbm_uint8_t flags;
3484
    lbm_uint8_t opid;
3485
    lbm_uint8_t pubkey_len;
3486
    lbm_uint8_t evidence_len;
3487
} lbmc_cntl_auth_challenge_rsp_hdr_t;
3488
1
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, next_hdr)
3489
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, next_hdr)
3490
2
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, hdr_len)
3491
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, hdr_len)
3492
1
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, flags)
3493
16
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, flags)
3494
1
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_OPID OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, opid)
3495
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_OPID SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, opid)
3496
2
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_PUBKEY_LEN OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, pubkey_len)
3497
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_PUBKEY_LEN SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, pubkey_len)
3498
2
#define O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_EVIDENCE_LEN OFFSETOF(lbmc_cntl_auth_challenge_rsp_hdr_t, evidence_len)
3499
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_EVIDENCE_LEN SIZEOF(lbmc_cntl_auth_challenge_rsp_hdr_t, evidence_len)
3500
1
#define L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T (int) sizeof(lbmc_cntl_auth_challenge_rsp_hdr_t)
3501
3502
/* LBMC control authentication result header. */
3503
typedef struct
3504
{
3505
    lbm_uint8_t next_hdr;
3506
    lbm_uint8_t hdr_len;
3507
    lbm_uint8_t flags;
3508
    lbm_uint8_t opid;
3509
    lbm_uint8_t result;
3510
} lbmc_cntl_auth_result_hdr_t;
3511
0
#define O_LBMC_CNTL_AUTH_RESULT_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_auth_result_hdr_t, next_hdr)
3512
0
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_auth_result_hdr_t, next_hdr)
3513
0
#define O_LBMC_CNTL_AUTH_RESULT_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_auth_result_hdr_t, hdr_len)
3514
0
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_auth_result_hdr_t, hdr_len)
3515
0
#define O_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS OFFSETOF(lbmc_cntl_auth_result_hdr_t, flags)
3516
16
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS SIZEOF(lbmc_cntl_auth_result_hdr_t, flags)
3517
0
#define O_LBMC_CNTL_AUTH_RESULT_HDR_T_OPID OFFSETOF(lbmc_cntl_auth_result_hdr_t, opid)
3518
0
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T_OPID SIZEOF(lbmc_cntl_auth_result_hdr_t, opid)
3519
0
#define O_LBMC_CNTL_AUTH_RESULT_HDR_T_RESULT OFFSETOF(lbmc_cntl_auth_result_hdr_t, result)
3520
0
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T_RESULT SIZEOF(lbmc_cntl_auth_result_hdr_t, result)
3521
0
#define L_LBMC_CNTL_AUTH_RESULT_HDR_T (int) sizeof(lbmc_cntl_auth_result_hdr_t)
3522
3523
/* LBMC control HMAC header. */
3524
typedef struct
3525
{
3526
    lbm_uint8_t next_hdr;
3527
    lbm_uint8_t hdr_len;
3528
    lbm_uint8_t flags;
3529
    lbm_uint8_t padding;
3530
    lbm_uint8_t data[LBM_HMAC_BLOCK_SZ];
3531
} lbmc_cntl_hmac_hdr_t;
3532
5
#define O_LBMC_CNTL_HMAC_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_hmac_hdr_t, next_hdr)
3533
5
#define L_LBMC_CNTL_HMAC_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_hmac_hdr_t, next_hdr)
3534
5
#define O_LBMC_CNTL_HMAC_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_hmac_hdr_t, hdr_len)
3535
5
#define L_LBMC_CNTL_HMAC_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_hmac_hdr_t, hdr_len)
3536
5
#define O_LBMC_CNTL_HMAC_HDR_T_FLAGS OFFSETOF(lbmc_cntl_hmac_hdr_t, flags)
3537
16
#define L_LBMC_CNTL_HMAC_HDR_T_FLAGS SIZEOF(lbmc_cntl_hmac_hdr_t, flags)
3538
5
#define O_LBMC_CNTL_HMAC_HDR_T_PADDING OFFSETOF(lbmc_cntl_hmac_hdr_t, padding)
3539
5
#define L_LBMC_CNTL_HMAC_HDR_T_PADDING SIZEOF(lbmc_cntl_hmac_hdr_t, padding)
3540
5
#define O_LBMC_CNTL_HMAC_HDR_T_DATA OFFSETOF(lbmc_cntl_hmac_hdr_t, data)
3541
5
#define L_LBMC_CNTL_HMAC_HDR_T_DATA SIZEOF(lbmc_cntl_hmac_hdr_t, data)
3542
10
#define L_LBMC_CNTL_HMAC_HDR_T (int) sizeof(lbmc_cntl_hmac_hdr_t)
3543
3544
/* LBMC control UMQ session ID header. */
3545
typedef struct
3546
{
3547
    lbm_uint8_t next_hdr;
3548
    lbm_uint8_t hdr_len;
3549
    lbm_uint16_t flags;
3550
    lbm_uint32_t key;
3551
    lbm_uint8_t sid[8];
3552
} lbmc_cntl_umq_sid_hdr_t;
3553
7
#define O_LBMC_CNTL_UMQ_SID_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_umq_sid_hdr_t, next_hdr)
3554
7
#define L_LBMC_CNTL_UMQ_SID_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_umq_sid_hdr_t, next_hdr)
3555
7
#define O_LBMC_CNTL_UMQ_SID_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_umq_sid_hdr_t, hdr_len)
3556
7
#define L_LBMC_CNTL_UMQ_SID_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_umq_sid_hdr_t, hdr_len)
3557
7
#define O_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS OFFSETOF(lbmc_cntl_umq_sid_hdr_t, flags)
3558
16
#define L_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS SIZEOF(lbmc_cntl_umq_sid_hdr_t, flags)
3559
7
#define O_LBMC_CNTL_UMQ_SID_HDR_T_KEY OFFSETOF(lbmc_cntl_umq_sid_hdr_t, key)
3560
7
#define L_LBMC_CNTL_UMQ_SID_HDR_T_KEY SIZEOF(lbmc_cntl_umq_sid_hdr_t, key)
3561
7
#define O_LBMC_CNTL_UMQ_SID_HDR_T_SID OFFSETOF(lbmc_cntl_umq_sid_hdr_t, sid)
3562
7
#define L_LBMC_CNTL_UMQ_SID_HDR_T_SID SIZEOF(lbmc_cntl_umq_sid_hdr_t, sid)
3563
14
#define L_LBMC_CNTL_UMQ_SID_HDR_T (int) sizeof(lbmc_cntl_umq_sid_hdr_t)
3564
3565
/* LBMC destination header. */
3566
typedef struct
3567
{
3568
    lbm_uint8_t next_hdr;
3569
    lbm_uint8_t hdr_len;
3570
    lbm_uint16_t flags;
3571
    lbm_uint32_t domain_id;
3572
    lbm_uint32_t ipaddr;
3573
    lbm_uint16_t port;
3574
    lbm_uint16_t hops_taken;
3575
    lbm_uint32_t orig_domain_id;
3576
    lbm_uint32_t orig_ipaddr;
3577
    lbm_uint16_t orig_port;
3578
    lbm_uint16_t reserved;
3579
} lbmc_destination_hdr_t;
3580
16
#define O_LBMC_DESTINATION_HDR_T_NEXT_HDR OFFSETOF(lbmc_destination_hdr_t, next_hdr)
3581
16
#define L_LBMC_DESTINATION_HDR_T_NEXT_HDR SIZEOF(lbmc_destination_hdr_t, next_hdr)
3582
16
#define O_LBMC_DESTINATION_HDR_T_HDR_LEN OFFSETOF(lbmc_destination_hdr_t, hdr_len)
3583
16
#define L_LBMC_DESTINATION_HDR_T_HDR_LEN SIZEOF(lbmc_destination_hdr_t, hdr_len)
3584
16
#define O_LBMC_DESTINATION_HDR_T_FLAGS OFFSETOF(lbmc_destination_hdr_t, flags)
3585
16
#define L_LBMC_DESTINATION_HDR_T_FLAGS SIZEOF(lbmc_destination_hdr_t, flags)
3586
32
#define O_LBMC_DESTINATION_HDR_T_DOMAIN_ID OFFSETOF(lbmc_destination_hdr_t, domain_id)
3587
16
#define L_LBMC_DESTINATION_HDR_T_DOMAIN_ID SIZEOF(lbmc_destination_hdr_t, domain_id)
3588
32
#define O_LBMC_DESTINATION_HDR_T_IPADDR OFFSETOF(lbmc_destination_hdr_t, ipaddr)
3589
32
#define L_LBMC_DESTINATION_HDR_T_IPADDR SIZEOF(lbmc_destination_hdr_t, ipaddr)
3590
32
#define O_LBMC_DESTINATION_HDR_T_PORT OFFSETOF(lbmc_destination_hdr_t, port)
3591
16
#define L_LBMC_DESTINATION_HDR_T_PORT SIZEOF(lbmc_destination_hdr_t, port)
3592
16
#define O_LBMC_DESTINATION_HDR_T_HOPS_TAKEN OFFSETOF(lbmc_destination_hdr_t, hops_taken)
3593
16
#define L_LBMC_DESTINATION_HDR_T_HOPS_TAKEN SIZEOF(lbmc_destination_hdr_t, hops_taken)
3594
32
#define O_LBMC_DESTINATION_HDR_T_ORIG_DOMAIN_ID OFFSETOF(lbmc_destination_hdr_t, orig_domain_id)
3595
16
#define L_LBMC_DESTINATION_HDR_T_ORIG_DOMAIN_ID SIZEOF(lbmc_destination_hdr_t, orig_domain_id)
3596
32
#define O_LBMC_DESTINATION_HDR_T_ORIG_IPADDR OFFSETOF(lbmc_destination_hdr_t, orig_ipaddr)
3597
32
#define L_LBMC_DESTINATION_HDR_T_ORIG_IPADDR SIZEOF(lbmc_destination_hdr_t, orig_ipaddr)
3598
32
#define O_LBMC_DESTINATION_HDR_T_ORIG_PORT OFFSETOF(lbmc_destination_hdr_t, orig_port)
3599
16
#define L_LBMC_DESTINATION_HDR_T_ORIG_PORT SIZEOF(lbmc_destination_hdr_t, orig_port)
3600
16
#define O_LBMC_DESTINATION_HDR_T_RESERVED OFFSETOF(lbmc_destination_hdr_t, reserved)
3601
16
#define L_LBMC_DESTINATION_HDR_T_RESERVED SIZEOF(lbmc_destination_hdr_t, reserved)
3602
32
#define L_LBMC_DESTINATION_HDR_T (int) sizeof(lbmc_destination_hdr_t)
3603
3604
/* LBMC topic index header. */
3605
typedef struct
3606
{
3607
    lbm_uint8_t next_hdr;
3608
    lbm_uint8_t hdr_len;
3609
    lbm_uint16_t flags;
3610
    lbm_uint32_t tidx;
3611
} lbmc_topic_idx_hdr_t;
3612
14
#define O_LBMC_TOPIC_IDX_HDR_T_NEXT_HDR OFFSETOF(lbmc_topic_idx_hdr_t, next_hdr)
3613
14
#define L_LBMC_TOPIC_IDX_HDR_T_NEXT_HDR SIZEOF(lbmc_topic_idx_hdr_t, next_hdr)
3614
14
#define O_LBMC_TOPIC_IDX_HDR_T_HDR_LEN OFFSETOF(lbmc_topic_idx_hdr_t, hdr_len)
3615
14
#define L_LBMC_TOPIC_IDX_HDR_T_HDR_LEN SIZEOF(lbmc_topic_idx_hdr_t, hdr_len)
3616
14
#define O_LBMC_TOPIC_IDX_HDR_T_FLAGS OFFSETOF(lbmc_topic_idx_hdr_t, flags)
3617
16
#define L_LBMC_TOPIC_IDX_HDR_T_FLAGS SIZEOF(lbmc_topic_idx_hdr_t, flags)
3618
14
#define O_LBMC_TOPIC_IDX_HDR_T_TIDX OFFSETOF(lbmc_topic_idx_hdr_t, tidx)
3619
14
#define L_LBMC_TOPIC_IDX_HDR_T_TIDX SIZEOF(lbmc_topic_idx_hdr_t, tidx)
3620
28
#define L_LBMC_TOPIC_IDX_HDR_T (int) sizeof(lbmc_topic_idx_hdr_t)
3621
3622
/* LBMC control topic source header. */
3623
typedef struct
3624
{
3625
    lbm_uint8_t next_hdr;
3626
    lbm_uint8_t hdr_len;
3627
    lbm_uint16_t flags;
3628
    lbm_uint32_t domain_id;
3629
} lbmc_cntl_topic_source_hdr_t;
3630
7
#define O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_topic_source_hdr_t, next_hdr)
3631
7
#define L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_topic_source_hdr_t, next_hdr)
3632
7
#define O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_topic_source_hdr_t, hdr_len)
3633
7
#define L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_topic_source_hdr_t, hdr_len)
3634
7
#define O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS OFFSETOF(lbmc_cntl_topic_source_hdr_t, flags)
3635
32
#define L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS SIZEOF(lbmc_cntl_topic_source_hdr_t, flags)
3636
7
#define O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_DOMAIN_ID OFFSETOF(lbmc_cntl_topic_source_hdr_t, domain_id)
3637
7
#define L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_DOMAIN_ID SIZEOF(lbmc_cntl_topic_source_hdr_t, domain_id)
3638
14
#define L_LBMC_CNTL_TOPIC_SOURCE_HDR_T (int) sizeof(lbmc_cntl_topic_source_hdr_t)
3639
3640
/* LBMC control topic source extended functionality header. */
3641
typedef struct
3642
{
3643
    lbm_uint8_t next_hdr;
3644
    lbm_uint8_t hdr_len;
3645
    lbm_uint16_t flags;
3646
    lbm_uint32_t src_ip;
3647
    lbm_uint16_t src_port;
3648
    lbm_uint16_t unused;
3649
    lbm_uint32_t functionality_flags;
3650
} lbmc_cntl_topic_source_exfunc_hdr_t;
3651
7
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, next_hdr)
3652
7
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, next_hdr)
3653
7
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, hdr_len)
3654
7
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, hdr_len)
3655
7
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, flags)
3656
16
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, flags)
3657
7
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_IP OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, src_ip)
3658
7
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_IP SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, src_ip)
3659
7
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_PORT OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, src_port)
3660
7
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_PORT SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, src_port)
3661
7
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_UNUSED OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, unused)
3662
7
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_UNUSED SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, unused)
3663
7
#define O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS OFFSETOF(lbmc_cntl_topic_source_exfunc_hdr_t, functionality_flags)
3664
64
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS SIZEOF(lbmc_cntl_topic_source_exfunc_hdr_t, functionality_flags)
3665
14
#define L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T (int) sizeof(lbmc_cntl_topic_source_exfunc_hdr_t)
3666
3667
/* LBM control UME proxy source election token header. */
3668
typedef struct
3669
{
3670
    lbm_uint8_t next_hdr;
3671
    lbm_uint8_t hdr_len;
3672
    lbm_uint8_t flags;
3673
    lbm_uint8_t store_index;
3674
    lbm_uint32_t token;
3675
} lbmc_cntl_ume_psrc_election_token_hdr_t;
3676
7
#define O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_ume_psrc_election_token_hdr_t, next_hdr)
3677
7
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_ume_psrc_election_token_hdr_t, next_hdr)
3678
7
#define O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_ume_psrc_election_token_hdr_t, hdr_len)
3679
7
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_ume_psrc_election_token_hdr_t, hdr_len)
3680
7
#define O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS OFFSETOF(lbmc_cntl_ume_psrc_election_token_hdr_t, flags)
3681
16
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS SIZEOF(lbmc_cntl_ume_psrc_election_token_hdr_t, flags)
3682
7
#define O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_STORE_INDEX OFFSETOF(lbmc_cntl_ume_psrc_election_token_hdr_t, store_index)
3683
7
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_STORE_INDEX SIZEOF(lbmc_cntl_ume_psrc_election_token_hdr_t, store_index)
3684
7
#define O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_TOKEN OFFSETOF(lbmc_cntl_ume_psrc_election_token_hdr_t, token)
3685
7
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_TOKEN SIZEOF(lbmc_cntl_ume_psrc_election_token_hdr_t, token)
3686
14
#define L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T (int) sizeof(lbmc_cntl_ume_psrc_election_token_hdr_t)
3687
3688
/* LBM control TCP session ID header. */
3689
typedef struct
3690
{
3691
    lbm_uint8_t next_hdr;
3692
    lbm_uint8_t hdr_len;
3693
    lbm_uint16_t flags;
3694
    lbm_uint32_t sid;
3695
} lbmc_cntl_tcp_sid_hdr_t;
3696
6
#define O_LBMC_CNTL_TCP_SID_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_tcp_sid_hdr_t, next_hdr)
3697
6
#define L_LBMC_CNTL_TCP_SID_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_tcp_sid_hdr_t, next_hdr)
3698
6
#define O_LBMC_CNTL_TCP_SID_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_tcp_sid_hdr_t, hdr_len)
3699
6
#define L_LBMC_CNTL_TCP_SID_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_tcp_sid_hdr_t, hdr_len)
3700
6
#define O_LBMC_CNTL_TCP_SID_HDR_T_FLAGS OFFSETOF(lbmc_cntl_tcp_sid_hdr_t, flags)
3701
16
#define L_LBMC_CNTL_TCP_SID_HDR_T_FLAGS SIZEOF(lbmc_cntl_tcp_sid_hdr_t, flags)
3702
12
#define O_LBMC_CNTL_TCP_SID_HDR_T_SID OFFSETOF(lbmc_cntl_tcp_sid_hdr_t, sid)
3703
6
#define L_LBMC_CNTL_TCP_SID_HDR_T_SID SIZEOF(lbmc_cntl_tcp_sid_hdr_t, sid)
3704
12
#define L_LBMC_CNTL_TCP_SID_HDR_T (int) sizeof(lbmc_cntl_tcp_sid_hdr_t)
3705
3706
/* LBMC control transport security header. */
3707
typedef struct
3708
{
3709
    lbm_uint8_t next_hdr;
3710
    lbm_uint8_t hdr_len;
3711
    lbm_uint16_t flags;
3712
    lbm_uint8_t state;
3713
    lbm_uint8_t protocol_proposed;
3714
    lbm_uint16_t reserved1;
3715
    lbm_uint32_t protocols_accepted;
3716
    lbm_uint32_t reserved2;
3717
    lbm_uint8_t session_id[8];
3718
} lbmc_cntl_transport_security_hdr_t;
3719
9
#define O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_NEXT_HDR OFFSETOF(lbmc_cntl_transport_security_hdr_t, next_hdr)
3720
9
#define L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_NEXT_HDR SIZEOF(lbmc_cntl_transport_security_hdr_t, next_hdr)
3721
9
#define O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_HDR_LEN OFFSETOF(lbmc_cntl_transport_security_hdr_t, hdr_len)
3722
9
#define L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_HDR_LEN SIZEOF(lbmc_cntl_transport_security_hdr_t, hdr_len)
3723
9
#define O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_FLAGS OFFSETOF(lbmc_cntl_transport_security_hdr_t, flags)
3724
16
#define L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_FLAGS SIZEOF(lbmc_cntl_transport_security_hdr_t, flags)
3725
9
#define O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_STATE OFFSETOF(lbmc_cntl_transport_security_hdr_t, state)
3726
9
#define L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_STATE SIZEOF(lbmc_cntl_transport_security_hdr_t, state)
3727
18
#define O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOL_PROPOSED OFFSETOF(lbmc_cntl_transport_security_hdr_t, protocol_proposed)
3728
9
#define L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOL_PROPOSED SIZEOF(lbmc_cntl_transport_security_hdr_t, protocol_proposed)
3729
9
#define O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_RESERVED1 OFFSETOF(lbmc_cntl_transport_security_hdr_t, reserved1)
3730
9
#define L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_RESERVED1 SIZEOF(lbmc_cntl_transport_security_hdr_t, reserved1)
3731
9
#define O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOLS_ACCEPTED OFFSETOF(lbmc_cntl_transport_security_hdr_t, protocols_accepted)
3732
64
#define L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOLS_ACCEPTED SIZEOF(lbmc_cntl_transport_security_hdr_t, protocols_accepted)
3733
9
#define O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_RESERVED2 OFFSETOF(lbmc_cntl_transport_security_hdr_t, reserved2)
3734
9
#define L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_RESERVED2 SIZEOF(lbmc_cntl_transport_security_hdr_t, reserved2)
3735
9
#define O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_SESSION_ID OFFSETOF(lbmc_cntl_transport_security_hdr_t, session_id)
3736
9
#define L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_SESSION_ID SIZEOF(lbmc_cntl_transport_security_hdr_t, session_id)
3737
18
#define L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T (int) sizeof(lbmc_cntl_transport_security_hdr_t)
3738
3739
/* LBMC extended configuration option. */
3740
typedef struct
3741
{
3742
    lbm_uint8_t scope;
3743
    lbm_uint8_t parent;
3744
} lbmc_extopt_cfgopt_hdr_t;
3745
0
#define O_LBMC_EXTOPT_CFGOPT_HDR_T_SCOPE OFFSETOF(lbmc_extopt_cfgopt_hdr_t, scope)
3746
0
#define L_LBMC_EXTOPT_CFGOPT_HDR_T_SCOPE SIZEOF(lbmc_extopt_cfgopt_hdr_t, scope)
3747
0
#define O_LBMC_EXTOPT_CFGOPT_HDR_T_PARENT OFFSETOF(lbmc_extopt_cfgopt_hdr_t, scope)
3748
0
#define L_LBMC_EXTOPT_CFGOPT_HDR_T_PARENT SIZEOF(lbmc_extopt_cfgopt_hdr_t, scope)
3749
0
#define L_LBMC_EXTOPT_CFGOPT_HDR_T (int) sizeof(lbmc_extopt_cfgopt_hdr_t)
3750
3751
/* LBMC extended option. */
3752
typedef struct
3753
{
3754
    lbm_uint8_t next_hdr;
3755
    lbm_uint8_t hdr_len;
3756
    lbm_uint8_t flags;
3757
    lbm_uint8_t id;
3758
    lbm_uint16_t subtype;
3759
    lbm_uint16_t fragment_offset;
3760
} lbmc_extopt_hdr_t;
3761
11
#define O_LBMC_EXTOPT_HDR_T_NEXT_HDR OFFSETOF(lbmc_extopt_hdr_t, next_hdr)
3762
11
#define L_LBMC_EXTOPT_HDR_T_NEXT_HDR SIZEOF(lbmc_extopt_hdr_t, next_hdr)
3763
22
#define O_LBMC_EXTOPT_HDR_T_HDR_LEN OFFSETOF(lbmc_extopt_hdr_t, hdr_len)
3764
11
#define L_LBMC_EXTOPT_HDR_T_HDR_LEN SIZEOF(lbmc_extopt_hdr_t, hdr_len)
3765
22
#define O_LBMC_EXTOPT_HDR_T_FLAGS OFFSETOF(lbmc_extopt_hdr_t, flags)
3766
48
#define L_LBMC_EXTOPT_HDR_T_FLAGS SIZEOF(lbmc_extopt_hdr_t, flags)
3767
11
#define O_LBMC_EXTOPT_HDR_T_ID OFFSETOF(lbmc_extopt_hdr_t, id)
3768
11
#define L_LBMC_EXTOPT_HDR_T_ID SIZEOF(lbmc_extopt_hdr_t, id)
3769
22
#define O_LBMC_EXTOPT_HDR_T_SUBTYPE OFFSETOF(lbmc_extopt_hdr_t, subtype)
3770
11
#define L_LBMC_EXTOPT_HDR_T_SUBTYPE SIZEOF(lbmc_extopt_hdr_t, subtype)
3771
22
#define O_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET OFFSETOF(lbmc_extopt_hdr_t, fragment_offset)
3772
11
#define L_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET SIZEOF(lbmc_extopt_hdr_t, fragment_offset)
3773
11
#define L_LBMC_EXTOPT_HDR_T (int) sizeof(lbmc_extopt_hdr_t)
3774
3775
/* LBMC message properties. */
3776
typedef struct
3777
{
3778
    lbm_uint32_t key_offset;
3779
    lbm_uint32_t value_offset;
3780
    lbm_uint32_t hash;
3781
    lbm_uint32_t type;
3782
} lbm_msg_properties_hdr_t;
3783
0
#define O_LBM_MSG_PROPERTIES_HDR_T_KEY_OFFSET OFFSETOF(lbm_msg_properties_hdr_t, key_offset)
3784
0
#define L_LBM_MSG_PROPERTIES_HDR_T_KEY_OFFSET SIZEOF(lbm_msg_properties_hdr_t, key_offset)
3785
0
#define O_LBM_MSG_PROPERTIES_HDR_T_VALUE_OFFSET OFFSETOF(lbm_msg_properties_hdr_t, value_offset)
3786
0
#define L_LBM_MSG_PROPERTIES_HDR_T_VALUE_OFFSET SIZEOF(lbm_msg_properties_hdr_t, value_offset)
3787
0
#define O_LBM_MSG_PROPERTIES_HDR_T_HASH OFFSETOF(lbm_msg_properties_hdr_t, hash)
3788
0
#define L_LBM_MSG_PROPERTIES_HDR_T_HASH SIZEOF(lbm_msg_properties_hdr_t, hash)
3789
0
#define O_LBM_MSG_PROPERTIES_HDR_T_TYPE OFFSETOF(lbm_msg_properties_hdr_t, type)
3790
0
#define L_LBM_MSG_PROPERTIES_HDR_T_TYPE SIZEOF(lbm_msg_properties_hdr_t, type)
3791
0
#define L_LBM_MSG_PROPERTIES_HDR_T (int) sizeof(lbm_msg_properties_hdr_t)
3792
3793
typedef struct
3794
{
3795
    lbm_uint32_t magic;
3796
    lbm_uint16_t num_fields;
3797
    lbm_uint8_t vertype;
3798
    lbm_uint8_t res;
3799
} lbm_msg_properties_data_t;
3800
0
#define O_LBM_MSG_PROPERTIES_DATA_T_MAGIC OFFSETOF(lbm_msg_properties_data_t, magic)
3801
0
#define L_LBM_MSG_PROPERTIES_DATA_T_MAGIC SIZEOF(lbm_msg_properties_data_t, magic)
3802
0
#define O_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS OFFSETOF(lbm_msg_properties_data_t, num_fields)
3803
0
#define L_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS SIZEOF(lbm_msg_properties_data_t, num_fields)
3804
0
#define O_LBM_MSG_PROPERTIES_DATA_T_VERTYPE OFFSETOF(lbm_msg_properties_data_t, vertype)
3805
0
#define L_LBM_MSG_PROPERTIES_DATA_T_VERTYPE SIZEOF(lbm_msg_properties_data_t, vertype)
3806
0
#define O_LBM_MSG_PROPERTIES_DATA_T_RES OFFSETOF(lbm_msg_properties_data_t, res)
3807
0
#define L_LBM_MSG_PROPERTIES_DATA_T_RES SIZEOF(lbm_msg_properties_data_t, res)
3808
0
#define L_LBM_MSG_PROPERTIES_DATA_T (int) sizeof(lbm_msg_properties_data_t)
3809
3810
/* Unhandled header. */
3811
314
#define O_LBMC_UNHANDLED_HDR_T_NEXT_HDR OFFSETOF(lbmc_basic_hdr_t, next_hdr)
3812
628
#define L_LBMC_UNHANDLED_HDR_T_NEXT_HDR SIZEOF(lbmc_basic_hdr_t, next_hdr)
3813
616
#define O_LBMC_UNHANDLED_HDR_T_HDR_LEN OFFSETOF(lbmc_basic_hdr_t, hdr_len)
3814
930
#define L_LBMC_UNHANDLED_HDR_T_HDR_LEN SIZEOF(lbmc_basic_hdr_t, hdr_len)
3815
3816
/* End of LBMC header definitions. */
3817
3818
1.30k
#define LBMC_VERSION 0x0
3819
3820
2.05k
#define LBMC_TYPE_MESSAGE 0x00
3821
679
#define LBMC_TYPE_EOT 0x01
3822
1.40k
#define LBMC_TYPE_PRORX 0x02
3823
738
#define LBMC_TYPE_CONTROL 0x08
3824
1.56k
#define LBMC_TYPE_RETRANS 0x0A
3825
3826
2.42k
#define LBMC_NHDR_DATA 0x00
3827
172
#define LBMC_NHDR_FRAG 0x01
3828
210
#define LBMC_NHDR_BATCH 0x02
3829
285
#define LBMC_NHDR_TGIDX 0x03
3830
301
#define LBMC_NHDR_REQUEST 0x04
3831
235
#define LBMC_NHDR_TOPICNAME 0x05
3832
279
#define LBMC_NHDR_APPHDR 0x06
3833
241
#define LBMC_NHDR_APPHDR_CHAIN 0x07
3834
241
#define LBMC_NHDR_UMQ_MSGID 0x08
3835
243
#define LBMC_NHDR_UMQ_SQD_RCV 0x09
3836
254
#define LBMC_NHDR_UMQ_RESUB 0x0A
3837
246
#define LBMC_NHDR_OTID 0x0B
3838
269
#define LBMC_NHDR_CTXINSTD 0x0C
3839
276
#define LBMC_NHDR_CTXINSTR 0x0D
3840
264
#define LBMC_NHDR_SRCIDX 0x0E
3841
272
#define LBMC_NHDR_UMQ_ULB_MSG 0x0F
3842
501
#define LBMC_NHDR_SSF_INIT 0x10
3843
510
#define LBMC_NHDR_SSF_CREQ 0x11
3844
497
#define LBMC_NHDR_UME_PREG 0x12
3845
506
#define LBMC_NHDR_UME_PREG_RESP 0x13
3846
535
#define LBMC_NHDR_UME_ACK 0x14
3847
527
#define LBMC_NHDR_UME_RXREQ 0x15
3848
521
#define LBMC_NHDR_UME_KEEPALIVE 0x16
3849
294
#define LBMC_NHDR_UME_STOREID 0x17
3850
313
#define LBMC_NHDR_UME_RANGED_ACK 0x18
3851
305
#define LBMC_NHDR_UME_ACK_ID 0x19
3852
524
#define LBMC_NHDR_UME_CAPABILITY 0x1A
3853
324
#define LBMC_NHDR_UME_PROXY_SRC 0x1B
3854
305
#define LBMC_NHDR_UME_STORE_GROUP 0x1C
3855
353
#define LBMC_NHDR_UME_STORE_INFO 0x1D
3856
477
#define LBMC_NHDR_UME_LJ_INFO 0x1E
3857
8
#define LBMC_NHDR_UME_RANGED_RXREQ 0x1F
3858
601
#define LBMC_NHDR_TSNI 0x20
3859
565
#define LBMC_NHDR_UMQ_REG 0x30
3860
562
#define LBMC_NHDR_UMQ_REG_RESP 0x31
3861
575
#define LBMC_NHDR_UMQ_ACK 0x32
3862
528
#define LBMC_NHDR_UMQ_RCR 0x33
3863
547
#define LBMC_NHDR_UMQ_KA 0x34
3864
539
#define LBMC_NHDR_UMQ_RXREQ 0x35
3865
576
#define LBMC_NHDR_UMQ_QMGMT 0x36
3866
527
#define LBMC_NHDR_UMQ_RESUB_REQ 0x37
3867
525
#define LBMC_NHDR_UMQ_RESUB_RESP 0x38
3868
527
#define LBMC_NHDR_TOPIC_INTEREST 0x39
3869
533
#define LBMC_NHDR_PATTERN_INTEREST 0x3A
3870
527
#define LBMC_NHDR_ADVERTISEMENT 0x3B
3871
383
#define LBMC_NHDR_UME_CTXINSTS 0x3C
3872
386
#define LBMC_NHDR_UME_STORENAME 0x3D
3873
526
#define LBMC_NHDR_UMQ_ULB_RCR 0x3E
3874
532
#define LBMC_NHDR_UMQ_LF 0x3F
3875
543
#define LBMC_NHDR_CTXINFO 0x40
3876
541
#define LBMC_NHDR_UME_PSER 0x41
3877
420
#define LBMC_NHDR_CTXINST 0x42
3878
545
#define LBMC_NHDR_DOMAIN 0x43
3879
565
#define LBMC_NHDR_TNWG_CAPABILITIES 0x44
3880
566
#define LBMC_NHDR_PATIDX 0x45
3881
443
#define LBMC_NHDR_UME_CLIENT_LIFETIME 0x46
3882
450
#define LBMC_NHDR_UME_SID 0x47
3883
594
#define LBMC_NHDR_UMQ_IDX_CMD 0x48
3884
588
#define LBMC_NHDR_UMQ_IDX_CMD_RESP 0x49
3885
477
#define LBMC_NHDR_ODOMAIN 0x4a
3886
494
#define LBMC_NHDR_STREAM 0x4b
3887
588
#define LBMC_NHDR_TOPIC_MD_INTEREST 0x4c
3888
590
#define LBMC_NHDR_PATTERN_MD_INTEREST 0x4d
3889
594
#define LBMC_NHDR_LJI_REQ 0x4e
3890
590
#define LBMC_NHDR_TNWG_KA 0x4f
3891
592
#define LBMC_NHDR_UME_RCV_KEEPALIVE 0x50
3892
601
#define LBMC_NHDR_UMQ_CMD 0x51
3893
640
#define LBMC_NHDR_UMQ_CMD_RESP 0x52
3894
611
#define LBMC_NHDR_SRI_REQ 0x53
3895
525
#define LBMC_NHDR_UME_STORE_DOMAIN 0x54
3896
617
#define LBMC_NHDR_SRI 0x55
3897
610
#define LBMC_NHDR_ROUTE_INFO 0x56
3898
541
#define LBMC_NHDR_ROUTE_INFO_NEIGHBOR 0x57
3899
542
#define LBMC_NHDR_GATEWAY_NAME 0x58
3900
659
#define LBMC_NHDR_AUTHENTICATION 0x60
3901
635
#define LBMC_NHDR_HMAC  0x62
3902
549
#define LBMC_NHDR_UMQ_SID 0x63
3903
565
#define LBMC_NHDR_DESTINATION 0x64
3904
567
#define LBMC_NHDR_TOPIC_IDX 0x65
3905
643
#define LBMC_NHDR_TOPIC_SOURCE 0x67
3906
568
#define LBMC_NHDR_TOPIC_SOURCE_EXFUNC 0x68
3907
566
#define LBMC_NHDR_UME_STORE_INFO_EXT 0x69
3908
656
#define LBMC_NHDR_UME_PSRC_ELECTION_TOKEN 0x6A
3909
649
#define LBMC_NHDR_TCP_SID 0x6B
3910
652
#define LBMC_NHDR_TRANSPORT_SECURITY 0x6C
3911
541
#define LBMC_NHDR_ROUTE_INFO_NBR_EXT 0x6E
3912
3913
679
#define LBMC_NHDR_EXTOPT 0xFE
3914
3915
1.84k
#define LBMC_NHDR_NONE 0xFF
3916
3917
864
#define LBMC_OPT_IGNORE 0x8000
3918
448
#define LBMC_OPT_IGNORE_CHAR 0x80
3919
16
#define LBMC_BATCH_START 0x0002
3920
16
#define LBMC_BATCH_END 0x0001
3921
3922
16
#define LBMC_CNTL_SSF_INIT_DEFAULT_INC 0x40
3923
16
#define LBMC_CNTL_SSF_INIT_DEFAULT_EXC 0x20
3924
3925
#define LBMC_CNTL_SSF_CREQ_MODE_INCLUDE 0x00
3926
#define LBMC_CNTL_SSF_CREQ_MODE_EXCLUDE 0x01
3927
3928
#define LBMC_REQUEST_TRANSPORT_TCP 0x00
3929
#define LBMC_CNTL_SSF_INIT_TRANSPORT_TCP 0x00
3930
3931
32
#define LBMC_UME_PREG_S_FLAG 0x80
3932
16
#define LBMC_UME_PREG_F_FLAG 0x40
3933
16
#define LBMC_UME_PREG_P_FLAG 0x20
3934
16
#define LBMC_UME_PREG_W_FLAG 0x10
3935
16
#define LBMC_UME_PREG_D_FLAG 0x08
3936
#define LBMC_UME_PREG_MARKER_PRI 0x01
3937
#define LBMC_UME_PREG_MARKER_SEC 0x02
3938
#define LBMC_UME_PREG_MARKER_TER 0x03
3939
16
#define LBMC_UME_PREG_RESP_O_FLAG 0x40
3940
23
#define LBMC_UME_PREG_RESP_E_FLAG 0x20
3941
#define LBMC_UME_PREG_RESP_S_FLAG 0x80
3942
16
#define LBMC_UME_PREG_RESP_W_FLAG 0x02
3943
16
#define LBMC_UME_PREG_RESP_D_FLAG 0x01
3944
#define LBMC_UME_PREG_RESP_ERRCODE_ENOERROR 0x00
3945
#define LBMC_UME_PREG_RESP_ERRCODE_ENOPATTERN 0x01
3946
#define LBMC_UME_PREG_RESP_ERRCODE_ESRCREGID 0x02
3947
#define LBMC_UME_PREG_RESP_ERRCODE_EREGID 0x03
3948
#define LBMC_UME_PREG_RESP_ERRCODE_ETOPICNAME 0x04
3949
#define LBMC_UME_PREG_RESP_ERRCODE_EACTIVE 0x05
3950
#define LBMC_UME_PREG_RESP_ERRCODE_ECONFIG 0x06
3951
16
#define LBMC_UME_PREG_RESP_CODE_NOACKS_FLAG 0x10
3952
#define LBMC_UME_PREG_RESP_CODE_NOCACHE_FLAG 0x10
3953
16
#define LBMC_UME_ACK_O_FLAG 0x40
3954
16
#define LBMC_UME_ACK_F_FLAG 0x20
3955
16
#define LBMC_UME_ACK_U_FLAG 0x10
3956
16
#define LBMC_UME_ACK_E_FLAG 0x08
3957
#define LBMC_UME_ACK_TYPE_CDELV 0x00
3958
#define LBMC_UME_ACK_TYPE_STABLE 0x01
3959
16
#define LBMC_UME_KEEPALIVE_R_FLAG 0x40
3960
16
#define LBMC_UME_KEEPALIVE_T_FLAG 0x20
3961
#define LBMC_UME_KEEPALIVE_TYPE_SRC 0x2
3962
#define LBMC_UME_KEEPALIVE_TYPE_RCV 0x1
3963
#define LBMC_UME_KEEPALIVE_TYPE_STORE 0x0
3964
#define LBMC_UME_STOREID_MAX_STOREID 0x7FFF
3965
16
#define LBMC_UME_CAPABILITY_QC_FLAG 0x4000
3966
16
#define LBMC_UME_CAPABILITY_CLIENT_LIFETIME_FLAG 0x2000
3967
16
#define LBMC_UME_CAPABILITY_RANGED_RX_FLAG 0x1000
3968
16
#define LBMC_UME_PROXY_SRC_E_FLAG 0x4000
3969
16
#define LBMC_UME_PROXY_SRC_C_FLAG 0x2000
3970
39
#define LBMC_UME_RXREQ_T_FLAG 0x4000
3971
16
#define LBMC_UME_RXREQ_MARKER_MASK 0x00FF
3972
16
#define LBMC_LJI_REQ_L_FLAG 0x0001
3973
16
#define LBMC_LJI_REQ_M_FLAG 0x0002
3974
16
#define LBMC_LJI_REQ_O_FLAG 0x0004
3975
16
#define LBMC_SRI_A_FLAG 0x0001
3976
16
#define LBMC_SRI_INITIAL_SQN_KNOWN_FLAG 0x0002
3977
2
#define LBMC_UMQ_REG_CTX_TYPE 0x1
3978
2
#define LBMC_UMQ_REG_SRC_TYPE 0x2
3979
1
#define LBMC_UMQ_REG_RCV_TYPE 0x3
3980
2
#define LBMC_UMQ_REG_RCV_DEREG_TYPE 0x4
3981
1
#define LBMC_UMQ_REG_ULB_RCV_TYPE 0x5
3982
1
#define LBMC_UMQ_REG_ULB_RCV_DEREG_TYPE 0x6
3983
0
#define LBMC_UMQ_REG_OBSERVER_RCV_TYPE 0x7
3984
1
#define LBMC_UMQ_REG_OBSERVER_RCV_DEREG_TYPE 0x8
3985
16
#define LBMC_UMQ_REG_R_FLAG 0x40
3986
16
#define LBMC_UMQ_REG_T_FLAG 0x20
3987
16
#define LBMC_UMQ_REG_I_FLAG 0x10
3988
16
#define LBMC_UMQ_REG_MSG_SEL_FLAG 0x08
3989
2
#define LBMC_UMQ_REG_RESP_CTX_TYPE 0x1
3990
2
#define LBMC_UMQ_REG_RESP_SRC_TYPE 0x2
3991
4
#define LBMC_UMQ_REG_RESP_RCV_TYPE 0x3
3992
5
#define LBMC_UMQ_REG_RESP_RCV_DEREG_TYPE 0x4
3993
6
#define LBMC_UMQ_REG_RESP_ULB_RCV_TYPE 0x5
3994
7
#define LBMC_UMQ_REG_RESP_ULB_RCV_DEREG_TYPE 0x6
3995
3
#define LBMC_UMQ_REG_RESP_OBSERVER_RCV_TYPE 0x7
3996
4
#define LBMC_UMQ_REG_RESP_OBSERVER_RCV_DEREG_TYPE 0x8
3997
3
#define LBMC_UMQ_REG_RESP_CTX_EX_TYPE 0x9
3998
6
#define LBMC_UMQ_REG_RESP_ERR_TYPE 0xFF
3999
16
#define LBMC_UMQ_REG_RESP_R_FLAG 0x40
4000
16
#define LBMC_UMQ_REG_RESP_ERR_L_FLAG 0x20
4001
16
#define LBMC_UMQ_REG_RESP_SRC_S_FLAG 0x20
4002
16
#define LBMC_UMQ_REG_RESP_SRC_D_FLAG 0x10
4003
16
#define LBMC_UMQ_REG_RESP_CTX_EX_FLAG_FIRSTMSG 0x1
4004
4005
1
#define LBMC_UMQ_ACK_STABLE_TYPE 0x1
4006
1
#define LBMC_UMQ_ACK_CR_TYPE 0x2
4007
0
#define LBMC_UMQ_ACK_ULB_CR_TYPE 0x3
4008
16
#define LBMC_UMQ_ACK_T_FLAG 0x40
4009
16
#define LBMC_UMQ_ACK_D_FLAG 0x20
4010
66
#define LBMC_UMQ_ACK_NUMIDS_MASK 0x0F
4011
#define LBMC_UMQ_RCR_BOI_FLAG 0x100
4012
16
#define LBMC_UMQ_RCR_R_FLAG 0x4000
4013
16
#define LBMC_UMQ_RCR_D_FLAG 0x2000
4014
16
#define LBMC_UMQ_RCR_S_FLAG 0x1000
4015
16
#define LBMC_UMQ_RCR_EOI_FLAG 0x200
4016
16
#define LBMC_UMQ_RCR_BOI_FLAG 0x100
4017
16
#define LBMC_UMQ_ULB_RCR_R_FLAG 0x4000
4018
16
#define LBMC_UMQ_ULB_RCR_D_FLAG 0x2000
4019
16
#define LBMC_UMQ_ULB_RCR_EOI_FLAG 0x200
4020
16
#define LBMC_UMQ_ULB_RCR_BOI_FLAG 0x100
4021
16
#define LBMC_UMQ_SQD_RCV_R_FLAG 0x4000
4022
16
#define LBMC_UMQ_SQD_RCV_S_FLAG 0x2000
4023
16
#define LBMC_UMQ_SQD_RCV_RE_FLAG 0x800
4024
16
#define LBMC_UMQ_SQD_RCV_EOI_FLAG 0x200
4025
16
#define LBMC_UMQ_SQD_RCV_BOI_FLAG 0x100
4026
16
#define LBMC_UMQ_RESUB_Q_FLAG 0x4000
4027
16
#define LBMC_UMQ_ULB_MSG_A_FLAG 0x4000
4028
16
#define LBMC_UMQ_ULB_MSG_R_FLAG 0x2000
4029
1
#define LBMC_UMQ_KA_CTX_TYPE 0x00
4030
2
#define LBMC_UMQ_KA_SRC_TYPE 0x01
4031
0
#define LBMC_UMQ_KA_RCV_TYPE 0x02
4032
2
#define LBMC_UMQ_KA_ULB_RCV_TYPE 0x03
4033
2
#define LBMC_UMQ_KA_CTX_RESP_TYPE 0x10
4034
2
#define LBMC_UMQ_KA_SRC_RESP_TYPE 0x11
4035
1
#define LBMC_UMQ_KA_RCV_RESP_TYPE 0x12
4036
1
#define LBMC_UMQ_KA_ULB_RCV_RESP_TYPE 0x13
4037
16
#define LBMC_UMQ_KA_R_FLAG 0x40
4038
2
#define LBMC_UMQ_RXREQ_MR_TYPE 0x1
4039
1
#define LBMC_UMQ_RXREQ_QRCRR_TYPE 0x2
4040
0
#define LBMC_UMQ_RXREQ_TRCRR_TYPE 0x3
4041
0
#define LBMC_UMQ_RXREQ_ULB_MR_TYPE 0x4
4042
0
#define LBMC_UMQ_RXREQ_ULB_TRCRR_TYPE 0x5
4043
0
#define LBMC_UMQ_RXREQ_ULB_MR_ABORT_TYPE 0x6
4044
0
#define LBMC_UMQ_RXREQ_ULB_TRCRR_ABORT_TYPE 0x7
4045
34
#define LBMC_UMQ_RXREQ_R_FLAG 0x40
4046
#define LBMC_UMQ_RESUB_RESP_ENQUEUED_CODE 0x1
4047
#define LBMC_UMQ_RESUB_RESP_CONSUMED_CODE 0x2
4048
#define LBMC_UMQ_RESUB_RESP_OUTSTANDING_CODE 0x3
4049
#define LBMC_UMQ_RESUB_RESP_RESUBALLOWED_CODE 0x4
4050
#define LBMC_UMQ_RESUB_RESP_RESUBDONE_CODE 0x5
4051
#define LBMC_UMQ_LF_SRC_TYPE 0x01
4052
#define LBMC_UMQ_LF_RCV_TYPE 0x02
4053
#define LBMC_UMQ_LF_U_FLAG 0x40
4054
1
#define LBMC_UMQ_IDX_CMD_RCV_STOP_IDX_ASSIGN_TYPE 0x1
4055
4
#define LBMC_UMQ_IDX_CMD_RCV_START_IDX_ASSIGN_TYPE 0x2
4056
0
#define LBMC_UMQ_IDX_CMD_ULB_RCV_STOP_IDX_ASSIGN_TYPE 0x3
4057
1
#define LBMC_UMQ_IDX_CMD_ULB_RCV_START_IDX_ASSIGN_TYPE 0x4
4058
0
#define LBMC_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_TYPE 0x5
4059
2
#define LBMC_UMQ_IDX_CMD_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE 0x6
4060
1
#define LBMC_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_TYPE 0x7
4061
2
#define LBMC_UMQ_IDX_CMD_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE 0x8
4062
2
#define LBMC_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_TYPE 0x1
4063
1
#define LBMC_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_TYPE 0x2
4064
1
#define LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_TYPE 0x3
4065
1
#define LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_TYPE 0x4
4066
0
#define LBMC_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_TYPE 0x5
4067
1
#define LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE 0x6
4068
0
#define LBMC_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_TYPE 0x7
4069
0
#define LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE 0x8
4070
4071
#define UMQUEUE_CTX_REG_EDUPREGID 0x1
4072
#define UMQUEUE_SRC_REG_EREGID 0x2
4073
#define UMQUEUE_SRC_REG_ENOPATTERN 0x3
4074
#define UMQUEUE_SRC_REG_ENOTOPICNAME 0x4
4075
#define UMQUEUE_RCV_REG_ENOTOPICNAME 0x5
4076
#define UMQUEUE_RCV_REG_EREGID 0x6
4077
#define UMQUEUE_RCV_REG_ENOPATTERN 0x7
4078
#define UMQUEUE_RCV_REG_EASSIGNIDINUSE 0x8
4079
#define UMQUEUE_RCV_REG_ERCVTYPEID 0x9
4080
#define UMQUEUE_RCV_REG_EINVAL 0xa
4081
#define UMQUEUE_REG_EAUTHFAIL 0x10
4082
4083
#define UMQUEUE_RCV_IDX_CMD_EREGID 0x1
4084
#define UMQUEUE_RCV_IDX_CMD_EIDXNOTASSIGNED 0x2
4085
#define UMQUEUE_RCV_IDX_CMD_EIDXINELIGIBLE 0x3
4086
#define UMQUEUE_RCV_IDX_CMD_EIDXINUSE 0x4
4087
#define UMQUEUE_RCV_IDX_CMD_EIDXALREADYASSIGNED 0x5
4088
#define UMQUEUE_RCV_IDX_CMD_EAUTHFAIL 0x10
4089
#define LBM_UMQ_ULB_RCV_IDX_CMD_EIDXNOTASSIGNED 0xA
4090
#define LBM_UMQ_ULB_RCV_IDX_CMD_EIDXINELIGIBLE 0xB
4091
#define LBM_UMQ_ULB_RCV_IDX_CMD_EIDXINUSE 0xC
4092
#define LBM_UMQ_ULB_RCV_IDX_CMD_EIDXALREADYASSIGNED 0xD
4093
4094
1
#define LBMC_UMQ_IDX_CMD_RESP_ERR_TYPE 0xFF
4095
16
#define LBMC_UMQ_IDX_CMD_RESP_ERR_L_FLAG 0x20
4096
101
#define LBM_UMQ_INDEX_FLAG_NUMERIC 0x1
4097
4098
32
#define LBMC_TOPIC_INTEREST_CANCEL_FLAG 0x4000
4099
32
#define LBMC_TOPIC_INTEREST_REFRESH_FLAG 0x2000
4100
32
#define LBMC_PATTERN_INTEREST_CANCEL_FLAG 0x40
4101
32
#define LBMC_PATTERN_INTEREST_REFRESH_FLAG 0x20
4102
16
#define LBMC_ADVERTISEMENT_EOS_FLAG 0x40
4103
16
#define LBMC_ADVERTISEMENT_PATTERN_FLAG 0x20
4104
16
#define LBMC_ADVERTISEMENT_CHANGE_FLAG 0x10
4105
16
#define LBMC_ADVERTISEMENT_CTXINST_FLAG 0x08
4106
16
#define LBMC_TOPIC_SOURCE_EOS_FLAG 0x4000
4107
16
#define LBMC_ADVERTISEMENT_AD_LJ_FLAG 0x80000000
4108
16
#define LBMC_ADVERTISEMENT_AD_UME_FLAG 0x40000000
4109
16
#define LBMC_ADVERTISEMENT_AD_ACKTOSRC_FLAG 0x20000000
4110
16
#define LBMC_ADVERTISEMENT_AD_QUEUE_FLAG 0x10000000
4111
16
#define LBMC_ADVERTISEMENT_AD_ULB_FLAG 0x08000000
4112
16
#define LBMC_CTXINFO_QUERY_FLAG   0x4000
4113
16
#define LBMC_CTXINFO_ADDR_FLAG    0x2000
4114
16
#define LBMC_CTXINFO_CTXINST_FLAG 0x1000
4115
31
#define LBMC_CTXINFO_NAME_FLAG    0x0800
4116
16
#define LBMC_CTXINFO_TNWGSRC_FLAG 0x0400
4117
16
#define LBMC_CTXINFO_TNWGRCV_FLAG 0x0200
4118
16
#define LBMC_CTXINFO_PROXY_FLAG   0x0100
4119
16
#define LBMC_UME_PSER_SOURCE_CTXINST_FLAG 0x4000
4120
16
#define LBMC_UME_PSER_STORE_CTXINST_FLAG 0x2000
4121
16
#define LBMC_UME_PSER_REELECT_FLAG 0x1000
4122
16
#define LBMC_DOMAIN_ACTIVE_FLAG 0x4000
4123
16
#define LBMC_CNTL_TNWG_CAPABILITIES_VERSION_MASK 0x7fff
4124
16
#define LBMC_CNTL_TNWG_CAPABILITIES1_UME_FLAG 0x80000000
4125
16
#define LBMC_CNTL_TNWG_CAPABILITIES1_UMQ_FLAG 0x40000000
4126
16
#define LBMC_CNTL_TNWG_CAPABILITIES3_PCRE_FLAG 0x80000000
4127
16
#define LBMC_CNTL_TNWG_CAPABILITIES3_REGEX_FLAG 0x40000000
4128
4129
#define LBM_CHAIN_ELEM_CHANNEL_NUMBER 0x1
4130
#define LBM_CHAIN_ELEM_HF_SQN 0x2
4131
#define LBM_CHAIN_ELEM_GW_INFO 0x3
4132
#define LBM_CHAIN_ELEM_APPHDR 0x4
4133
#define LBM_CHAIN_ELEM_USER_DATA 0x5
4134
2
#define LBM_CHAIN_ELEM_PROPERTIES_LENGTH 0x6
4135
#define LBM_CHAIN_ELEM_NONE 0xff
4136
4137
16
#define LBMC_CNTL_TNWG_KA_Q_FLAG 0x4000
4138
16
#define LBMC_CNTL_TNWG_KA_R_FLAG 0x2000
4139
4140
1
#define LBMC_UMQ_CMD_TYPE_TOPIC_LIST 1
4141
2
#define LBMC_UMQ_CMD_TYPE_RCV_MSG_RETRIEVE 2
4142
0
#define LBMC_UMQ_CMD_TYPE_RCV_MSG_LIST 3
4143
4144
13
#define LBMC_UMQ_CMD_RESP_TYPE_CTX_TOPIC_LIST 1
4145
4
#define LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_RETRIEVE 2
4146
2
#define LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_LIST 3
4147
2
#define LBMC_UMQ_CMD_RESP_TYPE_ERROR 4
4148
4149
2
#define AUTH_OP_REQ 0x01
4150
1
#define AUTH_OP_CHALLENGE 0x02
4151
1
#define AUTH_OP_CHALLENGE_RSP 0x03
4152
0
#define AUTH_OP_RESULT 0x04
4153
4154
#define LBMC_UMQ_CMD_RESP_ERROR_AUTHFAIL 0x11
4155
#define LBMC_UMQ_CMD_RESP_ERROR_NOHMAC 0x12
4156
#define LBMC_UMQ_CMD_RESP_ERROR_NOAUTHOR 0x13
4157
4158
#define LBMC_TRANSPORT_SECURITY_STATE_PROPOSE 1
4159
#define LBMC_TRANSPORT_SECURITY_STATE_REJECT 2
4160
#define LBMC_TRANSPORT_SECURITY_STATE_CHANGE 3
4161
4162
#define LBMC_TRANSPORT_SECURITY_PROTOCOL_NULL 0
4163
9
#define LBMC_TRANSPORT_SECURITY_PROTOCOL_BLACKHOLE 1
4164
16
#define LBMC_TRANSPORT_SECURITY_PROTOCOL_NONE 2
4165
16
#define LBMC_TRANSPORT_SECURITY_PROTOCOL_TLS 3
4166
16
#define LBMC_TRANSPORT_SECURITY_PROTOCOL_LZ4 4
4167
16
#define LBMC_TRANSPORT_SECURITY_PROTOCOL_LZ4_TLS 5
4168
4169
16
#define LBMC_TRANSPORT_SECURITY_PROTOCOLS_ACCEPTED_NONE (1u << (LBMC_TRANSPORT_SECURITY_PROTOCOL_NONE - 1))
4170
16
#define LBMC_TRANSPORT_SECURITY_PROTOCOLS_ACCEPTED_TLS (1u << (LBMC_TRANSPORT_SECURITY_PROTOCOL_TLS - 1))
4171
16
#define LBMC_TRANSPORT_SECURITY_PROTOCOLS_ACCEPTED_LZ4 (1u << (LBMC_TRANSPORT_SECURITY_PROTOCOL_LZ4 - 1))
4172
16
#define LBMC_TRANSPORT_SECURITY_PROTOCOLS_ACCEPTED_LZ4_TLS (1u << (LBMC_TRANSPORT_SECURITY_PROTOCOL_LZ4_TLS - 1))
4173
4174
16
#define LBMC_EXTOPT_FLAG_IGNORE 0x80
4175
16
#define LBMC_EXTOPT_FLAG_IGNORE_SUBTYPE 0x40
4176
27
#define LBMC_EXTOPT_FLAG_MORE_FRAGMENT 0x20
4177
4178
0
#define LBMC_EXT_NHDR_CFGOPT 0x0100
4179
0
#define LBMC_EXT_NHDR_MSGSEL 0x0101
4180
4181
#define LBM_MSG_PROPERTIES_HDR_VER(vt) ((vt & 0xF0) >> 4)
4182
#define LBM_MSG_PROPERTIES_HDR_TYPE(vt) (vt & 0xF)
4183
16
#define LBM_MSG_PROPERTIES_HDR_VER_MASK 0xF0
4184
16
#define LBM_MSG_PROPERTIES_HDR_TYPE_MASK 0x0F
4185
4186
#define LBM_MSG_PROPERTIES_VER 0x0
4187
4188
#define LBM_MSG_PROPERTIES_TYPE_NORMAL 0x0
4189
4190
0
#define LBM_MSG_PROPERTIES_MAGIC 0xABACDABA
4191
0
#define LBM_MSG_PROPERTIES_ANTIMAGIC 0xBADAACAB
4192
4193
#define LBM_MSG_PROPERTY_NONE 0x0
4194
0
#define LBM_MSG_PROPERTY_BOOLEAN 0x1
4195
0
#define LBM_MSG_PROPERTY_BYTE 0x2
4196
0
#define LBM_MSG_PROPERTY_SHORT 0x3
4197
0
#define LBM_MSG_PROPERTY_INT 0x4
4198
0
#define LBM_MSG_PROPERTY_LONG 0x5
4199
0
#define LBM_MSG_PROPERTY_FLOAT 0x6
4200
0
#define LBM_MSG_PROPERTY_DOUBLE 0x7
4201
0
#define LBM_MSG_PROPERTY_STRING 0x8
4202
4203
#define LBM_UMQ_QUEUE_MSG_STATUS_UNKNOWN 0
4204
#define LBM_UMQ_QUEUE_MSG_STATUS_UNASSIGNED 1
4205
#define LBM_UMQ_QUEUE_MSG_STATUS_ASSIGNED 2
4206
#define LBM_UMQ_QUEUE_MSG_STATUS_REASSIGNING 3
4207
#define LBM_UMQ_QUEUE_MSG_STATUS_CONSUMED 4
4208
#define LBM_UMQ_QUEUE_MSG_STATUS_COMPLETE 5
4209
4210
#define LBMC_CNTL_CONFIG_OPT_SCOPE_SOURCE 0x1
4211
#define LBMC_CNTL_CONFIG_OPT_SCOPE_RECEIVER 0x2
4212
#define LBMC_CNTL_CONFIG_OPT_SCOPE_CONTEXT 0x3
4213
#define LBMC_CNTL_CONFIG_OPT_SCOPE_WILDCARD_RECEIVER 0x4
4214
#define LBMC_CNTL_CONFIG_OPT_SCOPE_EVENT_QUEUE 0x5
4215
#define LBMC_CNTL_CONFIG_OPT_SCOPE_CONNECTION_FACTORY 0x6
4216
#define LBMC_CNTL_CONFIG_OPT_SCOPE_DESTINATION 0x7
4217
#define LBMC_CNTL_CONFIG_OPT_SCOPE_HFX 0x8
4218
4219
/*----------------------------------------------------------------------------*/
4220
/* Value translation tables.                                                  */
4221
/*----------------------------------------------------------------------------*/
4222
4223
static const value_string lbmc_message_type[] =
4224
{
4225
    { LBMC_TYPE_MESSAGE, "Message" },
4226
    { LBMC_TYPE_PRORX, "Proactive Retransmission" },
4227
    { LBMC_TYPE_RETRANS, "Retransmission" },
4228
    { LBMC_TYPE_CONTROL, "Control" },
4229
    { LBMC_TYPE_EOT, "EOT" },
4230
    { 0x0, NULL }
4231
};
4232
4233
static const value_string lbmc_next_header[] =
4234
{
4235
    { LBMC_NHDR_DATA, "Data" },
4236
    { LBMC_NHDR_FRAG, "Fragment" },
4237
    { LBMC_NHDR_BATCH, "Batch" },
4238
    { LBMC_NHDR_TGIDX, "Unknown" },
4239
    { LBMC_NHDR_REQUEST, "Request" },
4240
    { LBMC_NHDR_TOPICNAME, "Topic name" },
4241
    { LBMC_NHDR_APPHDR, "Application header" },
4242
    { LBMC_NHDR_APPHDR_CHAIN, "Application header chain" },
4243
    { LBMC_NHDR_UMQ_MSGID, "UMQ message ID" },
4244
    { LBMC_NHDR_UMQ_SQD_RCV, "UMQ SQD rcv" },
4245
    { LBMC_NHDR_UMQ_RESUB, "UMQ resub" },
4246
    { LBMC_NHDR_OTID, "OTID" },
4247
    { LBMC_NHDR_CTXINSTD, "Context instance destination" },
4248
    { LBMC_NHDR_CTXINSTR, "Context instance return" },
4249
    { LBMC_NHDR_SRCIDX, "Source index" },
4250
    { LBMC_NHDR_UMQ_ULB_MSG, "UMQ ULB Message" },
4251
    { LBMC_NHDR_SSF_INIT, "Source-side filtering init" },
4252
    { LBMC_NHDR_SSF_CREQ, "Source-side filtering control request" },
4253
    { LBMC_NHDR_UME_PREG, "UME persistent registration" },
4254
    { LBMC_NHDR_UME_PREG_RESP, "UME persistent registration response" },
4255
    { LBMC_NHDR_UME_ACK, "UME acknowledgement" },
4256
    { LBMC_NHDR_UME_RXREQ, "UME retransmission request" },
4257
    { LBMC_NHDR_UME_KEEPALIVE, "UME keepalive" },
4258
    { LBMC_NHDR_UME_STOREID, "UME store ID" },
4259
    { LBMC_NHDR_UME_RANGED_ACK, "UME ranged ACK" },
4260
    { LBMC_NHDR_UME_ACK_ID, "UME ACK" },
4261
    { LBMC_NHDR_UME_CAPABILITY, "UME capability" },
4262
    { LBMC_NHDR_UME_PROXY_SRC, "Proxy source" },
4263
    { LBMC_NHDR_UME_STORE_GROUP, "Store group" },
4264
    { LBMC_NHDR_UME_STORE_INFO, "Store info" },
4265
    { LBMC_NHDR_UME_LJ_INFO, "UME late-join info" },
4266
    { LBMC_NHDR_UME_RANGED_RXREQ, "UME ranged retransmission request" },
4267
    { LBMC_NHDR_TSNI, "Topic sequence info" },
4268
    { LBMC_NHDR_UMQ_REG, "UMQ registration" },
4269
    { LBMC_NHDR_UMQ_REG_RESP, "UMQ registration response" },
4270
    { LBMC_NHDR_UMQ_ACK, "UMQ ACK" },
4271
    { LBMC_NHDR_UMQ_RCR, "UMQ receiver control record" },
4272
    { LBMC_NHDR_UMQ_KA, "UMQ keepalive" },
4273
    { LBMC_NHDR_UMQ_RXREQ, "UMQ retransmission request" },
4274
    { LBMC_NHDR_UMQ_QMGMT, "UMQ queue management" },
4275
    { LBMC_NHDR_UMQ_RESUB_REQ, "UMQ resubmission request" },
4276
    { LBMC_NHDR_UMQ_RESUB_RESP, "UMQ resubmission response" },
4277
    { LBMC_NHDR_TOPIC_INTEREST, "Topic interest" },
4278
    { LBMC_NHDR_PATTERN_INTEREST, "Pattern interest" },
4279
    { LBMC_NHDR_ADVERTISEMENT, "Advertisement" },
4280
    { LBMC_NHDR_UME_CTXINSTS, "Store context instance" },
4281
    { LBMC_NHDR_UME_STORENAME, "Store name" },
4282
    { LBMC_NHDR_UMQ_ULB_RCR, "UMQ ULB RCR" },
4283
    { LBMC_NHDR_UMQ_LF, "UMQ load factor" },
4284
    { LBMC_NHDR_CTXINFO, "Context information" },
4285
    { LBMC_NHDR_UME_PSER, "UME proxy source election" },
4286
    { LBMC_NHDR_CTXINST, "Context instance" },
4287
    { LBMC_NHDR_DOMAIN, "Domain" },
4288
    { LBMC_NHDR_TNWG_CAPABILITIES, "TNWG Capabilities" },
4289
    { LBMC_NHDR_PATIDX, "Pattern index" },
4290
    { LBMC_NHDR_UME_CLIENT_LIFETIME, "UME client lifetime" },
4291
    { LBMC_NHDR_UME_SID, "UME session ID" },
4292
    { LBMC_NHDR_UMQ_IDX_CMD, "UMQ index command" },
4293
    { LBMC_NHDR_UMQ_IDX_CMD_RESP, "UMQ index command response" },
4294
    { LBMC_NHDR_ODOMAIN, "Originating Domain" },
4295
    { LBMC_NHDR_STREAM, "Stream" },
4296
    { LBMC_NHDR_TOPIC_MD_INTEREST, "Topic multi-domain interest" },
4297
    { LBMC_NHDR_PATTERN_MD_INTEREST, "Pattern multi-domain interest" },
4298
    { LBMC_NHDR_LJI_REQ, "Late Join information request" },
4299
    { LBMC_NHDR_TNWG_KA, "Gateway peer keepalive" },
4300
    { LBMC_NHDR_UME_RCV_KEEPALIVE, "UME receiver keepalive" },
4301
    { LBMC_NHDR_UMQ_CMD, "UMQ command" },
4302
    { LBMC_NHDR_UMQ_CMD_RESP, "UMQ command response" },
4303
    { LBMC_NHDR_SRI_REQ, "Source registration information request" },
4304
    { LBMC_NHDR_UME_STORE_DOMAIN, "Store domain" },
4305
    { LBMC_NHDR_SRI, "Source registration information" },
4306
    { LBMC_NHDR_ROUTE_INFO, "Route information" },
4307
    { LBMC_NHDR_ROUTE_INFO_NEIGHBOR, "Route information neighbor" },
4308
    { LBMC_NHDR_GATEWAY_NAME, "Gateway name" },
4309
    { LBMC_NHDR_AUTHENTICATION, "Authentication" },
4310
    { LBMC_NHDR_HMAC, "HMAC" },
4311
    { LBMC_NHDR_UMQ_SID, "UMQ session ID" },
4312
    { LBMC_NHDR_DESTINATION, "Destination" },
4313
    { LBMC_NHDR_TOPIC_IDX, "Topic index" },
4314
    { LBMC_NHDR_TOPIC_SOURCE, "Topic source" },
4315
    { LBMC_NHDR_TOPIC_SOURCE_EXFUNC, "Topic source extended functionality" },
4316
    { LBMC_NHDR_UME_STORE_INFO_EXT, "Store extended information" },
4317
    { LBMC_NHDR_UME_PSRC_ELECTION_TOKEN, "Proxy source election token" },
4318
    { LBMC_NHDR_TCP_SID, "TCP session ID" },
4319
    { LBMC_NHDR_TRANSPORT_SECURITY, "Transport security" },
4320
    { LBMC_NHDR_ROUTE_INFO_NBR_EXT, "Route information neighbor extended (route groups)" },
4321
    { LBMC_NHDR_EXTOPT, "Extended option" },
4322
    { LBMC_NHDR_NONE, "None" },
4323
    { 0x0, NULL }
4324
};
4325
4326
static const value_string lbmc_req_transport_type[] =
4327
{
4328
    { LBMC_REQUEST_TRANSPORT_TCP, "TCP" },
4329
    { 0x0, NULL }
4330
};
4331
4332
static const value_string lbmc_ssf_transport_type[] =
4333
{
4334
    { LBMC_CNTL_SSF_INIT_TRANSPORT_TCP, "TCP" },
4335
    { 0x0, NULL }
4336
};
4337
4338
static const value_string lbmc_ssf_creq_mode[] =
4339
{
4340
    { LBMC_CNTL_SSF_CREQ_MODE_INCLUDE, "Include" },
4341
    { LBMC_CNTL_SSF_CREQ_MODE_EXCLUDE, "Exclude" },
4342
    { 0x0, NULL }
4343
};
4344
4345
static const value_string lbmc_ume_preg_resp_error_code[] =
4346
{
4347
    { LBMC_UME_PREG_RESP_ERRCODE_ENOERROR, "No error" },
4348
    { LBMC_UME_PREG_RESP_ERRCODE_ENOPATTERN, "Store has no matching pattern" },
4349
    { LBMC_UME_PREG_RESP_ERRCODE_ESRCREGID, "Source RegID not found" },
4350
    { LBMC_UME_PREG_RESP_ERRCODE_EREGID, "RegID is in use by a receiver" },
4351
    { LBMC_UME_PREG_RESP_ERRCODE_ETOPICNAME,  "Topic name does not match previous registration" },
4352
    { LBMC_UME_PREG_RESP_ERRCODE_EACTIVE, "RegID is in use by a different source" },
4353
    { LBMC_UME_PREG_RESP_ERRCODE_ECONFIG, "Source and store configuration values are incompatible" },
4354
    { 0x0, NULL }
4355
};
4356
4357
static const value_string lbmc_ume_ack_type[] =
4358
{
4359
    { LBMC_UME_ACK_TYPE_CDELV, "CDELV" },
4360
    { LBMC_UME_ACK_TYPE_STABLE, "Stable" },
4361
    { 0x0, NULL }
4362
};
4363
4364
static const value_string lbmc_ume_ka_type[] =
4365
{
4366
    { LBMC_UME_KEEPALIVE_TYPE_SRC, "Source" },
4367
    { LBMC_UME_KEEPALIVE_TYPE_RCV, "Receiver" },
4368
    { LBMC_UME_KEEPALIVE_TYPE_STORE, "Store" },
4369
    { 0x0, NULL }
4370
};
4371
4372
static const true_false_string lbmc_ume_s_flag =
4373
{
4374
    "Source registration",
4375
    "Receiver registration"
4376
};
4377
4378
static const true_false_string lbmc_ume_f_flag =
4379
{
4380
    "Do not forward ACKs",
4381
    "Forward ACKs"
4382
};
4383
4384
static const true_false_string lbmc_ume_o_flag =
4385
{
4386
    "Old/returning client",
4387
    "New client"
4388
};
4389
4390
static const true_false_string lbmc_ume_error_flag =
4391
{
4392
    "Error (see code)",
4393
    "No error"
4394
};
4395
4396
static const true_false_string lbmc_ume_n_flag =
4397
{
4398
    "No cache (store) or no ACKs (receiver)",
4399
    "Cache (store) or ACKs (receiver)"
4400
};
4401
4402
static const true_false_string lbmc_ume_r_flag =
4403
{
4404
    "Store requests a response",
4405
    "No response requested"
4406
};
4407
4408
static const true_false_string lbmc_ume_t_flag =
4409
{
4410
    "Store has not seen a TIR for the topic",
4411
    "Store has seen a TIR for the topic"
4412
};
4413
4414
static const value_string lbmc_apphdr_chain_type[] =
4415
{
4416
    { LBM_CHAIN_ELEM_CHANNEL_NUMBER, "Channel" },
4417
    { LBM_CHAIN_ELEM_HF_SQN, "Hot failover sequence number" },
4418
    { LBM_CHAIN_ELEM_GW_INFO, "Gateway info" },
4419
    { LBM_CHAIN_ELEM_APPHDR, "Non-chained apphdr" },
4420
    { LBM_CHAIN_ELEM_USER_DATA, "User data" },
4421
    { LBM_CHAIN_ELEM_PROPERTIES_LENGTH, "Message properties length" },
4422
    { LBM_CHAIN_ELEM_NONE, "None" },
4423
    { 0x0, NULL }
4424
};
4425
4426
static const value_string lbmc_umq_reg_type[] =
4427
{
4428
    { LBMC_UMQ_REG_CTX_TYPE, "Context" },
4429
    { LBMC_UMQ_REG_SRC_TYPE, "Source" },
4430
    { LBMC_UMQ_REG_RCV_TYPE, "Receiver" },
4431
    { LBMC_UMQ_REG_RCV_DEREG_TYPE, "Receiver deregistration" },
4432
    { LBMC_UMQ_REG_ULB_RCV_TYPE, "ULB Receiver" },
4433
    { LBMC_UMQ_REG_ULB_RCV_DEREG_TYPE, "ULB Receiver deregistration" },
4434
    { LBMC_UMQ_REG_OBSERVER_RCV_TYPE, "Observer receiver registration" },
4435
    { LBMC_UMQ_REG_OBSERVER_RCV_DEREG_TYPE, "Observer receiver deregistration" },
4436
    { 0x0, NULL }
4437
};
4438
4439
static const value_string lbmc_umq_reg_response_type[] =
4440
{
4441
    { LBMC_UMQ_REG_RESP_CTX_TYPE, "Context" },
4442
    { LBMC_UMQ_REG_RESP_SRC_TYPE, "Source" },
4443
    { LBMC_UMQ_REG_RESP_RCV_TYPE, "Receiver" },
4444
    { LBMC_UMQ_REG_RESP_RCV_DEREG_TYPE, "Receiver deregistration" },
4445
    { LBMC_UMQ_REG_RESP_ERR_TYPE, "Error" },
4446
    { LBMC_UMQ_REG_RESP_ULB_RCV_TYPE, "ULB Receiver" },
4447
    { LBMC_UMQ_REG_RESP_ULB_RCV_DEREG_TYPE, "ULB Receiver deregistration" },
4448
    { LBMC_UMQ_REG_RESP_OBSERVER_RCV_TYPE, "Observer receiver registration" },
4449
    { LBMC_UMQ_REG_RESP_OBSERVER_RCV_DEREG_TYPE, "Observer receiver deregistration" },
4450
    { LBMC_UMQ_REG_RESP_CTX_EX_TYPE, "Extended context registration" },
4451
    { 0x0, NULL }
4452
};
4453
4454
static const value_string lbmc_umq_reg_response_error_code[] =
4455
{
4456
    { UMQUEUE_CTX_REG_EDUPREGID, "Registration ID in use by different IP/port (ctx)" },
4457
    { UMQUEUE_SRC_REG_EREGID, "Registration ID not found (src)" },
4458
    { UMQUEUE_SRC_REG_ENOPATTERN, "Topic not specified in queue configuration (src)" },
4459
    { UMQUEUE_SRC_REG_ENOTOPICNAME, "No topic name (src)" },
4460
    { UMQUEUE_RCV_REG_ENOTOPICNAME, "No topic name (rcv)" },
4461
    { UMQUEUE_RCV_REG_EREGID, "Registration ID not found (rcv)" },
4462
    { UMQUEUE_RCV_REG_ENOPATTERN, "Topic not specified in queue configuration (rcv)"},
4463
    { UMQUEUE_RCV_REG_EASSIGNIDINUSE, "Assignment ID already in use (rcv)" },
4464
    { UMQUEUE_RCV_REG_ERCVTYPEID, "Invalid receiver-type ID (rcv)" },
4465
    { UMQUEUE_RCV_REG_EINVAL, "Invalid value (rcv)" },
4466
    { UMQUEUE_REG_EAUTHFAIL, "Authorization failure" },
4467
    { 0x0, NULL }
4468
};
4469
4470
static const value_string lbmc_umq_idx_cmd_response_error_code[] =
4471
{
4472
    { UMQUEUE_RCV_IDX_CMD_EREGID, "Receiver/list not found" },
4473
    { UMQUEUE_RCV_IDX_CMD_EIDXNOTASSIGNED, "Index not assigned" },
4474
    { UMQUEUE_RCV_IDX_CMD_EIDXINELIGIBLE, "Receiver ineligible for index" },
4475
    { UMQUEUE_RCV_IDX_CMD_EIDXINUSE, "Index assigned to another receiver" },
4476
    { UMQUEUE_RCV_IDX_CMD_EIDXALREADYASSIGNED, "Index already assigned to this receiver" },
4477
    { UMQUEUE_RCV_IDX_CMD_EAUTHFAIL, "Authorization failure" },
4478
    { LBM_UMQ_ULB_RCV_IDX_CMD_EIDXNOTASSIGNED, "Index not assigned" },
4479
    { LBM_UMQ_ULB_RCV_IDX_CMD_EIDXINELIGIBLE, "Receiver ineligible for index" },
4480
    { LBM_UMQ_ULB_RCV_IDX_CMD_EIDXINUSE, "Index already assigned or unavailable" },
4481
    { LBM_UMQ_ULB_RCV_IDX_CMD_EIDXALREADYASSIGNED, "Index already assigned to this receiver" },
4482
    { 0x0, NULL }
4483
};
4484
4485
static const value_string lbmc_umq_ack_type[] =
4486
{
4487
    { LBMC_UMQ_ACK_STABLE_TYPE, "Stable" },
4488
    { LBMC_UMQ_ACK_CR_TYPE, "CR" },
4489
    { LBMC_UMQ_ACK_ULB_CR_TYPE, "ULB CR" },
4490
    { 0x0, NULL }
4491
};
4492
4493
static const value_string lbmc_umq_ka_type[] =
4494
{
4495
    { LBMC_UMQ_KA_CTX_TYPE, "Context" },
4496
    { LBMC_UMQ_KA_SRC_TYPE, "Source" },
4497
    { LBMC_UMQ_KA_RCV_TYPE, "Receiver" },
4498
    { LBMC_UMQ_KA_ULB_RCV_TYPE, "ULB Receiver" },
4499
    { LBMC_UMQ_KA_CTX_RESP_TYPE, "Context response" },
4500
    { LBMC_UMQ_KA_SRC_RESP_TYPE, "Source response" },
4501
    { LBMC_UMQ_KA_RCV_RESP_TYPE, "Receiver response" },
4502
    { LBMC_UMQ_KA_ULB_RCV_RESP_TYPE, "ULB Receiver response" },
4503
    { 0x0, NULL }
4504
};
4505
4506
static const value_string lbmc_umq_rxreq_type[] =
4507
{
4508
    { LBMC_UMQ_RXREQ_MR_TYPE, "MR" },
4509
    { LBMC_UMQ_RXREQ_QRCRR_TYPE, "QRCRR" },
4510
    { LBMC_UMQ_RXREQ_TRCRR_TYPE, "TRCRR" },
4511
    { LBMC_UMQ_RXREQ_ULB_MR_TYPE, "ULB MR" },
4512
    { LBMC_UMQ_RXREQ_ULB_MR_ABORT_TYPE, "ULB MR Abort" },
4513
    { LBMC_UMQ_RXREQ_ULB_TRCRR_TYPE, "ULB TRCRR" },
4514
    { LBMC_UMQ_RXREQ_ULB_TRCRR_ABORT_TYPE, "ULB TRCRR Abort" },
4515
    { 0x0, NULL }
4516
};
4517
4518
static const value_string lbmc_umq_resub_response_code[] =
4519
{
4520
    { LBMC_UMQ_RESUB_RESP_ENQUEUED_CODE, "Enqueued" },
4521
    { LBMC_UMQ_RESUB_RESP_CONSUMED_CODE, "Consumed" },
4522
    { LBMC_UMQ_RESUB_RESP_OUTSTANDING_CODE, "Outstanding" },
4523
    { LBMC_UMQ_RESUB_RESP_RESUBALLOWED_CODE, "Resubmission allowed" },
4524
    { LBMC_UMQ_RESUB_RESP_RESUBDONE_CODE, "Resubmission done" },
4525
    { 0x0, NULL }
4526
};
4527
4528
static const value_string lbmc_umq_lf_type[] =
4529
{
4530
    { LBMC_UMQ_LF_SRC_TYPE, "Source" },
4531
    { LBMC_UMQ_LF_RCV_TYPE, "Receiver" },
4532
    { 0x0, NULL }
4533
};
4534
4535
static const value_string lbmc_umq_index_cmd_type[] =
4536
{
4537
    { LBMC_UMQ_IDX_CMD_RCV_STOP_IDX_ASSIGN_TYPE, "Stop receiver index assignment" },
4538
    { LBMC_UMQ_IDX_CMD_RCV_START_IDX_ASSIGN_TYPE, "Start receiver index assignment" },
4539
    { LBMC_UMQ_IDX_CMD_ULB_RCV_STOP_IDX_ASSIGN_TYPE, "Stop ULB receiver index assignment" },
4540
    { LBMC_UMQ_IDX_CMD_ULB_RCV_START_IDX_ASSIGN_TYPE, "Start ULB receiver index assignment" },
4541
    { LBMC_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_TYPE, "Release receiver index assignment" },
4542
    { LBMC_UMQ_IDX_CMD_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE, "Release ULB receiver index assignment" },
4543
    { LBMC_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_TYPE, "Reserve receiver index assignment" },
4544
    { LBMC_UMQ_IDX_CMD_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE, "Reserve ULB receiver index assignment" },
4545
    { 0x0, NULL }
4546
};
4547
4548
static const value_string lbmc_umq_index_cmd_response_type[] =
4549
{
4550
    { LBMC_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_TYPE, "Stop receiver index assignment" },
4551
    { LBMC_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_TYPE, "Start receiver index assignment" },
4552
    { LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_TYPE, "Stop ULB receiver index assignment" },
4553
    { LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_TYPE, "Start ULB receiver index assignment" },
4554
    { LBMC_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_TYPE, "Release receiver index assignment" },
4555
    { LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE, "Release ULB receiver index assignment" },
4556
    { LBMC_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_TYPE, "Reserve receiver index assignment" },
4557
    { LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE, "Reserve ULB receiver index assignment" },
4558
    { 0x0, NULL }
4559
};
4560
4561
static const value_string lbmc_umq_cmd_type[] =
4562
{
4563
    { LBMC_UMQ_CMD_TYPE_TOPIC_LIST, "Topic list" },
4564
    { LBMC_UMQ_CMD_TYPE_RCV_MSG_RETRIEVE, "Retrieve message" },
4565
    { LBMC_UMQ_CMD_TYPE_RCV_MSG_LIST, "List message" },
4566
    { 0x0, NULL }
4567
};
4568
4569
static const value_string lbmc_umq_cmd_response_type[] =
4570
{
4571
    { LBMC_UMQ_CMD_RESP_TYPE_CTX_TOPIC_LIST, "Topic list" },
4572
    { LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_RETRIEVE, "Retrieve message" },
4573
    { LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_LIST, "List message" },
4574
    { LBMC_UMQ_CMD_RESP_TYPE_ERROR, "Error" },
4575
    { 0x0, NULL }
4576
};
4577
4578
static const value_string lbmc_umq_cmd_response_error_code[] =
4579
{
4580
    { LBMC_UMQ_CMD_RESP_ERROR_AUTHFAIL, "Authentication failed" },
4581
    { LBMC_UMQ_CMD_RESP_ERROR_NOHMAC, "HMAC failed" },
4582
    { LBMC_UMQ_CMD_RESP_ERROR_NOAUTHOR, "Not authorized" },
4583
    { 0x0, NULL }
4584
};
4585
4586
static const value_string lbmc_transport_security_state[] =
4587
{
4588
    { LBMC_TRANSPORT_SECURITY_STATE_PROPOSE, "Propose" },
4589
    { LBMC_TRANSPORT_SECURITY_STATE_REJECT, "Reject" },
4590
    { LBMC_TRANSPORT_SECURITY_STATE_CHANGE, "Change" },
4591
    { 0x0, NULL }
4592
};
4593
4594
static const value_string lbmc_transport_security_protocol[] =
4595
{
4596
    { LBMC_TRANSPORT_SECURITY_PROTOCOL_NULL, "Null" },
4597
    { LBMC_TRANSPORT_SECURITY_PROTOCOL_BLACKHOLE, "Blackhole" },
4598
    { LBMC_TRANSPORT_SECURITY_PROTOCOL_NONE, "None (plaintext)" },
4599
    { LBMC_TRANSPORT_SECURITY_PROTOCOL_TLS, "TLS" },
4600
    { LBMC_TRANSPORT_SECURITY_PROTOCOL_LZ4, "LZ4 compression" },
4601
    { LBMC_TRANSPORT_SECURITY_PROTOCOL_LZ4_TLS, "LZ4 compression + TLS" },
4602
    { 0x0, NULL }
4603
};
4604
4605
static const value_string lbmc_auth_operation_id_type[] =
4606
{
4607
    { AUTH_OP_REQ, "Request" },
4608
    { AUTH_OP_CHALLENGE, "Challenge" },
4609
    { AUTH_OP_CHALLENGE_RSP, "Challenge response" },
4610
    { AUTH_OP_RESULT, "Result" },
4611
    { 0x0, NULL }
4612
};
4613
4614
static const value_string lbmc_extopt_subtype[] =
4615
{
4616
    { LBMC_EXT_NHDR_CFGOPT, "Configuration option" },
4617
    { LBMC_EXT_NHDR_MSGSEL, "Message selector" },
4618
    { 0x0, NULL }
4619
};
4620
4621
static const value_string lbm_msg_prop_header_type[] =
4622
{
4623
    { LBM_MSG_PROPERTIES_TYPE_NORMAL, "Normal" },
4624
    { 0x0, NULL }
4625
};
4626
4627
static const value_string lbm_msg_prop_magic_type[] =
4628
{
4629
    { LBM_MSG_PROPERTIES_MAGIC, "MAGIC" },
4630
    { LBM_MSG_PROPERTIES_ANTIMAGIC, "ANTI-MAGIC" },
4631
    { 0x0, NULL }
4632
};
4633
4634
static const value_string lbm_msg_prop_field_type[] =
4635
{
4636
    { LBM_MSG_PROPERTY_NONE, "None" },
4637
    { LBM_MSG_PROPERTY_BOOLEAN, "Boolean" },
4638
    { LBM_MSG_PROPERTY_BYTE, "Byte" },
4639
    { LBM_MSG_PROPERTY_SHORT, "Short" },
4640
    { LBM_MSG_PROPERTY_INT, "Integer" },
4641
    { LBM_MSG_PROPERTY_LONG, "Long" },
4642
    { LBM_MSG_PROPERTY_FLOAT, "Float" },
4643
    { LBM_MSG_PROPERTY_DOUBLE, "Double" },
4644
    { LBM_MSG_PROPERTY_STRING, "String" },
4645
    { 0x0, NULL }
4646
};
4647
4648
static const value_string lbmc_umq_msg_status_code[] =
4649
{
4650
    { LBM_UMQ_QUEUE_MSG_STATUS_UNKNOWN, "Unknown" },
4651
    { LBM_UMQ_QUEUE_MSG_STATUS_UNASSIGNED, "Unassigned" },
4652
    { LBM_UMQ_QUEUE_MSG_STATUS_ASSIGNED, "Assigned" },
4653
    { LBM_UMQ_QUEUE_MSG_STATUS_REASSIGNING, "Reassigning" },
4654
    { LBM_UMQ_QUEUE_MSG_STATUS_CONSUMED, "Consumed" },
4655
    { LBM_UMQ_QUEUE_MSG_STATUS_COMPLETE, "Complete" },
4656
    { 0x0, NULL }
4657
};
4658
4659
static const value_string lbmc_extopt_config_option_scope[] =
4660
{
4661
    { LBMC_CNTL_CONFIG_OPT_SCOPE_SOURCE, "Source" },
4662
    { LBMC_CNTL_CONFIG_OPT_SCOPE_RECEIVER, "Receiver" },
4663
    { LBMC_CNTL_CONFIG_OPT_SCOPE_CONTEXT, "Context" },
4664
    { LBMC_CNTL_CONFIG_OPT_SCOPE_WILDCARD_RECEIVER, "Wildcard receiver" },
4665
    { LBMC_CNTL_CONFIG_OPT_SCOPE_EVENT_QUEUE, "Event queue" },
4666
    { LBMC_CNTL_CONFIG_OPT_SCOPE_CONNECTION_FACTORY, "Connection factory" },
4667
    { LBMC_CNTL_CONFIG_OPT_SCOPE_DESTINATION, "Destination" },
4668
    { LBMC_CNTL_CONFIG_OPT_SCOPE_HFX, "HFX" },
4669
    { 0x0, NULL }
4670
};
4671
4672
static const true_false_string lbmc_umq_r_flag =
4673
{
4674
    "Queue requests a response",
4675
    "No response requested"
4676
};
4677
4678
/*----------------------------------------------------------------------------*/
4679
/* Preferences.                                                               */
4680
/*----------------------------------------------------------------------------*/
4681
4682
static bool lbmc_use_heuristic_subdissectors = true;
4683
static bool lbmc_reassemble_fragments;
4684
static bool lbmc_dissect_lbmpdm;
4685
static heur_dissector_list_t lbmc_heuristic_subdissector_list;
4686
4687
/*----------------------------------------------------------------------------*/
4688
/* Handles of all types.                                                      */
4689
/*----------------------------------------------------------------------------*/
4690
4691
static int proto_lbmc;
4692
static int tnw_protocol_handle = -1;
4693
static int lbmc_uim_tap_handle = -1;
4694
static int lbmc_stream_tap_handle = -1;
4695
static int hf_lbmc_tag;
4696
static int hf_lbmc_topic;
4697
static int hf_lbmc_version;
4698
static int hf_lbmc_type;
4699
static int hf_lbmc_next_hdr;
4700
static int hf_lbmc_msglen;
4701
static int hf_lbmc_tidx;
4702
static int hf_lbmc_sqn;
4703
static int hf_lbmc_frag;
4704
static int hf_lbmc_frag_next_hdr;
4705
static int hf_lbmc_frag_hdr_len;
4706
static int hf_lbmc_frag_flags;
4707
static int hf_lbmc_frag_flags_ignore;
4708
static int hf_lbmc_frag_first_sqn;
4709
static int hf_lbmc_frag_offset;
4710
static int hf_lbmc_frag_len;
4711
static int hf_lbmc_batch;
4712
static int hf_lbmc_batch_next_hdr;
4713
static int hf_lbmc_batch_hdr_len;
4714
static int hf_lbmc_batch_flags;
4715
static int hf_lbmc_batch_flags_ignore;
4716
static int hf_lbmc_batch_flags_batch_start;
4717
static int hf_lbmc_batch_flags_batch_end;
4718
static int hf_lbmc_tcp_request;
4719
static int hf_lbmc_tcp_request_next_hdr;
4720
static int hf_lbmc_tcp_request_hdr_len;
4721
static int hf_lbmc_tcp_request_flags;
4722
static int hf_lbmc_tcp_request_flags_ignore;
4723
static int hf_lbmc_tcp_request_transport;
4724
static int hf_lbmc_tcp_request_qidx;
4725
static int hf_lbmc_tcp_request_port;
4726
static int hf_lbmc_tcp_request_reserved;
4727
static int hf_lbmc_tcp_request_ipaddr;
4728
static int hf_lbmc_topicname;
4729
static int hf_lbmc_topicname_next_hdr;
4730
static int hf_lbmc_topicname_hdr_len;
4731
static int hf_lbmc_topicname_flags;
4732
static int hf_lbmc_topicname_flags_ignore;
4733
static int hf_lbmc_topicname_topicname;
4734
static int hf_lbmc_apphdr;
4735
static int hf_lbmc_apphdr_next_hdr;
4736
static int hf_lbmc_apphdr_hdr_len;
4737
static int hf_lbmc_apphdr_code;
4738
static int hf_lbmc_apphdr_ignore;
4739
static int hf_lbmc_apphdr_data;
4740
static int hf_lbmc_apphdr_chain;
4741
static int hf_lbmc_apphdr_chain_next_hdr;
4742
static int hf_lbmc_apphdr_chain_hdr_len;
4743
static int hf_lbmc_apphdr_chain_res;
4744
static int hf_lbmc_apphdr_chain_first_chain_hdr;
4745
static int hf_lbmc_apphdr_chain_element;
4746
static int hf_lbmc_apphdr_chain_element_next_hdr;
4747
static int hf_lbmc_apphdr_chain_element_hdr_len;
4748
static int hf_lbmc_apphdr_chain_element_res;
4749
static int hf_lbmc_apphdr_chain_element_data;
4750
static int hf_lbmc_apphdr_chain_msgprop;
4751
static int hf_lbmc_apphdr_chain_msgprop_next_hdr;
4752
static int hf_lbmc_apphdr_chain_msgprop_hdr_len;
4753
static int hf_lbmc_apphdr_chain_msgprop_res;
4754
static int hf_lbmc_apphdr_chain_msgprop_len;
4755
static int hf_lbmc_umq_msgid;
4756
static int hf_lbmc_umq_msgid_next_hdr;
4757
static int hf_lbmc_umq_msgid_hdr_len;
4758
static int hf_lbmc_umq_msgid_flags;
4759
static int hf_lbmc_umq_msgid_flags_ignore;
4760
static int hf_lbmc_umq_msgid_msgid_regid;
4761
static int hf_lbmc_umq_msgid_msgid_stamp;
4762
static int hf_lbmc_umq_sqd_rcv;
4763
static int hf_lbmc_umq_sqd_rcv_next_hdr;
4764
static int hf_lbmc_umq_sqd_rcv_hdr_len;
4765
static int hf_lbmc_umq_sqd_rcv_flags;
4766
static int hf_lbmc_umq_sqd_rcv_flags_ignore;
4767
static int hf_lbmc_umq_sqd_rcv_flags_r_flag;
4768
static int hf_lbmc_umq_sqd_rcv_flags_s_flag;
4769
static int hf_lbmc_umq_sqd_rcv_flags_re_flag;
4770
static int hf_lbmc_umq_sqd_rcv_flags_eoi_flag;
4771
static int hf_lbmc_umq_sqd_rcv_flags_boi_flag;
4772
static int hf_lbmc_umq_sqd_rcv_queue_id;
4773
static int hf_lbmc_umq_sqd_rcv_queue_ver;
4774
static int hf_lbmc_umq_sqd_rcv_rcr_idx;
4775
static int hf_lbmc_umq_sqd_rcv_assign_id;
4776
static int hf_lbmc_umq_resub;
4777
static int hf_lbmc_umq_resub_next_hdr;
4778
static int hf_lbmc_umq_resub_hdr_len;
4779
static int hf_lbmc_umq_resub_flags;
4780
static int hf_lbmc_umq_resub_flags_ignore;
4781
static int hf_lbmc_umq_resub_flags_q_flag;
4782
static int hf_lbmc_umq_resub_rcr_idx;
4783
static int hf_lbmc_umq_resub_resp_ip;
4784
static int hf_lbmc_umq_resub_resp_port;
4785
static int hf_lbmc_umq_resub_appset_idx;
4786
static int hf_lbmc_otid;
4787
static int hf_lbmc_otid_next_hdr;
4788
static int hf_lbmc_otid_hdr_len;
4789
static int hf_lbmc_otid_flags;
4790
static int hf_lbmc_otid_flags_ignore;
4791
static int hf_lbmc_otid_otid;
4792
static int hf_lbmc_ctxinst;
4793
static int hf_lbmc_ctxinst_next_hdr;
4794
static int hf_lbmc_ctxinst_hdr_len;
4795
static int hf_lbmc_ctxinst_flags;
4796
static int hf_lbmc_ctxinst_flags_ignore;
4797
static int hf_lbmc_ctxinst_ctxinst;
4798
static int hf_lbmc_ctxinstd;
4799
static int hf_lbmc_ctxinstr;
4800
static int hf_lbmc_srcidx;
4801
static int hf_lbmc_srcidx_next_hdr;
4802
static int hf_lbmc_srcidx_hdr_len;
4803
static int hf_lbmc_srcidx_flags;
4804
static int hf_lbmc_srcidx_flags_ignore;
4805
static int hf_lbmc_srcidx_srcidx;
4806
static int hf_lbmc_umq_ulb_msg;
4807
static int hf_lbmc_umq_ulb_msg_next_hdr;
4808
static int hf_lbmc_umq_ulb_msg_hdr_len;
4809
static int hf_lbmc_umq_ulb_msg_flags;
4810
static int hf_lbmc_umq_ulb_msg_flags_ignore;
4811
static int hf_lbmc_umq_ulb_msg_flags_a_flag;
4812
static int hf_lbmc_umq_ulb_msg_flags_r_flag;
4813
static int hf_lbmc_umq_ulb_msg_queue_id;
4814
static int hf_lbmc_umq_ulb_msg_ulb_src_id;
4815
static int hf_lbmc_umq_ulb_msg_assign_id;
4816
static int hf_lbmc_umq_ulb_msg_appset_idx;
4817
static int hf_lbmc_umq_ulb_msg_num_ras;
4818
static int hf_lbmc_ssf_init;
4819
static int hf_lbmc_ssf_init_next_hdr;
4820
static int hf_lbmc_ssf_init_hdr_len;
4821
static int hf_lbmc_ssf_init_transport;
4822
static int hf_lbmc_ssf_init_flags;
4823
static int hf_lbmc_ssf_init_flags_ignore;
4824
static int hf_lbmc_ssf_init_flags_default_inclusions;
4825
static int hf_lbmc_ssf_init_flags_default_exclusions;
4826
static int hf_lbmc_ssf_init_transport_idx;
4827
static int hf_lbmc_ssf_init_client_idx;
4828
static int hf_lbmc_ssf_init_ssf_port;
4829
static int hf_lbmc_ssf_init_res;
4830
static int hf_lbmc_ssf_init_ssf_ip;
4831
static int hf_lbmc_ssf_creq;
4832
static int hf_lbmc_ssf_creq_next_hdr;
4833
static int hf_lbmc_ssf_creq_hdr_len;
4834
static int hf_lbmc_ssf_creq_flags;
4835
static int hf_lbmc_ssf_creq_flags_ignore;
4836
static int hf_lbmc_ssf_creq_mode;
4837
static int hf_lbmc_ssf_creq_transport_idx;
4838
static int hf_lbmc_ssf_creq_topic_idx;
4839
static int hf_lbmc_ssf_creq_client_idx;
4840
static int hf_lbmc_ume_preg;
4841
static int hf_lbmc_ume_preg_next_hdr;
4842
static int hf_lbmc_ume_preg_hdr_len;
4843
static int hf_lbmc_ume_preg_flags;
4844
static int hf_lbmc_ume_preg_flags_ignore;
4845
static int hf_lbmc_ume_preg_flags_f_flag;
4846
static int hf_lbmc_ume_preg_flags_p_flag;
4847
static int hf_lbmc_ume_preg_flags_w_flag;
4848
static int hf_lbmc_ume_preg_flags_d_flag;
4849
static int hf_lbmc_ume_preg_s_flag;
4850
static int hf_lbmc_ume_preg_marker;
4851
static int hf_lbmc_ume_preg_reg_id;
4852
static int hf_lbmc_ume_preg_transport_idx;
4853
static int hf_lbmc_ume_preg_topic_idx;
4854
static int hf_lbmc_ume_preg_src_reg_id;
4855
static int hf_lbmc_ume_preg_resp_port;
4856
static int hf_lbmc_ume_preg_res2;
4857
static int hf_lbmc_ume_preg_resp_ip;
4858
static int hf_lbmc_ume_preg_resp;
4859
static int hf_lbmc_ume_preg_resp_next_hdr;
4860
static int hf_lbmc_ume_preg_resp_hdr_len;
4861
static int hf_lbmc_ume_preg_resp_code;
4862
static int hf_lbmc_ume_preg_resp_code_ignore;
4863
static int hf_lbmc_ume_preg_resp_code_e_flag;
4864
static int hf_lbmc_ume_preg_resp_code_o_flag;
4865
static int hf_lbmc_ume_preg_resp_code_n_flag;
4866
static int hf_lbmc_ume_preg_resp_code_w_flag;
4867
static int hf_lbmc_ume_preg_resp_code_d_flag;
4868
static int hf_lbmc_ume_preg_resp_code_code;
4869
static int hf_lbmc_ume_preg_resp_s_flag;
4870
static int hf_lbmc_ume_preg_resp_marker;
4871
static int hf_lbmc_ume_preg_resp_reg_id;
4872
static int hf_lbmc_ume_preg_resp_transport_idx;
4873
static int hf_lbmc_ume_preg_resp_topic_idx;
4874
static int hf_lbmc_ume_preg_resp_low_seqnum;
4875
static int hf_lbmc_ume_preg_resp_high_seqnum;
4876
static int hf_lbmc_ume_ack;
4877
static int hf_lbmc_ume_ack_next_hdr;
4878
static int hf_lbmc_ume_ack_hdr_len;
4879
static int hf_lbmc_ume_ack_flags;
4880
static int hf_lbmc_ume_ack_flags_ignore;
4881
static int hf_lbmc_ume_ack_flags_o_flag;
4882
static int hf_lbmc_ume_ack_flags_f_flag;
4883
static int hf_lbmc_ume_ack_flags_u_flag;
4884
static int hf_lbmc_ume_ack_flags_e_flag;
4885
static int hf_lbmc_ume_ack_type;
4886
static int hf_lbmc_ume_ack_transport_idx;
4887
static int hf_lbmc_ume_ack_id_2;
4888
static int hf_lbmc_ume_ack_rcv_reg_id;
4889
static int hf_lbmc_ume_ack_seqnum;
4890
static int hf_lbmc_ume_rxreq;
4891
static int hf_lbmc_ume_rxreq_next_hdr;
4892
static int hf_lbmc_ume_rxreq_hdr_len;
4893
static int hf_lbmc_ume_rxreq_flags;
4894
static int hf_lbmc_ume_rxreq_flags_ignore;
4895
static int hf_lbmc_ume_rxreq_flags_tsni_req;
4896
static int hf_lbmc_ume_rxreq_marker;
4897
static int hf_lbmc_ume_rxreq_request_idx;
4898
static int hf_lbmc_ume_rxreq_transport_idx;
4899
static int hf_lbmc_ume_rxreq_id_2;
4900
static int hf_lbmc_ume_rxreq_seqnum;
4901
static int hf_lbmc_ume_rxreq_rx_port;
4902
static int hf_lbmc_ume_rxreq_res;
4903
static int hf_lbmc_ume_rxreq_rx_ip;
4904
static int hf_lbmc_ume_ranged_rxreq;
4905
static int hf_lbmc_ume_ranged_rxreq_next_hdr;
4906
static int hf_lbmc_ume_ranged_rxreq_hdr_len;
4907
static int hf_lbmc_ume_ranged_rxreq_flags;
4908
static int hf_lbmc_ume_ranged_rxreq_flags_ignore;
4909
static int hf_lbmc_ume_ranged_rxreq_first_seqnum;
4910
static int hf_lbmc_ume_ranged_rxreq_last_seqnum;
4911
static int hf_lbmc_ume_keepalive;
4912
static int hf_lbmc_ume_keepalive_next_hdr;
4913
static int hf_lbmc_ume_keepalive_hdr_len;
4914
static int hf_lbmc_ume_keepalive_flags;
4915
static int hf_lbmc_ume_keepalive_flags_ignore;
4916
static int hf_lbmc_ume_keepalive_flags_r_flag;
4917
static int hf_lbmc_ume_keepalive_flags_t_flag;
4918
static int hf_lbmc_ume_keepalive_type;
4919
static int hf_lbmc_ume_keepalive_transport_idx;
4920
static int hf_lbmc_ume_keepalive_topic_idx;
4921
static int hf_lbmc_ume_keepalive_reg_id;
4922
static int hf_lbmc_ume_storeid;
4923
static int hf_lbmc_ume_storeid_next_hdr;
4924
static int hf_lbmc_ume_storeid_hdr_len;
4925
static int hf_lbmc_ume_storeid_ignore;
4926
static int hf_lbmc_ume_storeid_store_id;
4927
static int hf_lbmc_ume_ranged_ack;
4928
static int hf_lbmc_ume_ranged_ack_next_hdr;
4929
static int hf_lbmc_ume_ranged_ack_hdr_len;
4930
static int hf_lbmc_ume_ranged_ack_flags;
4931
static int hf_lbmc_ume_ranged_ack_flags_ignore;
4932
static int hf_lbmc_ume_ranged_ack_first_seqnum;
4933
static int hf_lbmc_ume_ranged_ack_last_seqnum;
4934
static int hf_lbmc_ume_ack_id;
4935
static int hf_lbmc_ume_ack_id_next_hdr;
4936
static int hf_lbmc_ume_ack_id_hdr_len;
4937
static int hf_lbmc_ume_ack_id_flags;
4938
static int hf_lbmc_ume_ack_id_flags_ignore;
4939
static int hf_lbmc_ume_ack_id_id;
4940
static int hf_lbmc_ume_capability;
4941
static int hf_lbmc_ume_capability_next_hdr;
4942
static int hf_lbmc_ume_capability_hdr_len;
4943
static int hf_lbmc_ume_capability_flags;
4944
static int hf_lbmc_ume_capability_flags_ignore;
4945
static int hf_lbmc_ume_capability_flags_client_lifetime_flag;
4946
static int hf_lbmc_ume_capability_flags_qc_flag;
4947
static int hf_lbmc_ume_capability_flags_ranged_rx_flag;
4948
static int hf_lbmc_ume_proxy_src;
4949
static int hf_lbmc_ume_proxy_src_next_hdr;
4950
static int hf_lbmc_ume_proxy_src_hdr_len;
4951
static int hf_lbmc_ume_proxy_src_flags;
4952
static int hf_lbmc_ume_proxy_src_flags_ignore;
4953
static int hf_lbmc_ume_proxy_src_flags_enable;
4954
static int hf_lbmc_ume_proxy_src_flags_compatibility;
4955
static int hf_lbmc_ume_store_group;
4956
static int hf_lbmc_ume_store_group_next_hdr;
4957
static int hf_lbmc_ume_store_group_hdr_len;
4958
static int hf_lbmc_ume_store_group_flags;
4959
static int hf_lbmc_ume_store_group_flags_ignore;
4960
static int hf_lbmc_ume_store_group_grp_idx;
4961
static int hf_lbmc_ume_store_group_grp_sz;
4962
static int hf_lbmc_ume_store_group_res1;
4963
static int hf_lbmc_ume_store;
4964
static int hf_lbmc_ume_store_next_hdr;
4965
static int hf_lbmc_ume_store_hdr_len;
4966
static int hf_lbmc_ume_store_flags;
4967
static int hf_lbmc_ume_store_flags_ignore;
4968
static int hf_lbmc_ume_store_grp_idx;
4969
static int hf_lbmc_ume_store_store_tcp_port;
4970
static int hf_lbmc_ume_store_store_idx;
4971
static int hf_lbmc_ume_store_store_ip_addr;
4972
static int hf_lbmc_ume_store_src_reg_id;
4973
static int hf_lbmc_ume_lj_info;
4974
static int hf_lbmc_ume_lj_info_next_hdr;
4975
static int hf_lbmc_ume_lj_info_hdr_len;
4976
static int hf_lbmc_ume_lj_info_flags;
4977
static int hf_lbmc_ume_lj_info_flags_ignore;
4978
static int hf_lbmc_ume_lj_info_low_seqnum;
4979
static int hf_lbmc_ume_lj_info_high_seqnum;
4980
static int hf_lbmc_ume_lj_info_qidx;
4981
static int hf_lbmc_tsni;
4982
static int hf_lbmc_tsni_next_hdr;
4983
static int hf_lbmc_tsni_hdr_len;
4984
static int hf_lbmc_tsni_ignore;
4985
static int hf_lbmc_tsni_num_recs;
4986
static int hf_lbmc_tsni_rec;
4987
static int hf_lbmc_tsni_rec_tidx;
4988
static int hf_lbmc_tsni_rec_sqn;
4989
static int hf_lbmc_umq_reg;
4990
static int hf_lbmc_umq_reg_next_hdr;
4991
static int hf_lbmc_umq_reg_hdr_len;
4992
static int hf_lbmc_umq_reg_flags;
4993
static int hf_lbmc_umq_reg_flags_ignore;
4994
static int hf_lbmc_umq_reg_flags_r_flag;
4995
static int hf_lbmc_umq_reg_flags_t_flag;
4996
static int hf_lbmc_umq_reg_flags_i_flag;
4997
static int hf_lbmc_umq_reg_flags_msg_sel_flag;
4998
static int hf_lbmc_umq_reg_reg_type;
4999
static int hf_lbmc_umq_reg_queue_id;
5000
static int hf_lbmc_umq_reg_cmd_id;
5001
static int hf_lbmc_umq_reg_inst_idx;
5002
static int hf_lbmc_umq_reg_regid;
5003
static int hf_lbmc_umq_reg_reg_ctx;
5004
static int hf_lbmc_umq_reg_reg_ctx_port;
5005
static int hf_lbmc_umq_reg_reg_ctx_reserved;
5006
static int hf_lbmc_umq_reg_reg_ctx_ip;
5007
static int hf_lbmc_umq_reg_reg_ctx_capabilities;
5008
static int hf_lbmc_umq_reg_reg_src;
5009
static int hf_lbmc_umq_reg_reg_src_transport_idx;
5010
static int hf_lbmc_umq_reg_reg_src_topic_idx;
5011
static int hf_lbmc_umq_reg_reg_rcv;
5012
static int hf_lbmc_umq_reg_reg_rcv_assign_id;
5013
static int hf_lbmc_umq_reg_reg_rcv_rcv_type_id;
5014
static int hf_lbmc_umq_reg_reg_rcv_last_topic_rcr_tsp;
5015
static int hf_lbmc_umq_reg_rcv_dereg;
5016
static int hf_lbmc_umq_reg_rcv_dereg_rcr_idx;
5017
static int hf_lbmc_umq_reg_rcv_dereg_assign_id;
5018
static int hf_lbmc_umq_reg_reg_ulb_rcv;
5019
static int hf_lbmc_umq_reg_reg_ulb_rcv_ulb_src_id;
5020
static int hf_lbmc_umq_reg_reg_ulb_rcv_assign_id;
5021
static int hf_lbmc_umq_reg_reg_ulb_rcv_rcv_type_id;
5022
static int hf_lbmc_umq_reg_reg_ulb_rcv_port;
5023
static int hf_lbmc_umq_reg_reg_ulb_rcv_reserved;
5024
static int hf_lbmc_umq_reg_reg_ulb_rcv_ip;
5025
static int hf_lbmc_umq_reg_reg_ulb_rcv_capabilities;
5026
static int hf_lbmc_umq_reg_ulb_rcv_dereg;
5027
static int hf_lbmc_umq_reg_ulb_rcv_dereg_ulb_src_id;
5028
static int hf_lbmc_umq_reg_ulb_rcv_dereg_assign_id;
5029
static int hf_lbmc_umq_reg_reg_observer_rcv;
5030
static int hf_lbmc_umq_reg_reg_observer_rcv_assign_id;
5031
static int hf_lbmc_umq_reg_reg_observer_rcv_rcv_type_id;
5032
static int hf_lbmc_umq_reg_reg_observer_rcv_last_topic_rcr_tsp;
5033
static int hf_lbmc_umq_reg_observer_rcv_dereg;
5034
static int hf_lbmc_umq_reg_observer_rcv_dereg_rcr_idx;
5035
static int hf_lbmc_umq_reg_observer_rcv_dereg_assign_id;
5036
static int hf_lbmc_umq_reg_resp;
5037
static int hf_lbmc_umq_reg_resp_next_hdr;
5038
static int hf_lbmc_umq_reg_resp_hdr_len;
5039
static int hf_lbmc_umq_reg_resp_flags;
5040
static int hf_lbmc_umq_reg_resp_flags_ignore;
5041
static int hf_lbmc_umq_reg_resp_flags_r_flag;
5042
static int hf_lbmc_umq_reg_resp_flags_l_flag;
5043
static int hf_lbmc_umq_reg_resp_flags_src_s_flag;
5044
static int hf_lbmc_umq_reg_resp_flags_src_d_flag;
5045
static int hf_lbmc_umq_reg_resp_resp_type;
5046
static int hf_lbmc_umq_reg_resp_queue_id;
5047
static int hf_lbmc_umq_reg_resp_cmd_id;
5048
static int hf_lbmc_umq_reg_resp_inst_idx;
5049
static int hf_lbmc_umq_reg_resp_regid;
5050
static int hf_lbmc_umq_reg_resp_reg_ctx;
5051
static int hf_lbmc_umq_reg_resp_reg_ctx_capabilities;
5052
static int hf_lbmc_umq_reg_resp_reg_ctx_ex;
5053
static int hf_lbmc_umq_reg_resp_reg_ctx_ex_capabilities;
5054
static int hf_lbmc_umq_reg_resp_reg_ctx_ex_reserved;
5055
static int hf_lbmc_umq_reg_resp_reg_ctx_ex_flags;
5056
static int hf_lbmc_umq_reg_resp_reg_ctx_ex_flags_firstmsg;
5057
static int hf_lbmc_umq_reg_resp_reg_ctx_ex_stamp;
5058
static int hf_lbmc_umq_reg_resp_err;
5059
static int hf_lbmc_umq_reg_resp_err_reserved;
5060
static int hf_lbmc_umq_reg_resp_err_code;
5061
static int hf_lbmc_umq_reg_resp_reg_src;
5062
static int hf_lbmc_umq_reg_resp_reg_src_rcr_idx;
5063
static int hf_lbmc_umq_reg_resp_reg_rcv;
5064
static int hf_lbmc_umq_reg_resp_reg_rcv_rcr_idx;
5065
static int hf_lbmc_umq_reg_resp_reg_rcv_assign_id;
5066
static int hf_lbmc_umq_reg_resp_reg_rcv_appset_idx;
5067
static int hf_lbmc_umq_reg_resp_reg_rcv_reserved;
5068
static int hf_lbmc_umq_reg_resp_rcv_dereg;
5069
static int hf_lbmc_umq_reg_resp_rcv_dereg_rcr_idx;
5070
static int hf_lbmc_umq_reg_resp_rcv_dereg_assign_id;
5071
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv;
5072
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv_ulb_src_id;
5073
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv_assign_id;
5074
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv_appset_idx;
5075
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv_reserved;
5076
static int hf_lbmc_umq_reg_resp_reg_ulb_rcv_capabilities;
5077
static int hf_lbmc_umq_reg_resp_ulb_rcv_dereg;
5078
static int hf_lbmc_umq_reg_resp_ulb_rcv_dereg_ulb_src_id;
5079
static int hf_lbmc_umq_reg_resp_ulb_rcv_dereg_assign_id;
5080
static int hf_lbmc_umq_reg_resp_reg_observer_rcv;
5081
static int hf_lbmc_umq_reg_resp_reg_observer_rcv_rcr_idx;
5082
static int hf_lbmc_umq_reg_resp_reg_observer_rcv_assign_id;
5083
static int hf_lbmc_umq_reg_resp_reg_observer_rcv_appset_idx;
5084
static int hf_lbmc_umq_reg_resp_reg_observer_rcv_reserved;
5085
static int hf_lbmc_umq_reg_resp_observer_rcv_dereg;
5086
static int hf_lbmc_umq_reg_resp_observer_rcv_dereg_rcr_idx;
5087
static int hf_lbmc_umq_reg_resp_observer_rcv_dereg_assign_id;
5088
static int hf_lbmc_umq_ack;
5089
static int hf_lbmc_umq_ack_next_hdr;
5090
static int hf_lbmc_umq_ack_hdr_len;
5091
static int hf_lbmc_umq_ack_msgs;
5092
static int hf_lbmc_umq_ack_msgs_ignore;
5093
static int hf_lbmc_umq_ack_msgs_t_flag;
5094
static int hf_lbmc_umq_ack_msgs_d_flag;
5095
static int hf_lbmc_umq_ack_numids;
5096
static int hf_lbmc_umq_ack_ack_type;
5097
static int hf_lbmc_umq_ack_msgid;
5098
static int hf_lbmc_umq_ack_msgid_regid;
5099
static int hf_lbmc_umq_ack_msgid_stamp;
5100
static int hf_lbmc_umq_ack_stable;
5101
static int hf_lbmc_umq_ack_stable_queue_id;
5102
static int hf_lbmc_umq_ack_stable_inst_idx;
5103
static int hf_lbmc_umq_ack_stable_reserved;
5104
static int hf_lbmc_umq_ack_cr;
5105
static int hf_lbmc_umq_ack_cr_rcr_idx;
5106
static int hf_lbmc_umq_ack_cr_assign_id;
5107
static int hf_lbmc_umq_ack_cr_appset_idx;
5108
static int hf_lbmc_umq_ack_cr_reserved;
5109
static int hf_lbmc_umq_ack_ulb_cr;
5110
static int hf_lbmc_umq_ack_ulb_cr_ulb_src_id;
5111
static int hf_lbmc_umq_ack_ulb_cr_assign_id;
5112
static int hf_lbmc_umq_ack_ulb_cr_appset_idx;
5113
static int hf_lbmc_umq_ack_ulb_cr_reserved;
5114
static int hf_lbmc_umq_rcr;
5115
static int hf_lbmc_umq_rcr_next_hdr;
5116
static int hf_lbmc_umq_rcr_hdr_len;
5117
static int hf_lbmc_umq_rcr_flags;
5118
static int hf_lbmc_umq_rcr_flags_ignore;
5119
static int hf_lbmc_umq_rcr_flags_r_flag;
5120
static int hf_lbmc_umq_rcr_flags_d_flag;
5121
static int hf_lbmc_umq_rcr_flags_s_flag;
5122
static int hf_lbmc_umq_rcr_flags_eoi_flag;
5123
static int hf_lbmc_umq_rcr_flags_boi_flag;
5124
static int hf_lbmc_umq_rcr_queue_id;
5125
static int hf_lbmc_umq_rcr_rcr_idx;
5126
static int hf_lbmc_umq_rcr_msgid_regid;
5127
static int hf_lbmc_umq_rcr_msgid_stamp;
5128
static int hf_lbmc_umq_rcr_topic_tsp;
5129
static int hf_lbmc_umq_rcr_q_tsp;
5130
static int hf_lbmc_umq_rcr_assign_id;
5131
static int hf_lbmc_umq_rcr_appset_idx;
5132
static int hf_lbmc_umq_rcr_num_ras;
5133
static int hf_lbmc_umq_rcr_queue_ver;
5134
static int hf_lbmc_cntl_umq_ka;
5135
static int hf_lbmc_cntl_umq_ka_next_hdr;
5136
static int hf_lbmc_cntl_umq_ka_hdr_len;
5137
static int hf_lbmc_cntl_umq_ka_flags;
5138
static int hf_lbmc_cntl_umq_ka_flags_ignore;
5139
static int hf_lbmc_cntl_umq_ka_flags_r_flag;
5140
static int hf_lbmc_cntl_umq_ka_ka_type;
5141
static int hf_lbmc_cntl_umq_ka_queue_id;
5142
static int hf_lbmc_cntl_umq_ka_regid;
5143
static int hf_lbmc_cntl_umq_ka_inst_idx;
5144
static int hf_lbmc_cntl_umq_ka_reserved;
5145
static int hf_lbmc_umq_ka_src;
5146
static int hf_lbmc_umq_ka_src_transport_idx;
5147
static int hf_lbmc_umq_ka_src_topic_idx;
5148
static int hf_lbmc_umq_ka_rcv;
5149
static int hf_lbmc_umq_ka_rcv_rcr_idx;
5150
static int hf_lbmc_umq_ka_rcv_assign_id;
5151
static int hf_lbmc_umq_ka_ulb_rcv;
5152
static int hf_lbmc_umq_ka_ulb_rcv_ulb_src_id;
5153
static int hf_lbmc_umq_ka_ulb_rcv_assign_id;
5154
static int hf_lbmc_umq_ka_ulb_rcv_resp;
5155
static int hf_lbmc_umq_ka_ulb_rcv_resp_ulb_src_id;
5156
static int hf_lbmc_umq_ka_ulb_rcv_resp_assign_id;
5157
static int hf_lbmc_umq_ka_ulb_rcv_resp_appset_idx;
5158
static int hf_lbmc_umq_ka_ulb_rcv_resp_reserved;
5159
static int hf_lbmc_umq_rxreq;
5160
static int hf_lbmc_umq_rxreq_next_hdr;
5161
static int hf_lbmc_umq_rxreq_hdr_len;
5162
static int hf_lbmc_umq_rxreq_flags;
5163
static int hf_lbmc_umq_rxreq_flags_ignore;
5164
static int hf_lbmc_umq_rxreq_flags_r_flag;
5165
static int hf_lbmc_umq_rxreq_rxreq_type;
5166
static int hf_lbmc_umq_rxreq_regid_resp;
5167
static int hf_lbmc_umq_rxreq_regid_resp_regid;
5168
static int hf_lbmc_umq_rxreq_addr_resp;
5169
static int hf_lbmc_umq_rxreq_addr_resp_ip;
5170
static int hf_lbmc_umq_rxreq_addr_resp_port;
5171
static int hf_lbmc_umq_rxreq_addr_resp_reserved;
5172
static int hf_lbmc_umq_rxreq_mr;
5173
static int hf_lbmc_umq_rxreq_mr_assign_id;
5174
static int hf_lbmc_umq_rxreq_mr_msgid_regid;
5175
static int hf_lbmc_umq_rxreq_mr_msgid_stamp;
5176
static int hf_lbmc_umq_rxreq_ulb_mr;
5177
static int hf_lbmc_umq_rxreq_ulb_mr_ulb_src_id;
5178
static int hf_lbmc_umq_rxreq_ulb_mr_assign_id;
5179
static int hf_lbmc_umq_rxreq_ulb_mr_appset_idx;
5180
static int hf_lbmc_umq_rxreq_ulb_mr_reserved;
5181
static int hf_lbmc_umq_rxreq_ulb_mr_msgid_regid;
5182
static int hf_lbmc_umq_rxreq_ulb_mr_msgid_stamp;
5183
static int hf_lbmc_umq_rxreq_ulb_mr_abort;
5184
static int hf_lbmc_umq_rxreq_ulb_mr_abort_ulb_src_id;
5185
static int hf_lbmc_umq_rxreq_ulb_mr_abort_assign_id;
5186
static int hf_lbmc_umq_rxreq_ulb_mr_abort_msgid_regid;
5187
static int hf_lbmc_umq_rxreq_ulb_mr_abort_msgid_stamp;
5188
static int hf_lbmc_umq_rxreq_qrcrr;
5189
static int hf_lbmc_umq_rxreq_qrcrr_tsp;
5190
static int hf_lbmc_umq_rxreq_trcrr;
5191
static int hf_lbmc_umq_rxreq_trcrr_rcr_idx;
5192
static int hf_lbmc_umq_rxreq_trcrr_tsp;
5193
static int hf_lbmc_umq_rxreq_ulb_trcrr;
5194
static int hf_lbmc_umq_rxreq_ulb_trcrr_ulb_src_id;
5195
static int hf_lbmc_umq_rxreq_ulb_trcrr_assign_id;
5196
static int hf_lbmc_umq_rxreq_ulb_trcrr_tsp;
5197
static int hf_lbmc_umq_rxreq_ulb_trcrr_abort;
5198
static int hf_lbmc_umq_rxreq_ulb_trcrr_abort_ulb_src_id;
5199
static int hf_lbmc_umq_rxreq_ulb_trcrr_abort_assign_id;
5200
static int hf_lbmc_umq_rxreq_ulb_trcrr_abort_tsp;
5201
static int hf_lbmc_umq_qmgmt;
5202
static int hf_lbmc_umq_qmgmt_next_hdr;
5203
static int hf_lbmc_umq_qmgmt_hdr_len;
5204
static int hf_lbmc_umq_resub_req;
5205
static int hf_lbmc_umq_resub_req_next_hdr;
5206
static int hf_lbmc_umq_resub_req_hdr_len;
5207
static int hf_lbmc_umq_resub_req_flags;
5208
static int hf_lbmc_umq_resub_req_flags_ignore;
5209
static int hf_lbmc_umq_resub_req_msgid_regid;
5210
static int hf_lbmc_umq_resub_req_msgid_stamp;
5211
static int hf_lbmc_umq_resub_req_rcr_idx;
5212
static int hf_lbmc_umq_resub_req_resp_ip;
5213
static int hf_lbmc_umq_resub_req_resp_port;
5214
static int hf_lbmc_umq_resub_req_appset_idx;
5215
static int hf_lbmc_umq_resub_resp;
5216
static int hf_lbmc_umq_resub_resp_next_hdr;
5217
static int hf_lbmc_umq_resub_resp_hdr_len;
5218
static int hf_lbmc_umq_resub_resp_flags;
5219
static int hf_lbmc_umq_resub_resp_flags_ignore;
5220
static int hf_lbmc_umq_resub_resp_code;
5221
static int hf_lbmc_umq_resub_resp_msgid_regid;
5222
static int hf_lbmc_umq_resub_resp_msgid_stamp;
5223
static int hf_lbmc_umq_resub_resp_rcr_idx;
5224
static int hf_lbmc_umq_resub_resp_reserved;
5225
static int hf_lbmc_umq_resub_resp_appset_idx;
5226
static int hf_lbmc_topic_interest;
5227
static int hf_lbmc_topic_interest_next_hdr;
5228
static int hf_lbmc_topic_interest_hdr_len;
5229
static int hf_lbmc_topic_interest_flags;
5230
static int hf_lbmc_topic_interest_flags_ignore;
5231
static int hf_lbmc_topic_interest_flags_cancel;
5232
static int hf_lbmc_topic_interest_flags_refresh;
5233
static int hf_lbmc_topic_interest_domain_id;
5234
static int hf_lbmc_pattern_interest;
5235
static int hf_lbmc_pattern_interest_next_hdr;
5236
static int hf_lbmc_pattern_interest_hdr_len;
5237
static int hf_lbmc_pattern_interest_flags;
5238
static int hf_lbmc_pattern_interest_flags_ignore;
5239
static int hf_lbmc_pattern_interest_flags_cancel;
5240
static int hf_lbmc_pattern_interest_flags_refresh;
5241
static int hf_lbmc_pattern_interest_type;
5242
static int hf_lbmc_pattern_interest_domain_id;
5243
static int hf_lbmc_pattern_interest_index;
5244
static int hf_lbmc_advertisement;
5245
static int hf_lbmc_advertisement_next_hdr;
5246
static int hf_lbmc_advertisement_hdr_len;
5247
static int hf_lbmc_advertisement_flags;
5248
static int hf_lbmc_advertisement_flags_ignore;
5249
static int hf_lbmc_advertisement_flags_eos;
5250
static int hf_lbmc_advertisement_flags_pattern;
5251
static int hf_lbmc_advertisement_flags_change;
5252
static int hf_lbmc_advertisement_flags_ctxinst;
5253
static int hf_lbmc_advertisement_hop_count;
5254
static int hf_lbmc_advertisement_ad_flags;
5255
static int hf_lbmc_advertisement_ad_flags_lj;
5256
static int hf_lbmc_advertisement_ad_flags_ume;
5257
static int hf_lbmc_advertisement_ad_flags_acktosrc;
5258
static int hf_lbmc_advertisement_ad_flags_queue;
5259
static int hf_lbmc_advertisement_ad_flags_ulb;
5260
static int hf_lbmc_advertisement_cost;
5261
static int hf_lbmc_advertisement_transport_idx;
5262
static int hf_lbmc_advertisement_topic_idx;
5263
static int hf_lbmc_advertisement_low_seqno;
5264
static int hf_lbmc_advertisement_high_seqno;
5265
static int hf_lbmc_advertisement_domain_id;
5266
static int hf_lbmc_advertisement_pat_idx;
5267
static int hf_lbmc_advertisement_ctxinst;
5268
static int hf_lbmc_ume_storename;
5269
static int hf_lbmc_ume_storename_next_hdr;
5270
static int hf_lbmc_ume_storename_hdr_len;
5271
static int hf_lbmc_ume_storename_flags;
5272
static int hf_lbmc_ume_storename_flags_ignore;
5273
static int hf_lbmc_ume_storename_store;
5274
static int hf_lbmc_umq_ulb_rcr;
5275
static int hf_lbmc_umq_ulb_rcr_next_hdr;
5276
static int hf_lbmc_umq_ulb_rcr_hdr_len;
5277
static int hf_lbmc_umq_ulb_rcr_flags;
5278
static int hf_lbmc_umq_ulb_rcr_flags_ignore;
5279
static int hf_lbmc_umq_ulb_rcr_flags_r_flag;
5280
static int hf_lbmc_umq_ulb_rcr_flags_d_flag;
5281
static int hf_lbmc_umq_ulb_rcr_flags_eoi_flag;
5282
static int hf_lbmc_umq_ulb_rcr_flags_boi_flag;
5283
static int hf_lbmc_umq_ulb_rcr_queue_id;
5284
static int hf_lbmc_umq_ulb_rcr_ulb_src_id;
5285
static int hf_lbmc_umq_ulb_rcr_msgid_regid;
5286
static int hf_lbmc_umq_ulb_rcr_msgid_stamp;
5287
static int hf_lbmc_umq_ulb_rcr_topic_tsp;
5288
static int hf_lbmc_umq_ulb_rcr_assign_id;
5289
static int hf_lbmc_umq_ulb_rcr_appset_idx;
5290
static int hf_lbmc_umq_ulb_rcr_num_ras;
5291
static int hf_lbmc_umq_lf;
5292
static int hf_lbmc_umq_lf_next_hdr;
5293
static int hf_lbmc_umq_lf_hdr_len;
5294
static int hf_lbmc_umq_lf_flags;
5295
static int hf_lbmc_umq_lf_flags_ignore;
5296
static int hf_lbmc_umq_lf_type;
5297
static int hf_lbmc_umq_lf_num_srcs;
5298
static int hf_lbmc_umq_lf_lf;
5299
static int hf_lbmc_ctxinfo;
5300
static int hf_lbmc_ctxinfo_next_hdr;
5301
static int hf_lbmc_ctxinfo_hdr_len;
5302
static int hf_lbmc_ctxinfo_flags;
5303
static int hf_lbmc_ctxinfo_flags_ignore;
5304
static int hf_lbmc_ctxinfo_flags_query;
5305
static int hf_lbmc_ctxinfo_flags_addr;
5306
static int hf_lbmc_ctxinfo_flags_ctxinst;
5307
static int hf_lbmc_ctxinfo_flags_name;
5308
static int hf_lbmc_ctxinfo_flags_tnwgsrc;
5309
static int hf_lbmc_ctxinfo_flags_tnwgrcv;
5310
static int hf_lbmc_ctxinfo_flags_proxy;
5311
static int hf_lbmc_ctxinfo_reserved;
5312
static int hf_lbmc_ctxinfo_hop_count;
5313
static int hf_lbmc_ctxinfo_port;
5314
static int hf_lbmc_ctxinfo_addr;
5315
static int hf_lbmc_ctxinfo_domain_id;
5316
static int hf_lbmc_ctxinfo_ctxinst;
5317
static int hf_lbmc_ctxinfo_name;
5318
static int hf_lbmc_ume_pser;
5319
static int hf_lbmc_ume_pser_next_hdr;
5320
static int hf_lbmc_ume_pser_hdr_len;
5321
static int hf_lbmc_ume_pser_flags;
5322
static int hf_lbmc_ume_pser_flags_ignore;
5323
static int hf_lbmc_ume_pser_flags_source_ctxinst;
5324
static int hf_lbmc_ume_pser_flags_store_ctxinst;
5325
static int hf_lbmc_ume_pser_flags_reelect;
5326
static int hf_lbmc_ume_pser_source_ip;
5327
static int hf_lbmc_ume_pser_store_ip;
5328
static int hf_lbmc_ume_pser_transport_idx;
5329
static int hf_lbmc_ume_pser_topic_idx;
5330
static int hf_lbmc_ume_pser_source_port;
5331
static int hf_lbmc_ume_pser_store_port;
5332
static int hf_lbmc_ume_pser_source_ctxinst;
5333
static int hf_lbmc_ume_pser_store_ctxinst;
5334
static int hf_lbmc_domain;
5335
static int hf_lbmc_domain_next_hdr;
5336
static int hf_lbmc_domain_hdr_len;
5337
static int hf_lbmc_domain_flags;
5338
static int hf_lbmc_domain_flags_ignore;
5339
static int hf_lbmc_domain_flags_active;
5340
static int hf_lbmc_domain_domain;
5341
static int hf_lbmc_tnwg_capabilities;
5342
static int hf_lbmc_tnwg_capabilities_next_hdr;
5343
static int hf_lbmc_tnwg_capabilities_hdr_len;
5344
static int hf_lbmc_tnwg_capabilities_flags;
5345
static int hf_lbmc_tnwg_capabilities_flags_ignore;
5346
static int hf_lbmc_tnwg_capabilities_flags_version;
5347
static int hf_lbmc_tnwg_capabilities_capabilities1;
5348
static int hf_lbmc_tnwg_capabilities_capabilities1_ume;
5349
static int hf_lbmc_tnwg_capabilities_capabilities1_umq;
5350
static int hf_lbmc_tnwg_capabilities_capabilities2;
5351
static int hf_lbmc_tnwg_capabilities_capabilities3;
5352
static int hf_lbmc_tnwg_capabilities_capabilities3_pcre;
5353
static int hf_lbmc_tnwg_capabilities_capabilities3_regex;
5354
static int hf_lbmc_tnwg_capabilities_capabilities4;
5355
static int hf_lbmc_patidx;
5356
static int hf_lbmc_patidx_next_hdr;
5357
static int hf_lbmc_patidx_hdr_len;
5358
static int hf_lbmc_patidx_flags;
5359
static int hf_lbmc_patidx_flags_ignore;
5360
static int hf_lbmc_patidx_patidx;
5361
static int hf_lbmc_ume_client_lifetime;
5362
static int hf_lbmc_ume_client_lifetime_next_hdr;
5363
static int hf_lbmc_ume_client_lifetime_hdr_len;
5364
static int hf_lbmc_ume_client_lifetime_flags;
5365
static int hf_lbmc_ume_client_lifetime_flags_ignore;
5366
static int hf_lbmc_ume_client_lifetime_activity_tmo;
5367
static int hf_lbmc_ume_client_lifetime_lifetime;
5368
static int hf_lbmc_ume_client_lifetime_ttl;
5369
static int hf_lbmc_ume_sid;
5370
static int hf_lbmc_ume_sid_next_hdr;
5371
static int hf_lbmc_ume_sid_hdr_len;
5372
static int hf_lbmc_ume_sid_flags;
5373
static int hf_lbmc_ume_sid_flags_ignore;
5374
static int hf_lbmc_ume_sid_sid;
5375
static int hf_lbmc_umq_idx_cmd;
5376
static int hf_lbmc_umq_idx_cmd_next_hdr;
5377
static int hf_lbmc_umq_idx_cmd_hdr_len;
5378
static int hf_lbmc_umq_idx_cmd_flags;
5379
static int hf_lbmc_umq_idx_cmd_flags_ignore;
5380
static int hf_lbmc_umq_idx_cmd_cmd_type;
5381
static int hf_lbmc_umq_idx_cmd_queue_id;
5382
static int hf_lbmc_umq_idx_cmd_cmd_id;
5383
static int hf_lbmc_umq_idx_cmd_inst_idx;
5384
static int hf_lbmc_umq_idx_cmd_regid;
5385
static int hf_lbmc_umq_idx_cmd_stop_assign;
5386
static int hf_lbmc_umq_idx_cmd_stop_assign_rcr_idx;
5387
static int hf_lbmc_umq_idx_cmd_stop_assign_assign_id;
5388
static int hf_lbmc_umq_idx_cmd_start_assign;
5389
static int hf_lbmc_umq_idx_cmd_start_assign_rcr_idx;
5390
static int hf_lbmc_umq_idx_cmd_start_assign_assign_id;
5391
static int hf_lbmc_umq_idx_cmd_release_assign;
5392
static int hf_lbmc_umq_idx_cmd_release_assign_rcr_idx;
5393
static int hf_lbmc_umq_idx_cmd_release_assign_assign_id;
5394
static int hf_lbmc_umq_idx_cmd_release_assign_flags;
5395
static int hf_lbmc_umq_idx_cmd_release_assign_flags_numeric;
5396
static int hf_lbmc_umq_idx_cmd_release_assign_index_len;
5397
static int hf_lbmc_umq_idx_cmd_release_assign_reserved;
5398
static int hf_lbmc_umq_idx_cmd_release_assign_numeric_index;
5399
static int hf_lbmc_umq_idx_cmd_release_assign_string_index;
5400
static int hf_lbmc_umq_idx_cmd_ulb_stop_assign;
5401
static int hf_lbmc_umq_idx_cmd_ulb_stop_assign_src_id;
5402
static int hf_lbmc_umq_idx_cmd_ulb_stop_assign_assign_id;
5403
static int hf_lbmc_umq_idx_cmd_ulb_stop_assign_appset_idx;
5404
static int hf_lbmc_umq_idx_cmd_ulb_stop_assign_reserved;
5405
static int hf_lbmc_umq_idx_cmd_ulb_start_assign;
5406
static int hf_lbmc_umq_idx_cmd_ulb_start_assign_src_id;
5407
static int hf_lbmc_umq_idx_cmd_ulb_start_assign_assign_id;
5408
static int hf_lbmc_umq_idx_cmd_ulb_start_assign_appset_idx;
5409
static int hf_lbmc_umq_idx_cmd_ulb_start_assign_reserved;
5410
static int hf_lbmc_umq_idx_cmd_ulb_release_assign;
5411
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_src_id;
5412
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_assign_id;
5413
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_flags;
5414
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_flags_numeric;
5415
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_appset_idx;
5416
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_index_len;
5417
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_reserved;
5418
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_numeric_index;
5419
static int hf_lbmc_umq_idx_cmd_ulb_release_assign_string_index;
5420
static int hf_lbmc_umq_idx_cmd_reserve_assign;
5421
static int hf_lbmc_umq_idx_cmd_reserve_assign_rcr_idx;
5422
static int hf_lbmc_umq_idx_cmd_reserve_assign_assign_id;
5423
static int hf_lbmc_umq_idx_cmd_reserve_assign_flags;
5424
static int hf_lbmc_umq_idx_cmd_reserve_assign_flags_numeric;
5425
static int hf_lbmc_umq_idx_cmd_reserve_assign_index_len;
5426
static int hf_lbmc_umq_idx_cmd_reserve_assign_reserved;
5427
static int hf_lbmc_umq_idx_cmd_reserve_assign_numeric_index;
5428
static int hf_lbmc_umq_idx_cmd_reserve_assign_string_index;
5429
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign;
5430
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_src_id;
5431
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_assign_id;
5432
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags;
5433
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags_numeric;
5434
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_appset_idx;
5435
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_index_len;
5436
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_reserved;
5437
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_numeric_index;
5438
static int hf_lbmc_umq_idx_cmd_ulb_reserve_assign_string_index;
5439
static int hf_lbmc_umq_idx_cmd_resp;
5440
static int hf_lbmc_umq_idx_cmd_resp_next_hdr;
5441
static int hf_lbmc_umq_idx_cmd_resp_hdr_len;
5442
static int hf_lbmc_umq_idx_cmd_resp_flags;
5443
static int hf_lbmc_umq_idx_cmd_resp_flags_ignore;
5444
static int hf_lbmc_umq_idx_cmd_resp_flags_ulb;
5445
static int hf_lbmc_umq_idx_cmd_resp_resp_type;
5446
static int hf_lbmc_umq_idx_cmd_resp_queue_id;
5447
static int hf_lbmc_umq_idx_cmd_resp_cmd_id;
5448
static int hf_lbmc_umq_idx_cmd_resp_inst_idx;
5449
static int hf_lbmc_umq_idx_cmd_resp_regid;
5450
static int hf_lbmc_umq_idx_cmd_resp_err;
5451
static int hf_lbmc_umq_idx_cmd_resp_err_reserved;
5452
static int hf_lbmc_umq_idx_cmd_resp_err_code;
5453
static int hf_lbmc_umq_idx_cmd_resp_err_error_string;
5454
static int hf_lbmc_umq_idx_cmd_resp_stop_assign;
5455
static int hf_lbmc_umq_idx_cmd_resp_stop_assign_rcr_idx;
5456
static int hf_lbmc_umq_idx_cmd_resp_stop_assign_assign_id;
5457
static int hf_lbmc_umq_idx_cmd_resp_start_assign;
5458
static int hf_lbmc_umq_idx_cmd_resp_start_assign_rcr_idx;
5459
static int hf_lbmc_umq_idx_cmd_resp_start_assign_assign_id;
5460
static int hf_lbmc_umq_idx_cmd_resp_start_assign_appset_idx;
5461
static int hf_lbmc_umq_idx_cmd_resp_start_assign_reserved;
5462
static int hf_lbmc_umq_idx_cmd_resp_release_assign;
5463
static int hf_lbmc_umq_idx_cmd_resp_release_assign_rcr_idx;
5464
static int hf_lbmc_umq_idx_cmd_resp_release_assign_assign_id;
5465
static int hf_lbmc_umq_idx_cmd_resp_release_assign_appset_idx;
5466
static int hf_lbmc_umq_idx_cmd_resp_release_assign_reserved;
5467
static int hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign;
5468
static int hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_src_id;
5469
static int hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_assign_id;
5470
static int hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_appset_idx;
5471
static int hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_reserved;
5472
static int hf_lbmc_umq_idx_cmd_resp_ulb_start_assign;
5473
static int hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_src_id;
5474
static int hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_assign_id;
5475
static int hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_appset_idx;
5476
static int hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_reserved;
5477
static int hf_lbmc_umq_idx_cmd_resp_ulb_release_assign;
5478
static int hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_src_id;
5479
static int hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_assign_id;
5480
static int hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_appset_idx;
5481
static int hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_reserved;
5482
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign;
5483
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_rcr_idx;
5484
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_assign_id;
5485
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags;
5486
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags_numeric;
5487
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_appset_idx;
5488
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_index_len;
5489
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_reserved;
5490
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_numeric_index;
5491
static int hf_lbmc_umq_idx_cmd_resp_reserve_assign_string_index;
5492
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign;
5493
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_src_id;
5494
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_assign_id;
5495
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags;
5496
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags_numeric;
5497
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_appset_idx;
5498
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_index_len;
5499
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_reserved;
5500
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_numeric_index;
5501
static int hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_string_index;
5502
static int hf_lbmc_odomain;
5503
static int hf_lbmc_odomain_next_hdr;
5504
static int hf_lbmc_odomain_hdr_len;
5505
static int hf_lbmc_odomain_flags;
5506
static int hf_lbmc_odomain_flags_ignore;
5507
static int hf_lbmc_odomain_domain;
5508
static int hf_lbmc_stream;
5509
static int hf_lbmc_stream_next_hdr;
5510
static int hf_lbmc_stream_hdr_len;
5511
static int hf_lbmc_stream_flags;
5512
static int hf_lbmc_stream_flags_ignore;
5513
static int hf_lbmc_stream_stream_id;
5514
static int hf_lbmc_stream_sqn;
5515
static int hf_lbmc_stream_ctxinst;
5516
static int hf_lbmc_topic_md_interest;
5517
static int hf_lbmc_topic_md_interest_next_hdr;
5518
static int hf_lbmc_topic_md_interest_hdr_len;
5519
static int hf_lbmc_topic_md_interest_flags;
5520
static int hf_lbmc_topic_md_interest_flags_ignore;
5521
static int hf_lbmc_topic_md_interest_flags_cancel;
5522
static int hf_lbmc_topic_md_interest_flags_refresh;
5523
static int hf_lbmc_topic_md_interest_domain_count;
5524
static int hf_lbmc_topic_md_interest_res1;
5525
static int hf_lbmc_topic_md_interest_domain_id;
5526
static int hf_lbmc_pattern_md_interest;
5527
static int hf_lbmc_pattern_md_interest_next_hdr;
5528
static int hf_lbmc_pattern_md_interest_hdr_len;
5529
static int hf_lbmc_pattern_md_interest_flags;
5530
static int hf_lbmc_pattern_md_interest_flags_ignore;
5531
static int hf_lbmc_pattern_md_interest_flags_cancel;
5532
static int hf_lbmc_pattern_md_interest_flags_refresh;
5533
static int hf_lbmc_pattern_md_interest_type;
5534
static int hf_lbmc_pattern_md_interest_domain_count;
5535
static int hf_lbmc_pattern_md_interest_res1;
5536
static int hf_lbmc_pattern_md_interest_index;
5537
static int hf_lbmc_pattern_md_interest_domain_id;
5538
static int hf_lbmc_lji_req;
5539
static int hf_lbmc_lji_req_next_hdr;
5540
static int hf_lbmc_lji_req_hdr_len;
5541
static int hf_lbmc_lji_req_flags;
5542
static int hf_lbmc_lji_req_flags_ignore;
5543
static int hf_lbmc_lji_req_flags_l_flag;
5544
static int hf_lbmc_lji_req_flags_m_flag;
5545
static int hf_lbmc_lji_req_flags_o_flag;
5546
static int hf_lbmc_lji_req_request_idx;
5547
static int hf_lbmc_lji_req_transport_idx;
5548
static int hf_lbmc_lji_req_topic_idx;
5549
static int hf_lbmc_lji_req_req_ip;
5550
static int hf_lbmc_lji_req_req_port;
5551
static int hf_lbmc_lji_req_res;
5552
static int hf_lbmc_lji_req_tx_low_sqn;
5553
static int hf_lbmc_lji_req_rx_req_max;
5554
static int hf_lbmc_lji_req_rx_req_outstanding_max;
5555
static int hf_lbmc_tnwg_ka;
5556
static int hf_lbmc_tnwg_ka_next_hdr;
5557
static int hf_lbmc_tnwg_ka_hdr_len;
5558
static int hf_lbmc_tnwg_ka_flags;
5559
static int hf_lbmc_tnwg_ka_flags_ignore;
5560
static int hf_lbmc_tnwg_ka_flags_q_flag;
5561
static int hf_lbmc_tnwg_ka_flags_r_flag;
5562
static int hf_lbmc_tnwg_ka_index;
5563
static int hf_lbmc_tnwg_ka_ts_seconds;
5564
static int hf_lbmc_tnwg_ka_ts_microseconds;
5565
static int hf_lbmc_tnwg_ka_reserved_1;
5566
static int hf_lbmc_tnwg_ka_reserved_2;
5567
static int hf_lbmc_tnwg_ka_reserved_3;
5568
static int hf_lbmc_tnwg_ka_reserved_4;
5569
static int hf_lbmc_tnwg_ka_reserved_5;
5570
static int hf_lbmc_tnwg_ka_reserved_6;
5571
static int hf_lbmc_ume_receiver_keepalive;
5572
static int hf_lbmc_ume_receiver_keepalive_next_hdr;
5573
static int hf_lbmc_ume_receiver_keepalive_hdr_len;
5574
static int hf_lbmc_ume_receiver_keepalive_flags;
5575
static int hf_lbmc_ume_receiver_keepalive_flags_ignore;
5576
static int hf_lbmc_ume_receiver_keepalive_rcv_regid;
5577
static int hf_lbmc_ume_receiver_keepalive_session_id;
5578
static int hf_lbmc_ume_receiver_keepalive_ctxinst;
5579
static int hf_lbmc_umq_cmd;
5580
static int hf_lbmc_umq_cmd_next_hdr;
5581
static int hf_lbmc_umq_cmd_hdr_len;
5582
static int hf_lbmc_umq_cmd_flags;
5583
static int hf_lbmc_umq_cmd_flags_ignore;
5584
static int hf_lbmc_umq_cmd_cmd_type;
5585
static int hf_lbmc_umq_cmd_queue_id;
5586
static int hf_lbmc_umq_cmd_cmd_id;
5587
static int hf_lbmc_umq_cmd_inst_idx;
5588
static int hf_lbmc_umq_cmd_regid;
5589
static int hf_lbmc_umq_cmd_topic_list;
5590
static int hf_lbmc_umq_cmd_topic_list_serial_num;
5591
static int hf_lbmc_umq_cmd_msg_retrieve;
5592
static int hf_lbmc_umq_cmd_msg_retrieve_rcr_idx;
5593
static int hf_lbmc_umq_cmd_msg_retrieve_assign_id;
5594
static int hf_lbmc_umq_cmd_msg_retrieve_info_only;
5595
static int hf_lbmc_umq_cmd_msg_retrieve_num_msgids;
5596
static int hf_lbmc_umq_cmd_msg_retrieve_flags;
5597
static int hf_lbmc_umq_cmd_msg_retrieve_entry;
5598
static int hf_lbmc_umq_cmd_msg_retrieve_entry_regid;
5599
static int hf_lbmc_umq_cmd_msg_retrieve_entry_stamp;
5600
static int hf_lbmc_umq_cmd_msg_list;
5601
static int hf_lbmc_umq_cmd_msg_list_rcr_idx;
5602
static int hf_lbmc_umq_cmd_msg_list_assign_id;
5603
static int hf_lbmc_umq_cmd_resp;
5604
static int hf_lbmc_umq_cmd_resp_next_hdr;
5605
static int hf_lbmc_umq_cmd_resp_hdr_len;
5606
static int hf_lbmc_umq_cmd_resp_flags;
5607
static int hf_lbmc_umq_cmd_resp_flags_ignore;
5608
static int hf_lbmc_umq_cmd_resp_resp_type;
5609
static int hf_lbmc_umq_cmd_resp_queue_id;
5610
static int hf_lbmc_umq_cmd_resp_cmd_id;
5611
static int hf_lbmc_umq_cmd_resp_inst_idx;
5612
static int hf_lbmc_umq_cmd_resp_regid;
5613
static int hf_lbmc_umq_cmd_resp_msg_retrieve;
5614
static int hf_lbmc_umq_cmd_resp_msg_retrieve_rcr_idx;
5615
static int hf_lbmc_umq_cmd_resp_msg_retrieve_assign_id;
5616
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve;
5617
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_num_msgs;
5618
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_flags;
5619
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_reserved;
5620
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry;
5621
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_regid;
5622
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_stamp;
5623
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_assign_id;
5624
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_num_ras;
5625
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_status;
5626
static int hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_reserved;
5627
static int hf_lbmc_umq_cmd_resp_msg_list;
5628
static int hf_lbmc_umq_cmd_resp_msg_list_rcr_idx;
5629
static int hf_lbmc_umq_cmd_resp_msg_list_assign_id;
5630
static int hf_lbmc_umq_cmd_resp_xmsg_list;
5631
static int hf_lbmc_umq_cmd_resp_xmsg_list_num_msgs;
5632
static int hf_lbmc_umq_cmd_resp_xmsg_list_entry;
5633
static int hf_lbmc_umq_cmd_resp_xmsg_list_entry_regid;
5634
static int hf_lbmc_umq_cmd_resp_xmsg_list_entry_stamp;
5635
static int hf_lbmc_umq_cmd_resp_topic_list;
5636
static int hf_lbmc_umq_cmd_resp_topic_list_num_topics;
5637
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry;
5638
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_rcr_idx;
5639
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_num_appsets;
5640
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_topic_len;
5641
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_reserved;
5642
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_topic;
5643
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry;
5644
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_num_receiver_type_ids;
5645
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_appset_idx;
5646
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_appset_name_len;
5647
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_reserved;
5648
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_name;
5649
static int hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_receiver_type_id;
5650
static int hf_lbmc_umq_cmd_resp_err;
5651
static int hf_lbmc_umq_cmd_resp_err_reserved;
5652
static int hf_lbmc_umq_cmd_resp_err_code;
5653
static int hf_lbmc_umq_cmd_resp_err_errmsg;
5654
static int hf_lbmc_sri_req;
5655
static int hf_lbmc_sri_req_next_hdr;
5656
static int hf_lbmc_sri_req_hdr_len;
5657
static int hf_lbmc_sri_req_flags;
5658
static int hf_lbmc_sri_req_flags_ignore;
5659
static int hf_lbmc_sri_req_transport_idx;
5660
static int hf_lbmc_sri_req_topic_idx;
5661
static int hf_lbmc_ume_store_domain;
5662
static int hf_lbmc_ume_store_domain_next_hdr;
5663
static int hf_lbmc_ume_store_domain_hdr_len;
5664
static int hf_lbmc_ume_store_domain_flags;
5665
static int hf_lbmc_ume_store_domain_flags_ignore;
5666
static int hf_lbmc_ume_store_domain_domain;
5667
static int hf_lbmc_sri;
5668
static int hf_lbmc_sri_next_hdr;
5669
static int hf_lbmc_sri_hdr_len;
5670
static int hf_lbmc_sri_flags;
5671
static int hf_lbmc_sri_flags_ignore;
5672
static int hf_lbmc_sri_flags_acktosrc;
5673
static int hf_lbmc_sri_flags_initial_sqn_known;
5674
static int hf_lbmc_sri_version;
5675
static int hf_lbmc_sri_low_sqn;
5676
static int hf_lbmc_sri_high_sqn;
5677
static int hf_lbmc_route_info;
5678
static int hf_lbmc_route_info_next_hdr;
5679
static int hf_lbmc_route_info_hdr_len;
5680
static int hf_lbmc_route_info_flags;
5681
static int hf_lbmc_route_info_flags_ignore;
5682
static int hf_lbmc_route_info_gateway_version;
5683
static int hf_lbmc_route_info_configuration_signature;
5684
static int hf_lbmc_route_info_node_id;
5685
static int hf_lbmc_route_info_topology;
5686
static int hf_lbmc_route_info_vers;
5687
static int hf_lbmc_route_info_sqn;
5688
static int hf_lbmc_route_info_ttl;
5689
static int hf_lbmc_route_info_reserved1;
5690
static int hf_lbmc_route_info_reserved2;
5691
static int hf_lbmc_route_info_neighbor;
5692
static int hf_lbmc_route_info_neighbor_next_hdr;
5693
static int hf_lbmc_route_info_neighbor_hdr_len;
5694
static int hf_lbmc_route_info_neighbor_flags;
5695
static int hf_lbmc_route_info_neighbor_flags_ignore;
5696
static int hf_lbmc_route_info_neighbor_node_id;
5697
static int hf_lbmc_route_info_neighbor_ingress_cost;
5698
static int hf_lbmc_route_info_neighbor_egress_cost;
5699
static int hf_lbmc_route_info_nbr_ext;
5700
static int hf_lbmc_route_info_nbr_ext_next_hdr;
5701
static int hf_lbmc_route_info_nbr_ext_hdr_len;
5702
static int hf_lbmc_route_info_nbr_ext_flags;
5703
static int hf_lbmc_route_info_nbr_ext_flags_ignore;
5704
static int hf_lbmc_route_info_nbr_ext_node_id;
5705
static int hf_lbmc_route_info_nbr_ext_group;
5706
static int hf_lbmc_gateway_name;
5707
static int hf_lbmc_gateway_name_next_hdr;
5708
static int hf_lbmc_gateway_name_hdr_len;
5709
static int hf_lbmc_gateway_name_flags;
5710
static int hf_lbmc_gateway_name_flags_ignore;
5711
static int hf_lbmc_gateway_name_gateway_name;
5712
static int hf_lbmc_auth_request;
5713
static int hf_lbmc_auth_request_next_hdr;
5714
static int hf_lbmc_auth_request_hdr_len;
5715
static int hf_lbmc_auth_request_flags;
5716
static int hf_lbmc_auth_request_flags_ignore;
5717
static int hf_lbmc_auth_request_opid;
5718
static int hf_lbmc_auth_request_user_len;
5719
static int hf_lbmc_auth_request_user_name;
5720
static int hf_lbmc_auth_challenge;
5721
static int hf_lbmc_auth_challenge_next_hdr;
5722
static int hf_lbmc_auth_challenge_hdr_len;
5723
static int hf_lbmc_auth_challenge_flags;
5724
static int hf_lbmc_auth_challenge_flags_ignore;
5725
static int hf_lbmc_auth_challenge_opid;
5726
static int hf_lbmc_auth_challenge_mod_len;
5727
static int hf_lbmc_auth_challenge_gen_len;
5728
static int hf_lbmc_auth_challenge_salt_len;
5729
static int hf_lbmc_auth_challenge_pubkey_len;
5730
static int hf_lbmc_auth_challenge_mod;
5731
static int hf_lbmc_auth_challenge_gen;
5732
static int hf_lbmc_auth_challenge_salt;
5733
static int hf_lbmc_auth_challenge_pubkey;
5734
static int hf_lbmc_auth_challenge_rsp;
5735
static int hf_lbmc_auth_challenge_rsp_next_hdr;
5736
static int hf_lbmc_auth_challenge_rsp_hdr_len;
5737
static int hf_lbmc_auth_challenge_rsp_flags;
5738
static int hf_lbmc_auth_challenge_rsp_flags_ignore;
5739
static int hf_lbmc_auth_challenge_rsp_opid;
5740
static int hf_lbmc_auth_challenge_rsp_pubkey_len;
5741
static int hf_lbmc_auth_challenge_rsp_evidence_len;
5742
static int hf_lbmc_auth_challenge_rsp_pubkey;
5743
static int hf_lbmc_auth_challenge_rsp_evidence;
5744
static int hf_lbmc_auth_result;
5745
static int hf_lbmc_auth_result_next_hdr;
5746
static int hf_lbmc_auth_result_hdr_len;
5747
static int hf_lbmc_auth_result_flags;
5748
static int hf_lbmc_auth_result_flags_ignore;
5749
static int hf_lbmc_auth_result_opid;
5750
static int hf_lbmc_auth_result_result;
5751
static int hf_lbmc_auth_unknown;
5752
static int hf_lbmc_auth_unknown_next_hdr;
5753
static int hf_lbmc_auth_unknown_hdr_len;
5754
static int hf_lbmc_auth_unknown_flags;
5755
static int hf_lbmc_auth_unknown_opid;
5756
static int hf_lbmc_auth_unknown_data;
5757
static int hf_lbmc_hmac;
5758
static int hf_lbmc_hmac_next_hdr;
5759
static int hf_lbmc_hmac_hdr_len;
5760
static int hf_lbmc_hmac_flags;
5761
static int hf_lbmc_hmac_flags_ignore;
5762
static int hf_lbmc_hmac_padding;
5763
static int hf_lbmc_hmac_data;
5764
static int hf_lbmc_umq_sid;
5765
static int hf_lbmc_umq_sid_next_hdr;
5766
static int hf_lbmc_umq_sid_hdr_len;
5767
static int hf_lbmc_umq_sid_flags;
5768
static int hf_lbmc_umq_sid_flags_ignore;
5769
static int hf_lbmc_umq_sid_key;
5770
static int hf_lbmc_umq_sid_sid;
5771
static int hf_lbmc_destination;
5772
static int hf_lbmc_destination_next_hdr;
5773
static int hf_lbmc_destination_hdr_len;
5774
static int hf_lbmc_destination_flags;
5775
static int hf_lbmc_destination_flags_ignore;
5776
static int hf_lbmc_destination_domain_id;
5777
static int hf_lbmc_destination_ipaddr;
5778
static int hf_lbmc_destination_port;
5779
static int hf_lbmc_destination_hops_taken;
5780
static int hf_lbmc_destination_orig_domain_id;
5781
static int hf_lbmc_destination_orig_ipaddr;
5782
static int hf_lbmc_destination_orig_port;
5783
static int hf_lbmc_destination_reserved;
5784
static int hf_lbmc_topic_idx;
5785
static int hf_lbmc_topic_idx_next_hdr;
5786
static int hf_lbmc_topic_idx_hdr_len;
5787
static int hf_lbmc_topic_idx_flags;
5788
static int hf_lbmc_topic_idx_flags_ignore;
5789
static int hf_lbmc_topic_idx_tidx;
5790
static int hf_lbmc_topic_source;
5791
static int hf_lbmc_topic_source_next_hdr;
5792
static int hf_lbmc_topic_source_hdr_len;
5793
static int hf_lbmc_topic_source_flags;
5794
static int hf_lbmc_topic_source_flags_ignore;
5795
static int hf_lbmc_topic_source_flags_eos;
5796
static int hf_lbmc_topic_source_domain_id;
5797
static int hf_lbmc_topic_source_exfunc;
5798
static int hf_lbmc_topic_source_exfunc_next_hdr;
5799
static int hf_lbmc_topic_source_exfunc_hdr_len;
5800
static int hf_lbmc_topic_source_exfunc_flags;
5801
static int hf_lbmc_topic_source_exfunc_flags_ignore;
5802
static int hf_lbmc_topic_source_exfunc_src_ip;
5803
static int hf_lbmc_topic_source_exfunc_src_port;
5804
static int hf_lbmc_topic_source_exfunc_unused;
5805
static int hf_lbmc_topic_source_exfunc_functionality_flags;
5806
static int hf_lbmc_topic_source_exfunc_functionality_flags_ulb;
5807
static int hf_lbmc_topic_source_exfunc_functionality_flags_umq;
5808
static int hf_lbmc_topic_source_exfunc_functionality_flags_ume;
5809
static int hf_lbmc_topic_source_exfunc_functionality_flags_lj;
5810
static int hf_lbmc_ume_store_ext;
5811
static int hf_lbmc_ume_store_ext_next_hdr;
5812
static int hf_lbmc_ume_store_ext_hdr_len;
5813
static int hf_lbmc_ume_store_ext_flags;
5814
static int hf_lbmc_ume_store_ext_flags_ignore;
5815
static int hf_lbmc_ume_store_ext_grp_idx;
5816
static int hf_lbmc_ume_store_ext_store_tcp_port;
5817
static int hf_lbmc_ume_store_ext_store_idx;
5818
static int hf_lbmc_ume_store_ext_store_ip_addr;
5819
static int hf_lbmc_ume_store_ext_src_reg_id;
5820
static int hf_lbmc_ume_store_ext_domain_id;
5821
static int hf_lbmc_ume_store_ext_version;
5822
static int hf_lbmc_ume_psrc_election_token;
5823
static int hf_lbmc_ume_psrc_election_token_next_hdr;
5824
static int hf_lbmc_ume_psrc_election_token_hdr_len;
5825
static int hf_lbmc_ume_psrc_election_token_flags;
5826
static int hf_lbmc_ume_psrc_election_token_flags_ignore;
5827
static int hf_lbmc_ume_psrc_election_token_store_index;
5828
static int hf_lbmc_ume_psrc_election_token_token;
5829
static int hf_lbmc_tcp_sid;
5830
static int hf_lbmc_tcp_sid_next_hdr;
5831
static int hf_lbmc_tcp_sid_hdr_len;
5832
static int hf_lbmc_tcp_sid_flags;
5833
static int hf_lbmc_tcp_sid_flags_ignore;
5834
static int hf_lbmc_tcp_sid_sid;
5835
static int hf_lbmc_transport_security;
5836
static int hf_lbmc_transport_security_next_hdr;
5837
static int hf_lbmc_transport_security_hdr_len;
5838
static int hf_lbmc_transport_security_flags;
5839
static int hf_lbmc_transport_security_flags_ignore;
5840
static int hf_lbmc_transport_security_state;
5841
static int hf_lbmc_transport_security_protocol_proposed;
5842
static int hf_lbmc_transport_security_reserved1;
5843
static int hf_lbmc_transport_security_protocols_accepted;
5844
static int hf_lbmc_transport_security_protocols_accepted_none;
5845
static int hf_lbmc_transport_security_protocols_accepted_tls;
5846
static int hf_lbmc_transport_security_protocols_accepted_lz4;
5847
static int hf_lbmc_transport_security_protocols_accepted_lz4_tls;
5848
static int hf_lbmc_transport_security_reserved2;
5849
static int hf_lbmc_transport_security_session_id;
5850
static int hf_lbmc_extopt;
5851
static int hf_lbmc_extopt_next_hdr;
5852
static int hf_lbmc_extopt_hdr_len;
5853
static int hf_lbmc_extopt_flags;
5854
static int hf_lbmc_extopt_flags_ignore;
5855
static int hf_lbmc_extopt_flags_ignore_subtype;
5856
static int hf_lbmc_extopt_flags_more_fragments;
5857
static int hf_lbmc_extopt_id;
5858
static int hf_lbmc_extopt_subtype;
5859
static int hf_lbmc_extopt_fragment_offset;
5860
static int hf_lbmc_extopt_data;
5861
static int hf_lbmc_extopt_cfgopt;
5862
static int hf_lbmc_extopt_cfgopt_scope;
5863
static int hf_lbmc_extopt_cfgopt_parent;
5864
static int hf_lbmc_extopt_cfgopt_name;
5865
static int hf_lbmc_extopt_cfgopt_value;
5866
static int hf_lbmc_extopt_msgsel;
5867
static int hf_lbmc_extopt_reassembled_data;
5868
static int hf_lbmc_extopt_reassembled_data_subtype;
5869
static int hf_lbmc_extopt_reassembled_data_len;
5870
static int hf_lbmc_extopt_reassembled_data_data;
5871
static int hf_lbmc_extopt_reassembled_data_msgsel;
5872
static int hf_lbm_msg_properties;
5873
static int hf_lbm_msg_properties_data;
5874
static int hf_lbm_msg_properties_data_magic;
5875
static int hf_lbm_msg_properties_data_num_fields;
5876
static int hf_lbm_msg_properties_data_version;
5877
static int hf_lbm_msg_properties_data_type;
5878
static int hf_lbm_msg_properties_data_res;
5879
static int hf_lbm_msg_properties_hdr;
5880
static int hf_lbm_msg_properties_hdr_key_offset;
5881
static int hf_lbm_msg_properties_hdr_value_offset;
5882
static int hf_lbm_msg_properties_hdr_hash;
5883
static int hf_lbm_msg_properties_hdr_type;
5884
static int hf_lbm_msg_properties_hdr_key;
5885
static int hf_lbm_msg_properties_hdr_boolean_value;
5886
static int hf_lbm_msg_properties_hdr_byte_value;
5887
static int hf_lbm_msg_properties_hdr_short_value;
5888
static int hf_lbm_msg_properties_hdr_int_value;
5889
static int hf_lbm_msg_properties_hdr_float_value;
5890
static int hf_lbm_msg_properties_hdr_long_value;
5891
static int hf_lbm_msg_properties_hdr_double_value;
5892
static int hf_lbm_msg_properties_hdr_string_value;
5893
static int hf_lbm_msg_properties_hdr_unknown_value;
5894
static int hf_lbmc_unhandled;
5895
static int hf_lbmc_unhandled_next_hdr;
5896
static int hf_lbmc_unhandled_hdr_len;
5897
static int hf_lbmc_unhandled_data;
5898
static int hf_lbm_stream;
5899
static int hf_lbm_stream_stream_id;
5900
static int hf_lbm_stream_substream_id;
5901
static int hf_lbmc_reassembly;
5902
static int hf_lbmc_reassembly_fragment;
5903
static int hf_reassembly_frame;
5904
5905
/* Protocol trees */
5906
static int ett_lbmc;
5907
static int ett_lbmc_frag;
5908
static int ett_lbmc_frag_flags;
5909
static int ett_lbmc_batch;
5910
static int ett_lbmc_batch_flags;
5911
static int ett_lbmc_tcp_request;
5912
static int ett_lbmc_tcp_request_flags;
5913
static int ett_lbmc_topicname;
5914
static int ett_lbmc_topicname_flags;
5915
static int ett_lbmc_apphdr;
5916
static int ett_lbmc_apphdr_chain;
5917
static int ett_lbmc_apphdr_chain_element;
5918
static int ett_lbmc_apphdr_chain_msgprop;
5919
static int ett_lbmc_umq_msgid;
5920
static int ett_lbmc_umq_msgid_flags;
5921
static int ett_lbmc_umq_sqd_rcv;
5922
static int ett_lbmc_umq_sqd_rcv_flags;
5923
static int ett_lbmc_umq_resub;
5924
static int ett_lbmc_umq_resub_flags;
5925
static int ett_lbmc_otid;
5926
static int ett_lbmc_otid_flags;
5927
static int ett_lbmc_ctxinst;
5928
static int ett_lbmc_ctxinst_flags;
5929
static int ett_lbmc_ctxinstd;
5930
static int ett_lbmc_ctxinstr;
5931
static int ett_lbmc_srcidx;
5932
static int ett_lbmc_srcidx_flags;
5933
static int ett_lbmc_umq_ulb_msg;
5934
static int ett_lbmc_umq_ulb_msg_flags;
5935
static int ett_lbmc_ssf_init;
5936
static int ett_lbmc_ssf_init_flags;
5937
static int ett_lbmc_ssf_creq;
5938
static int ett_lbmc_ssf_creq_flags;
5939
static int ett_lbmc_ume_preg;
5940
static int ett_lbmc_ume_preg_flags;
5941
static int ett_lbmc_ume_preg_resp;
5942
static int ett_lbmc_ume_preg_resp_code;
5943
static int ett_lbmc_ume_preg_resp_marker;
5944
static int ett_lbmc_ume_ack;
5945
static int ett_lbmc_ume_ack_flags;
5946
static int ett_lbmc_ume_rxreq;
5947
static int ett_lbmc_ume_rxreq_flags;
5948
static int ett_lbmc_ume_ranged_rxreq;
5949
static int ett_lbmc_ume_ranged_rxreq_flags;
5950
static int ett_lbmc_ume_keepalive;
5951
static int ett_lbmc_ume_keepalive_flags;
5952
static int ett_lbmc_ume_storeid;
5953
static int ett_lbmc_ume_ranged_ack;
5954
static int ett_lbmc_ume_ranged_ack_flags;
5955
static int ett_lbmc_ume_ack_id;
5956
static int ett_lbmc_ume_ack_id_flags;
5957
static int ett_lbmc_ume_capability;
5958
static int ett_lbmc_ume_capability_flags;
5959
static int ett_lbmc_ume_proxy_src;
5960
static int ett_lbmc_ume_proxy_src_flags;
5961
static int ett_lbmc_ume_store_group;
5962
static int ett_lbmc_ume_store_group_flags;
5963
static int ett_lbmc_ume_store;
5964
static int ett_lbmc_ume_store_flags;
5965
static int ett_lbmc_ume_lj_info;
5966
static int ett_lbmc_ume_lj_info_flags;
5967
static int ett_lbmc_tsni;
5968
static int ett_lbmc_tsni_rec;
5969
static int ett_lbmc_umq_reg;
5970
static int ett_lbmc_umq_reg_flags;
5971
static int ett_lbmc_umq_reg_reg_ctx;
5972
static int ett_lbmc_umq_reg_reg_src;
5973
static int ett_lbmc_umq_reg_reg_rcv;
5974
static int ett_lbmc_umq_reg_rcv_dereg;
5975
static int ett_lbmc_umq_reg_reg_ulb_rcv;
5976
static int ett_lbmc_umq_reg_ulb_rcv_dereg;
5977
static int ett_lbmc_umq_reg_reg_observer_rcv;
5978
static int ett_lbmc_umq_reg_observer_rcv_dereg;
5979
static int ett_lbmc_umq_reg_resp;
5980
static int ett_lbmc_umq_reg_resp_flags;
5981
static int ett_lbmc_umq_reg_resp_reg_ctx;
5982
static int ett_lbmc_umq_reg_resp_reg_ctx_ex;
5983
static int ett_lbmc_umq_reg_resp_reg_ctx_ex_flags;
5984
static int ett_lbmc_umq_reg_resp_err;
5985
static int ett_lbmc_umq_reg_resp_reg_src;
5986
static int ett_lbmc_umq_reg_resp_reg_rcv;
5987
static int ett_lbmc_umq_reg_resp_rcv_dereg;
5988
static int ett_lbmc_umq_reg_resp_reg_ulb_rcv;
5989
static int ett_lbmc_umq_reg_resp_ulb_rcv_dereg;
5990
static int ett_lbmc_umq_reg_resp_reg_observer_rcv;
5991
static int ett_lbmc_umq_reg_resp_observer_rcv_dereg;
5992
static int ett_lbmc_umq_ack;
5993
static int ett_lbmc_umq_ack_msgs;
5994
static int ett_lbmc_umq_ack_msgid;
5995
static int ett_lbmc_umq_ack_stable;
5996
static int ett_lbmc_umq_ack_cr;
5997
static int ett_lbmc_umq_ack_ulb_cr;
5998
static int ett_lbmc_umq_rcr;
5999
static int ett_lbmc_umq_rcr_flags;
6000
static int ett_lbmc_umq_ka;
6001
static int ett_lbmc_umq_ka_flags;
6002
static int ett_lbmc_umq_ka_src;
6003
static int ett_lbmc_umq_ka_rcv;
6004
static int ett_lbmc_umq_ka_ulb_rcv;
6005
static int ett_lbmc_umq_ka_ulb_rcv_resp;
6006
static int ett_lbmc_umq_rxreq;
6007
static int ett_lbmc_umq_rxreq_flags;
6008
static int ett_lbmc_umq_rxreq_regid_resp;
6009
static int ett_lbmc_umq_rxreq_addr_resp;
6010
static int ett_lbmc_umq_rxreq_mr;
6011
static int ett_lbmc_umq_rxreq_ulb_mr;
6012
static int ett_lbmc_umq_rxreq_ulb_mr_abort;
6013
static int ett_lbmc_umq_rxreq_qrcrr;
6014
static int ett_lbmc_umq_rxreq_trcrr;
6015
static int ett_lbmc_umq_rxreq_ulb_trcrr;
6016
static int ett_lbmc_umq_rxreq_ulb_trcrr_abort;
6017
static int ett_lbmc_umq_qmgmt;
6018
static int ett_lbmc_umq_resub_req;
6019
static int ett_lbmc_umq_resub_req_flags;
6020
static int ett_lbmc_umq_resub_resp;
6021
static int ett_lbmc_umq_resub_resp_flags;
6022
static int ett_lbmc_topic_interest;
6023
static int ett_lbmc_topic_interest_flags;
6024
static int ett_lbmc_pattern_interest;
6025
static int ett_lbmc_pattern_interest_flags;
6026
static int ett_lbmc_advertisement;
6027
static int ett_lbmc_advertisement_flags;
6028
static int ett_lbmc_advertisement_ad_flags;
6029
static int ett_lbmc_ume_storename;
6030
static int ett_lbmc_ume_storename_flags;
6031
static int ett_lbmc_umq_ulb_rcr;
6032
static int ett_lbmc_umq_ulb_rcr_flags;
6033
static int ett_lbmc_umq_lf;
6034
static int ett_lbmc_umq_lf_flags;
6035
static int ett_lbmc_ctxinfo;
6036
static int ett_lbmc_ctxinfo_flags;
6037
static int ett_lbmc_ume_pser;
6038
static int ett_lbmc_ume_pser_flags;
6039
static int ett_lbmc_domain;
6040
static int ett_lbmc_domain_flags;
6041
static int ett_lbmc_tnwg_capabilities;
6042
static int ett_lbmc_tnwg_capabilities_flags;
6043
static int ett_lbmc_tnwg_capabilities_capabilities1;
6044
static int ett_lbmc_tnwg_capabilities_capabilities3;
6045
static int ett_lbmc_patidx;
6046
static int ett_lbmc_patidx_flags;
6047
static int ett_lbmc_ume_client_lifetime;
6048
static int ett_lbmc_ume_client_lifetime_flags;
6049
static int ett_lbmc_ume_sid;
6050
static int ett_lbmc_ume_sid_flags;
6051
static int ett_lbmc_umq_idx_cmd;
6052
static int ett_lbmc_umq_idx_cmd_flags;
6053
static int ett_lbmc_umq_idx_cmd_stop_assign;
6054
static int ett_lbmc_umq_idx_cmd_start_assign;
6055
static int ett_lbmc_umq_idx_cmd_release_assign;
6056
static int ett_lbmc_umq_idx_cmd_release_assign_flags;
6057
static int ett_lbmc_umq_idx_cmd_ulb_stop_assign;
6058
static int ett_lbmc_umq_idx_cmd_ulb_start_assign;
6059
static int ett_lbmc_umq_idx_cmd_ulb_release_assign;
6060
static int ett_lbmc_umq_idx_cmd_ulb_release_assign_flags;
6061
static int ett_lbmc_umq_idx_cmd_reserve_assign;
6062
static int ett_lbmc_umq_idx_cmd_reserve_assign_flags;
6063
static int ett_lbmc_umq_idx_cmd_ulb_reserve_assign;
6064
static int ett_lbmc_umq_idx_cmd_ulb_reserve_assign_flags;
6065
static int ett_lbmc_umq_idx_cmd_resp;
6066
static int ett_lbmc_umq_idx_cmd_resp_flags;
6067
static int ett_lbmc_umq_idx_cmd_resp_err;
6068
static int ett_lbmc_umq_idx_cmd_resp_stop_assign;
6069
static int ett_lbmc_umq_idx_cmd_resp_start_assign;
6070
static int ett_lbmc_umq_idx_cmd_resp_release_assign;
6071
static int ett_lbmc_umq_idx_cmd_resp_ulb_stop_assign;
6072
static int ett_lbmc_umq_idx_cmd_resp_ulb_start_assign;
6073
static int ett_lbmc_umq_idx_cmd_resp_ulb_release_assign;
6074
static int ett_lbmc_umq_idx_cmd_resp_reserve_assign;
6075
static int ett_lbmc_umq_idx_cmd_resp_reserve_assign_flags;
6076
static int ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign;
6077
static int ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags;
6078
static int ett_lbmc_odomain;
6079
static int ett_lbmc_odomain_flags;
6080
static int ett_lbmc_stream;
6081
static int ett_lbmc_stream_flags;
6082
static int ett_lbmc_topic_md_interest;
6083
static int ett_lbmc_topic_md_interest_flags;
6084
static int ett_lbmc_pattern_md_interest;
6085
static int ett_lbmc_pattern_md_interest_flags;
6086
static int ett_lbmc_lji_req;
6087
static int ett_lbmc_lji_req_flags;
6088
static int ett_lbmc_tnwg_ka;
6089
static int ett_lbmc_tnwg_ka_flags;
6090
static int ett_lbmc_ume_receiver_keepalive;
6091
static int ett_lbmc_ume_receiver_keepalive_flags;
6092
static int ett_lbmc_umq_cmd;
6093
static int ett_lbmc_umq_cmd_flags;
6094
static int ett_lbmc_umq_cmd_topic_list;
6095
static int ett_lbmc_umq_cmd_msg_retrieve;
6096
static int ett_lbmc_umq_cmd_msg_retrieve_entry;
6097
static int ett_lbmc_umq_cmd_msg_list;
6098
static int ett_lbmc_umq_cmd_resp;
6099
static int ett_lbmc_umq_cmd_resp_flags;
6100
static int ett_lbmc_umq_cmd_resp_msg_retrieve;
6101
static int ett_lbmc_umq_cmd_resp_xmsg_retrieve;
6102
static int ett_lbmc_umq_cmd_resp_xmsg_retrieve_entry;
6103
static int ett_lbmc_umq_cmd_resp_msg_list;
6104
static int ett_lbmc_umq_cmd_resp_xmsg_list;
6105
static int ett_lbmc_umq_cmd_resp_xmsg_list_entry;
6106
static int ett_lbmc_umq_cmd_resp_topic_list;
6107
static int ett_lbmc_umq_cmd_resp_topic_list_topic_entry;
6108
static int ett_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry;
6109
static int ett_lbmc_umq_cmd_resp_err;
6110
static int ett_lbmc_sri_req;
6111
static int ett_lbmc_sri_req_flags;
6112
static int ett_lbmc_ume_store_domain;
6113
static int ett_lbmc_ume_store_domain_flags;
6114
static int ett_lbmc_sri;
6115
static int ett_lbmc_sri_flags;
6116
static int ett_lbmc_route_info;
6117
static int ett_lbmc_route_info_flags;
6118
static int ett_lbmc_route_info_neighbor;
6119
static int ett_lbmc_route_info_neighbor_flags;
6120
static int ett_lbmc_route_info_nbr_ext;
6121
static int ett_lbmc_route_info_nbr_ext_flags;
6122
static int ett_lbmc_gateway_name;
6123
static int ett_lbmc_gateway_name_flags;
6124
static int ett_lbmc_auth_request;
6125
static int ett_lbmc_auth_request_flags;
6126
static int ett_lbmc_auth_challenge;
6127
static int ett_lbmc_auth_challenge_flags;
6128
static int ett_lbmc_auth_challenge_rsp;
6129
static int ett_lbmc_auth_challenge_rsp_flags;
6130
static int ett_lbmc_auth_result;
6131
static int ett_lbmc_auth_result_flags;
6132
static int ett_lbmc_auth_unknown;
6133
static int ett_lbmc_hmac;
6134
static int ett_lbmc_hmac_flags;
6135
static int ett_lbmc_umq_sid;
6136
static int ett_lbmc_umq_sid_flags;
6137
static int ett_lbmc_destination;
6138
static int ett_lbmc_destination_flags;
6139
static int ett_lbmc_topic_idx;
6140
static int ett_lbmc_topic_idx_flags;
6141
static int ett_lbmc_topic_source;
6142
static int ett_lbmc_topic_source_flags;
6143
static int ett_lbmc_topic_source_exfunc;
6144
static int ett_lbmc_topic_source_exfunc_flags;
6145
static int ett_lbmc_topic_source_exfunc_functionality_flags;
6146
static int ett_lbmc_ume_store_ext;
6147
static int ett_lbmc_ume_store_ext_flags;
6148
static int ett_lbmc_ume_psrc_election_token;
6149
static int ett_lbmc_ume_psrc_election_token_flags;
6150
static int ett_lbmc_tcp_sid;
6151
static int ett_lbmc_tcp_sid_flags;
6152
static int ett_lbmc_transport_security;
6153
static int ett_lbmc_transport_security_flags;
6154
static int ett_lbmc_transport_security_protocols_accepted;
6155
static int ett_lbmc_extopt;
6156
static int ett_lbmc_extopt_flags;
6157
static int ett_lbmc_extopt_cfgopt;
6158
static int ett_lbmc_extopt_reassembled_data;
6159
static int ett_lbmc_extopt_reassembled_data_cfgopt;
6160
static int ett_lbm_msg_properties;
6161
static int ett_lbm_msg_properties_data;
6162
static int ett_lbm_msg_properties_hdr;
6163
static int ett_lbmc_unhandled_hdr;
6164
static int ett_lbm_stream;
6165
static int ett_lbmc_reassembly;
6166
static int ett_unknown;
6167
static int ett_msg_data;
6168
static int ett_msgprop_data;
6169
6170
/* Expert info handles */
6171
static expert_field ei_lbmc_analysis_length_incorrect;
6172
static expert_field ei_lbmc_analysis_zero_length;
6173
static expert_field ei_lbmc_analysis_tsni;
6174
static expert_field ei_lbmc_analysis_invalid_value;
6175
static expert_field ei_lbmc_analysis_no_reassembly;
6176
/* static expert_field ei_lbmc_analysis_invalid_offset; */
6177
static expert_field ei_lbmc_analysis_missing_reassembly_frame;
6178
static expert_field ei_lbmc_analysis_invalid_fragment;
6179
static expert_field ei_lbmc_extopt_fragment_offset;
6180
static expert_field ei_lbmc_transport_security_blackhole;
6181
6182
/* Extended option reassembly structures. */
6183
2
#define LBMC_EXTOPT_REASSEMBLED_DATA_MAX_LEN 65536
6184
typedef struct
6185
{
6186
    bool reassembly_in_progress;
6187
    uint16_t subtype;
6188
    int len;
6189
    char data[LBMC_EXTOPT_REASSEMBLED_DATA_MAX_LEN];
6190
} lbmc_extopt_reassembled_data_t;
6191
6192
/* Stream structures. */
6193
typedef struct
6194
{
6195
    bool set;
6196
    uint32_t stream_id;
6197
    uint32_t sqn;
6198
    uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
6199
} lbmc_stream_info_t;
6200
6201
typedef struct
6202
{
6203
    bool set;
6204
    uint8_t ctxinst[LBM_CONTEXT_INSTANCE_BLOCK_SZ];
6205
} lbmc_ctxinst_info_t;
6206
6207
typedef struct
6208
{
6209
    bool set;
6210
    lbm_uim_stream_destination_t endpoint_a;
6211
    lbm_uim_stream_destination_t endpoint_b;
6212
} lbmc_destination_info_t;
6213
6214
/* TCP session ID structures. */
6215
typedef struct
6216
{
6217
    bool set;
6218
    uint32_t session_id;
6219
} lbmc_tcp_sid_info_t;
6220
6221
/*----------------------------------------------------------------------------*/
6222
/* UIM Flow tap handler                                                       */
6223
/*----------------------------------------------------------------------------*/
6224
typedef struct
6225
{
6226
    uint64_t channel;
6227
    uint32_t sqn;
6228
    lbm_uim_stream_endpoint_t endpoint_a;
6229
    lbm_uim_stream_endpoint_t endpoint_b;
6230
    const char * description;
6231
} lbm_uim_stream_info_t;
6232
6233
static tap_packet_status
6234
lbm_uim_seq_analysis_packet(void *ptr, packet_info *pinfo, epan_dissect_t *edt _U_, const void *uim_info, tap_flags_t flags _U_)
6235
0
{
6236
0
    seq_analysis_info_t *sainfo = (seq_analysis_info_t *) ptr;
6237
0
    const lbm_uim_stream_info_t* stream_info = (const lbm_uim_stream_info_t *)uim_info;
6238
0
    lbm_uim_stream_endpoint_t epa;
6239
0
    lbm_uim_stream_endpoint_t epb;
6240
0
    char * ctxinst1;
6241
0
    char * ctxinst2;
6242
0
    bool swap_endpoints = false;
6243
0
    seq_analysis_item_t* sai;
6244
0
    char time_str[COL_MAX_LEN];
6245
0
    int rc;
6246
6247
0
    if (stream_info->endpoint_a.type != stream_info->endpoint_b.type)
6248
0
    {
6249
0
        return TAP_PACKET_DONT_REDRAW;
6250
0
    }
6251
0
    if (stream_info->endpoint_a.type == lbm_uim_instance_stream)
6252
0
    {
6253
0
        rc = memcmp((const void *)stream_info->endpoint_a.stream_info.ctxinst.ctxinst,
6254
0
                    (const void *)stream_info->endpoint_b.stream_info.ctxinst.ctxinst,
6255
0
                    LBM_CONTEXT_INSTANCE_BLOCK_SZ);
6256
0
        if (rc <= 0)
6257
0
        {
6258
0
            swap_endpoints = false;
6259
0
        }
6260
0
        else
6261
0
        {
6262
0
            swap_endpoints = true;
6263
0
        }
6264
0
    }
6265
0
    else
6266
0
    {
6267
0
        if (stream_info->endpoint_a.stream_info.dest.domain < stream_info->endpoint_b.stream_info.dest.domain)
6268
0
        {
6269
0
            swap_endpoints = false;
6270
0
        }
6271
0
        else if (stream_info->endpoint_a.stream_info.dest.domain > stream_info->endpoint_b.stream_info.dest.domain)
6272
0
        {
6273
0
            swap_endpoints = true;
6274
0
        }
6275
0
        else
6276
0
        {
6277
0
            int compare;
6278
6279
0
            compare = cmp_address(&(stream_info->endpoint_a.stream_info.dest.addr), &(stream_info->endpoint_b.stream_info.dest.addr));
6280
0
            if (compare < 0)
6281
0
            {
6282
0
                swap_endpoints = false;
6283
0
            }
6284
0
            else if (compare > 0)
6285
0
            {
6286
0
                swap_endpoints = true;
6287
0
            }
6288
0
            else
6289
0
            {
6290
0
                if (stream_info->endpoint_a.stream_info.dest.port <= stream_info->endpoint_b.stream_info.dest.port)
6291
0
                {
6292
0
                    swap_endpoints = false;
6293
0
                }
6294
0
                else
6295
0
                {
6296
0
                    swap_endpoints = true;
6297
0
                }
6298
0
            }
6299
0
        }
6300
0
    }
6301
0
    if (swap_endpoints == false)
6302
0
    {
6303
0
        epa = stream_info->endpoint_a;
6304
0
        epb = stream_info->endpoint_b;
6305
0
    }
6306
0
    else
6307
0
    {
6308
0
        epb = stream_info->endpoint_a;
6309
0
        epa = stream_info->endpoint_b;
6310
0
    }
6311
6312
0
    sai = g_new0(seq_analysis_item_t, 1);
6313
0
    copy_address(&(sai->src_addr), &(pinfo->src));
6314
0
    copy_address(&(sai->dst_addr), &(pinfo->dst));
6315
0
    sai->frame_number = pinfo->num;
6316
0
    sai->port_src = pinfo->srcport;
6317
0
    sai->port_dst = pinfo->destport;
6318
6319
0
    if (stream_info->description == NULL)
6320
0
    {
6321
0
        sai->frame_label = ws_strdup_printf("(%" PRIu32 ")", stream_info->sqn);
6322
0
    }
6323
0
    else
6324
0
    {
6325
0
        sai->frame_label = ws_strdup_printf("%s (%" PRIu32 ")", stream_info->description, stream_info->sqn);
6326
0
    }
6327
0
    if (epa.type == lbm_uim_instance_stream)
6328
0
    {
6329
0
        ctxinst1 = bytes_to_str(pinfo->pool, epa.stream_info.ctxinst.ctxinst, sizeof(epa.stream_info.ctxinst.ctxinst));
6330
0
        ctxinst2 = bytes_to_str(pinfo->pool, epb.stream_info.ctxinst.ctxinst, sizeof(epb.stream_info.ctxinst.ctxinst));
6331
0
        sai->comment = ws_strdup_printf("%s <-> %s [%" PRIu64 "]",
6332
0
            ctxinst1,
6333
0
            ctxinst2,
6334
0
            stream_info->channel);
6335
0
    }
6336
0
    else
6337
0
    {
6338
0
        sai->comment = ws_strdup_printf("%" PRIu32 ":%s:%" PRIu16 " <-> %" PRIu32 ":%s:%" PRIu16 " [%" PRIu64 "]",
6339
0
            epa.stream_info.dest.domain,
6340
0
            address_to_str(pinfo->pool, &(epa.stream_info.dest.addr)),
6341
0
            epa.stream_info.dest.port,
6342
0
            epb.stream_info.dest.domain,
6343
0
            address_to_str(pinfo->pool, &(epb.stream_info.dest.addr)),
6344
0
            epb.stream_info.dest.port,
6345
0
            stream_info->channel);
6346
0
    }
6347
6348
    /* Fill in the timestamps */
6349
0
    set_fd_time(pinfo->epan, pinfo->fd, time_str);
6350
0
    sai->time_str = g_strdup(time_str);
6351
6352
0
    sai->conv_num = (uint16_t)LBM_CHANNEL_ID(stream_info->channel);
6353
0
    sai->display = true;
6354
0
    sai->line_style = 1;
6355
6356
0
    g_queue_push_tail(sainfo->items, sai);
6357
6358
0
    return TAP_PACKET_REDRAW;
6359
0
}
6360
6361
6362
/*----------------------------------------------------------------------------*/
6363
/* Message reassembly.                                                        */
6364
/*----------------------------------------------------------------------------*/
6365
0
#define LBMC_MESSAGE_KEY_ELEMENT_COUNT        5
6366
0
#define LBMC_MESSAGE_KEY_ELEMENT_CHANNEL_HIGH 0
6367
0
#define LBMC_MESSAGE_KEY_ELEMENT_CHANNEL_LOW  1
6368
0
#define LBMC_MESSAGE_KEY_ELEMENT_ADDR         2
6369
0
#define LBMC_MESSAGE_KEY_ELEMENT_PORT         3
6370
0
#define LBMC_MESSAGE_KEY_ELEMENT_FIRST_SQN    4
6371
6372
static wmem_tree_t * lbmc_message_table;
6373
6374
typedef struct
6375
{
6376
    int fragment_found;
6377
    uint32_t first_sqn;
6378
    uint32_t offset;
6379
    uint32_t len;
6380
} lbmc_fragment_info_t;
6381
6382
struct lbmc_fragment_entry_t_stct;
6383
typedef struct lbmc_fragment_entry_t_stct lbmc_fragment_entry_t;
6384
struct lbmc_fragment_entry_t_stct
6385
{
6386
    lbmc_fragment_entry_t * prev;
6387
    lbmc_fragment_entry_t * next;
6388
    uint32_t fragment_start;
6389
    uint32_t fragment_len;
6390
    uint32_t frame;
6391
    int frame_offset;
6392
    char * data;
6393
};
6394
6395
typedef struct
6396
{
6397
    uint64_t channel;
6398
    address addr;
6399
    uint16_t port;
6400
    uint32_t first_sqn;
6401
    uint32_t fragment_count;
6402
    uint32_t total_len;
6403
    uint32_t accumulated_len;
6404
    uint32_t msgprop_len;
6405
    bool data_is_umq_cmd_resp;
6406
    lbmc_fragment_entry_t * entry;
6407
    uint32_t reassembled_frame;
6408
    tvbuff_t * reassembled_data;
6409
    tvbuff_t * data;
6410
    tvbuff_t * msgprop;
6411
} lbmc_message_entry_t;
6412
6413
static void lbmc_message_build_key(uint32_t * key_value, wmem_tree_key_t * key, const lbmc_message_entry_t * message)
6414
0
{
6415
0
    uint32_t val;
6416
6417
0
    key_value[LBMC_MESSAGE_KEY_ELEMENT_CHANNEL_HIGH] = (uint32_t) ((message->channel >> 32) & 0xffffffff);
6418
0
    key_value[LBMC_MESSAGE_KEY_ELEMENT_CHANNEL_LOW] = (uint32_t) (message->channel & 0xffffffff);
6419
0
    val = lbmc_addr_key(&message->addr);
6420
0
    key_value[LBMC_MESSAGE_KEY_ELEMENT_ADDR] = val;
6421
0
    key_value[LBMC_MESSAGE_KEY_ELEMENT_PORT] = (uint32_t) message->port;
6422
0
    key_value[LBMC_MESSAGE_KEY_ELEMENT_FIRST_SQN] = message->first_sqn;
6423
0
    key[0].length = LBMC_MESSAGE_KEY_ELEMENT_COUNT;
6424
0
    key[0].key = key_value;
6425
0
    key[1].length = 0;
6426
0
    key[1].key = NULL;
6427
0
}
6428
6429
static lbmc_message_entry_t * lbmc_message_find(uint64_t channel, const address * dest_address, uint16_t port, lbmc_fragment_info_t * info)
6430
0
{
6431
0
    lbmc_message_entry_t key;
6432
0
    lbmc_message_entry_t * entry = NULL;
6433
0
    uint32_t keyval[LBMC_MESSAGE_KEY_ELEMENT_COUNT];
6434
0
    wmem_tree_key_t tkey[2];
6435
6436
0
    memset((void *)&key, 0, sizeof(lbmc_message_entry_t));
6437
0
    key.channel = channel;
6438
0
    copy_address_shallow(&(key.addr), dest_address);
6439
0
    key.port = port;
6440
0
    key.first_sqn = info->first_sqn;
6441
0
    lbmc_message_build_key(keyval, tkey, &key);
6442
0
    entry = (lbmc_message_entry_t *) wmem_tree_lookup32_array(lbmc_message_table, tkey);
6443
0
    return (entry);
6444
0
}
6445
6446
static lbmc_message_entry_t * lbmc_message_create(uint64_t channel, const address * dest_address, uint16_t port, lbmc_fragment_info_t * info, uint32_t msgprop_length)
6447
0
{
6448
0
    lbmc_message_entry_t * entry = NULL;
6449
0
    uint32_t keyval[LBMC_MESSAGE_KEY_ELEMENT_COUNT];
6450
0
    wmem_tree_key_t tkey[2];
6451
6452
0
    entry = lbmc_message_find(channel, dest_address, port, info);
6453
0
    if (entry != NULL)
6454
0
    {
6455
0
        return (entry);
6456
0
    }
6457
0
    entry = wmem_new(wmem_file_scope(), lbmc_message_entry_t);
6458
0
    entry->channel = channel;
6459
0
    copy_address_wmem(wmem_file_scope(), &(entry->addr), dest_address);
6460
0
    entry->port = port;
6461
0
    entry->first_sqn = info->first_sqn;
6462
0
    entry->fragment_count = 0;
6463
0
    entry->total_len = info->len;
6464
0
    entry->accumulated_len = 0;
6465
0
    entry->msgprop_len = msgprop_length;
6466
0
    entry->data_is_umq_cmd_resp = false;
6467
0
    entry->entry = NULL;
6468
0
    entry->reassembled_frame = 0;
6469
0
    entry->reassembled_data = NULL;
6470
0
    entry->data = NULL;
6471
0
    entry->msgprop = NULL;
6472
0
    lbmc_message_build_key(keyval, tkey, entry);
6473
0
    wmem_tree_insert32_array(lbmc_message_table, tkey, (void *) entry);
6474
0
    return (entry);
6475
0
}
6476
6477
static bool lbmc_message_add_fragment(lbmc_message_entry_t * message, tvbuff_t * tvb, int data_offset, lbmc_fragment_info_t * info, uint32_t frame)
6478
0
{
6479
0
    lbmc_fragment_entry_t * frag = NULL;
6480
0
    lbmc_fragment_entry_t * cur = NULL;
6481
6482
0
    DISSECTOR_ASSERT(!((tvb == NULL) || (info == NULL) || (message == NULL)));
6483
6484
    /* This innocent function does not seem to consider the possibility of
6485
     * overlapping or bogus fragments, and the total accumulated length not
6486
     * equaling the expected length at any point. It would be nice to use
6487
     * the reassembly API. */
6488
0
    unsigned frag_len = tvb_reported_length_remaining(tvb, data_offset);
6489
0
    uint32_t total_len, accumulated_len;
6490
    /* Duplicates (e.g. on a second pass) are accepted before any length check,
6491
     * overlapping fragments are rejected. */
6492
0
    for (cur = message->entry; cur != NULL; cur = cur->next)
6493
0
    {
6494
0
        if (info->offset == cur->fragment_start)
6495
0
        {
6496
            /* Already have this fragment */
6497
0
            return true;
6498
0
        }
6499
0
        if (((uint64_t)info->offset < (uint64_t)cur->fragment_start + cur->fragment_len) &&
6500
0
            (cur->fragment_start < (uint64_t)info->offset + frag_len))
6501
0
        {
6502
0
            return false;
6503
0
        }
6504
0
    }
6505
0
    cur = NULL;
6506
0
    if (ckd_add(&total_len, info->offset, frag_len) || total_len > message->total_len) {
6507
0
        return false;
6508
0
    }
6509
0
    if (ckd_add(&accumulated_len, message->accumulated_len, frag_len) || accumulated_len > message->total_len) {
6510
0
        return false;
6511
0
    }
6512
6513
0
    if (message->entry == NULL)
6514
0
    {
6515
0
        frag = wmem_new(wmem_file_scope(), lbmc_fragment_entry_t);
6516
0
        if (frag == NULL)
6517
0
        {
6518
0
            return false;
6519
0
        }
6520
0
        frag->prev = NULL;
6521
0
        frag->next = NULL;
6522
0
        message->entry = frag;
6523
0
    }
6524
0
    else
6525
0
    {
6526
0
        cur = message->entry;
6527
0
        while (cur != NULL)
6528
0
        {
6529
0
            if (info->offset == cur->fragment_start)
6530
0
            {
6531
                /* Already have this fragment */
6532
0
                return true;
6533
0
            }
6534
0
            if (info->offset < cur->fragment_start)
6535
0
            {
6536
                /* Fragment goes after cur->prev */
6537
0
                cur = cur->prev;
6538
0
                break;
6539
0
            }
6540
0
            if (cur->next == NULL)
6541
0
            {
6542
                /* Fragment goes after cur */
6543
0
                break;
6544
0
            }
6545
0
            cur = cur->next;
6546
0
        }
6547
0
        frag = wmem_new(wmem_file_scope(), lbmc_fragment_entry_t);
6548
0
        if (frag == NULL)
6549
0
        {
6550
0
            return false;
6551
0
        }
6552
0
        if (cur == NULL)
6553
0
        {
6554
0
            frag->prev = NULL;
6555
0
            frag->next = message->entry;
6556
0
            message->entry->prev = frag;
6557
0
            message->entry = frag;
6558
0
        }
6559
0
        else
6560
0
        {
6561
0
            frag->prev = cur;
6562
0
            frag->next = cur->next;
6563
0
            cur->next = frag;
6564
0
            if (frag->next != NULL)
6565
0
            {
6566
0
                frag->next->prev = frag;
6567
0
            }
6568
0
        }
6569
0
    }
6570
0
    frag->fragment_start = info->offset;
6571
0
    frag->fragment_len = frag_len;
6572
0
    frag->data = (char *) tvb_memdup(wmem_file_scope(), tvb, data_offset, frag->fragment_len);
6573
0
    frag->frame = frame;
6574
0
    frag->frame_offset = data_offset;
6575
0
    message->accumulated_len += frag->fragment_len;
6576
0
    message->fragment_count++;
6577
0
    return true;
6578
0
}
6579
6580
/*----------------------------------------------------------------------------*/
6581
/* Message table/reassembly functions.                                        */
6582
/*----------------------------------------------------------------------------*/
6583
static void lbmc_init_extopt_reassembled_data(lbmc_extopt_reassembled_data_t * reassembly)
6584
612
{
6585
612
    reassembly->reassembly_in_progress = false;
6586
612
    reassembly->subtype = 0;
6587
612
    reassembly->len = 0;
6588
612
}
6589
6590
/*----------------------------------------------------------------------------*/
6591
/* Dissection functions.                                                      */
6592
/*----------------------------------------------------------------------------*/
6593
static int dissect_nhdr_frag(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_fragment_info_t * frag_info, proto_item **frag_item)
6594
40
{
6595
40
    proto_item * subtree_item = NULL;
6596
40
    proto_tree * subtree = NULL;
6597
40
    static int * const flags[] =
6598
40
    {
6599
40
        &hf_lbmc_frag_flags_ignore,
6600
40
        NULL
6601
40
    };
6602
6603
40
    subtree_item = proto_tree_add_item(tree, hf_lbmc_frag, tvb, offset, L_LBMC_FRAG_HDR_T, ENC_NA);
6604
40
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_frag);
6605
40
    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);
6606
40
    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);
6607
40
    proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_FRAG_HDR_T_FLAGS, hf_lbmc_frag_flags, ett_lbmc_frag, flags, ENC_BIG_ENDIAN);
6608
40
    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);
6609
40
    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);
6610
40
    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);
6611
40
    if (frag_info != NULL)
6612
35
    {
6613
35
        frag_info->fragment_found = 1;
6614
35
        frag_info->first_sqn = tvb_get_ntohl(tvb, offset + O_LBMC_FRAG_HDR_T_FIRST_SQN);
6615
35
        frag_info->offset = tvb_get_ntohl(tvb, offset + O_LBMC_FRAG_HDR_T_OFFSET);
6616
35
        frag_info->len = tvb_get_ntohl(tvb, offset + O_LBMC_FRAG_HDR_T_LEN);
6617
35
    }
6618
40
    if (frag_item != NULL)
6619
35
    {
6620
35
        *frag_item = subtree_item;
6621
35
    }
6622
40
    return (L_LBMC_FRAG_HDR_T);
6623
40
}
6624
6625
static int dissect_nhdr_batch(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
6626
47
{
6627
47
    proto_item * subtree_item = NULL;
6628
47
    proto_tree * subtree = NULL;
6629
47
    static int * const flags[] =
6630
47
    {
6631
47
        &hf_lbmc_batch_flags_ignore,
6632
47
        &hf_lbmc_batch_flags_batch_start,
6633
47
        &hf_lbmc_batch_flags_batch_end,
6634
47
        NULL
6635
47
    };
6636
6637
47
    subtree_item = proto_tree_add_item(tree, hf_lbmc_batch, tvb, offset, L_LBMC_BATCH_HDR_T, ENC_NA);
6638
47
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_batch);
6639
47
    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);
6640
47
    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);
6641
47
    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);
6642
47
    return (L_LBMC_BATCH_HDR_T);
6643
47
}
6644
6645
static int dissect_nhdr_request(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
6646
11
{
6647
11
    proto_item * subtree_item = NULL;
6648
11
    proto_tree * subtree = NULL;
6649
11
    static int * const flags[] =
6650
11
    {
6651
11
        &hf_lbmc_tcp_request_flags_ignore,
6652
11
        NULL
6653
11
    };
6654
6655
11
    subtree_item = proto_tree_add_item(tree, hf_lbmc_tcp_request, tvb, offset, L_LBMC_TCP_REQUEST_HDR_T, ENC_NA);
6656
11
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tcp_request);
6657
11
    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);
6658
11
    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);
6659
11
    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);
6660
11
    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);
6661
11
    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);
6662
11
    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);
6663
11
    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);
6664
11
    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);
6665
11
    return (L_LBMC_TCP_REQUEST_HDR_T);
6666
11
}
6667
6668
static int dissect_nhdr_topicname(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
6669
41
{
6670
41
    proto_item * subtree_item = NULL;
6671
41
    proto_tree * subtree = NULL;
6672
41
    uint8_t hdrlen = 0;
6673
41
    static int * const flags[] =
6674
41
    {
6675
41
        &hf_lbmc_topicname_flags_ignore,
6676
41
        NULL
6677
41
    };
6678
41
    int len_dissected = 0;
6679
41
    int namelen = 0;
6680
41
    proto_item * hdrlen_item = NULL;
6681
6682
41
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_TOPICNAME_HDR_T_HDR_LEN);
6683
41
    subtree_item = proto_tree_add_item(tree, hf_lbmc_topicname, tvb, offset, (int)hdrlen, ENC_NA);
6684
41
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topicname);
6685
41
    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);
6686
41
    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);
6687
41
    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);
6688
41
    len_dissected = L_LBMC_BASIC_HDR_T;
6689
41
    namelen = (int) hdrlen - len_dissected;
6690
41
    if (namelen > 0)
6691
39
    {
6692
39
        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);
6693
39
        len_dissected += namelen;
6694
39
    }
6695
2
    else
6696
2
    {
6697
2
        expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
6698
2
    }
6699
41
    proto_item_set_len(subtree_item, len_dissected);
6700
41
    return (len_dissected);
6701
41
}
6702
6703
static int dissect_nhdr_apphdr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
6704
69
{
6705
69
    proto_item * subtree_item = NULL;
6706
69
    proto_tree * subtree = NULL;
6707
69
    uint8_t hdrlen = 0;
6708
69
    int len_dissected = 0;
6709
69
    int datalen = 0;
6710
69
    proto_item * hdrlen_item = NULL;
6711
6712
69
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_APPHDR_HDR_T_HDR_LEN);
6713
69
    subtree_item = proto_tree_add_item(tree, hf_lbmc_apphdr, tvb, offset, (int)hdrlen, ENC_NA);
6714
69
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_apphdr);
6715
69
    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);
6716
69
    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);
6717
69
    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);
6718
69
    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);
6719
69
    len_dissected = O_LBMC_APPHDR_HDR_T_CODE + L_LBMC_APPHDR_HDR_T_CODE;
6720
69
    datalen = (int) hdrlen - len_dissected;
6721
69
    if (datalen > 0)
6722
67
    {
6723
67
        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);
6724
67
        len_dissected += datalen;
6725
67
    }
6726
2
    else
6727
2
    {
6728
2
        expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
6729
2
    }
6730
69
    proto_item_set_len(subtree_item, len_dissected);
6731
69
    return (len_dissected);
6732
69
}
6733
6734
static int dissect_nhdr_apphdr_chain_element(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree, uint8_t element)
6735
88
{
6736
88
    proto_item * subtree_item = NULL;
6737
88
    proto_tree * subtree = NULL;
6738
88
    uint8_t hdrlen = 0;
6739
88
    proto_item * hdrlen_item;
6740
88
    int datalen = 0;
6741
88
    int len_dissected = 0;
6742
6743
88
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_APPHDR_CHAIN_ELEMENT_T_HDR_LEN);
6744
88
    subtree_item = proto_tree_add_none_format(tree, hf_lbmc_apphdr_chain_element, tvb, offset, (int)hdrlen, "%s element", val_to_str(pinfo->pool, element, lbmc_apphdr_chain_type, "Unknown (0x%02x)"));
6745
88
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_apphdr_chain_element);
6746
88
    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);
6747
88
    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);
6748
88
    if (hdrlen == 0)
6749
7
    {
6750
7
        expert_add_info_format(pinfo, hdrlen_item, &ei_lbmc_analysis_zero_length, "Element header length is zero");
6751
7
        return ((int)hdrlen);
6752
7
    }
6753
81
    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);
6754
81
    len_dissected = L_LBMC_APPHDR_CHAIN_ELEMENT_T_MIN;
6755
81
    datalen = (int) hdrlen - len_dissected;
6756
81
    if (datalen > 0)
6757
41
    {
6758
41
        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);
6759
41
        len_dissected += datalen;
6760
41
    }
6761
40
    else
6762
40
    {
6763
40
        expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
6764
40
    }
6765
81
    proto_item_set_len(subtree_item, len_dissected);
6766
81
    return (len_dissected);
6767
88
}
6768
6769
static int dissect_nhdr_apphdr_chain_msgprop_element(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree, uint8_t element, uint32_t * msg_prop_len)
6770
2
{
6771
2
    proto_item * subtree_item = NULL;
6772
2
    proto_tree * subtree = NULL;
6773
2
    uint8_t hdrlen = 0;
6774
2
    uint32_t datalen;
6775
2
    int len_dissected = 0;
6776
2
    proto_item * hdrlen_item = NULL;
6777
6778
2
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_HDR_LEN);
6779
2
    subtree_item = proto_tree_add_none_format(tree, hf_lbmc_apphdr_chain_msgprop, tvb, offset, (int)hdrlen, "%s element", val_to_str(pinfo->pool, element, lbmc_apphdr_chain_type, "Unknown (0x%02x)"));
6780
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_apphdr_chain_msgprop);
6781
2
    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);
6782
2
    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);
6783
2
    if (hdrlen == 0)
6784
1
    {
6785
1
        expert_add_info_format(pinfo, hdrlen_item, &ei_lbmc_analysis_zero_length, "Element header length is zero");
6786
1
        return ((int)hdrlen);
6787
1
    }
6788
1
    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);
6789
1
    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);
6790
1
    len_dissected = L_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T;
6791
1
    datalen = tvb_get_ntohl(tvb, offset + O_LBMC_APPHDR_CHAIN_MSGPROP_ELEMENT_T_LEN);
6792
1
    if (msg_prop_len != NULL)
6793
1
    {
6794
1
        *msg_prop_len += datalen;
6795
1
    }
6796
1
    proto_item_set_len(subtree_item, len_dissected);
6797
1
    return (len_dissected);
6798
2
}
6799
6800
static int dissect_nhdr_apphdr_chain(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree, uint32_t * msg_prop_len)
6801
21
{
6802
21
    proto_item * subtree_item = NULL;
6803
21
    proto_tree * subtree = NULL;
6804
21
    uint8_t hdrlen = 0;
6805
21
    int datalen = 0;
6806
21
    int elem_offset = 0;
6807
21
    int elem_len = 0;
6808
21
    uint8_t elem = 0;
6809
21
    int len_dissected = 0;
6810
6811
21
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_APPHDR_CHAIN_HDR_T_HDR_LEN);
6812
21
    datalen = (int)hdrlen - (int)L_LBMC_APPHDR_CHAIN_HDR_T;
6813
21
    subtree_item = proto_tree_add_item(tree, hf_lbmc_apphdr_chain, tvb, offset, (int)hdrlen, ENC_NA);
6814
21
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_apphdr_chain);
6815
21
    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);
6816
21
    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);
6817
21
    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);
6818
21
    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);
6819
21
    len_dissected = L_LBMC_APPHDR_CHAIN_HDR_T;
6820
21
    elem_offset = offset + L_LBMC_APPHDR_CHAIN_HDR_T;
6821
21
    elem = tvb_get_uint8(tvb, offset + O_LBMC_APPHDR_CHAIN_HDR_T_FIRST_CHAIN_HDR);
6822
93
    while (datalen > 0)
6823
90
    {
6824
90
        switch (elem)
6825
90
        {
6826
2
            case LBM_CHAIN_ELEM_PROPERTIES_LENGTH:
6827
2
                elem_len = dissect_nhdr_apphdr_chain_msgprop_element(tvb, elem_offset, pinfo, subtree, elem, msg_prop_len);
6828
2
                break;
6829
88
            default:
6830
88
                elem_len = dissect_nhdr_apphdr_chain_element(tvb, elem_offset, pinfo, subtree, elem);
6831
88
                break;
6832
90
        }
6833
89
        if (elem_len == 0)
6834
8
        {
6835
8
            return (len_dissected);
6836
8
        }
6837
81
        if (elem_len > datalen)
6838
9
        {
6839
9
            break;
6840
9
        }
6841
72
        elem_offset += elem_len;
6842
72
        datalen -= elem_len;
6843
72
        len_dissected += elem_len;
6844
72
        if (datalen >= L_LBMC_APPHDR_CHAIN_ELEMENT_T_MIN)
6845
71
        {
6846
71
            elem = tvb_get_uint8(tvb, elem_offset + O_LBMC_APPHDR_CHAIN_ELEMENT_T_NEXT_HDR);
6847
71
        }
6848
72
    }
6849
12
    proto_item_set_len(subtree_item, len_dissected);
6850
12
    return (len_dissected);
6851
21
}
6852
6853
static int dissect_nhdr_umq_msgid(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
6854
14
{
6855
14
    proto_item * subtree_item = NULL;
6856
14
    proto_tree * subtree = NULL;
6857
14
    static int * const flags[] =
6858
14
    {
6859
14
        &hf_lbmc_umq_msgid_flags_ignore,
6860
14
        NULL
6861
14
    };
6862
6863
14
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_msgid, tvb, offset, L_LBMC_UMQ_MSGID_HDR_T, ENC_NA);
6864
14
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_msgid);
6865
14
    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);
6866
14
    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);
6867
14
    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);
6868
14
    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);
6869
14
    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);
6870
14
    return (L_LBMC_UMQ_MSGID_HDR_T);
6871
14
}
6872
6873
static int dissect_nhdr_umq_sqd_rcv(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree, bool * data_is_response)
6874
10
{
6875
10
    proto_item * subtree_item = NULL;
6876
10
    proto_tree * subtree = NULL;
6877
10
    static int * const flags[] =
6878
10
    {
6879
10
        &hf_lbmc_umq_sqd_rcv_flags_ignore,
6880
10
        &hf_lbmc_umq_sqd_rcv_flags_r_flag,
6881
10
        &hf_lbmc_umq_sqd_rcv_flags_s_flag,
6882
10
        &hf_lbmc_umq_sqd_rcv_flags_re_flag,
6883
10
        &hf_lbmc_umq_sqd_rcv_flags_eoi_flag,
6884
10
        &hf_lbmc_umq_sqd_rcv_flags_boi_flag,
6885
10
        NULL
6886
10
    };
6887
6888
10
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_sqd_rcv, tvb, offset, L_LBMC_UMQ_SQD_RCV_HDR_T, ENC_NA);
6889
10
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_sqd_rcv);
6890
10
    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);
6891
10
    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);
6892
10
    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);
6893
10
    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);
6894
10
    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);
6895
10
    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);
6896
10
    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);
6897
10
    if (data_is_response != NULL)
6898
10
    {
6899
10
        uint32_t rcr_index;
6900
6901
10
        rcr_index = tvb_get_ntohl(tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_RCR_IDX);
6902
10
        if (rcr_index == 0)
6903
2
        {
6904
2
            *data_is_response = true;
6905
2
        }
6906
8
        else
6907
8
        {
6908
8
            *data_is_response = false;
6909
8
        }
6910
10
    }
6911
10
    return (L_LBMC_UMQ_SQD_RCV_HDR_T);
6912
10
}
6913
6914
static int dissect_nhdr_umq_resub(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
6915
12
{
6916
12
    proto_item * subtree_item = NULL;
6917
12
    proto_tree * subtree = NULL;
6918
12
    static int * const flags[] =
6919
12
    {
6920
12
        &hf_lbmc_umq_resub_flags_ignore,
6921
12
        &hf_lbmc_umq_resub_flags_q_flag,
6922
12
        NULL
6923
12
    };
6924
6925
12
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_resub, tvb, offset, L_LBMC_UMQ_RESUB_HDR_T, ENC_NA);
6926
12
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_resub);
6927
12
    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);
6928
12
    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);
6929
12
    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);
6930
12
    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);
6931
12
    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);
6932
12
    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);
6933
12
    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);
6934
12
    return (L_LBMC_UMQ_RESUB_HDR_T);
6935
12
}
6936
6937
static int dissect_nhdr_otid(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
6938
3
{
6939
3
    proto_item * subtree_item = NULL;
6940
3
    proto_tree * subtree = NULL;
6941
3
    static int * const flags[] =
6942
3
    {
6943
3
        &hf_lbmc_otid_flags_ignore,
6944
3
        NULL
6945
3
    };
6946
6947
3
    subtree_item = proto_tree_add_item(tree, hf_lbmc_otid, tvb, offset, L_LBMC_OTID_HDR_T, ENC_NA);
6948
3
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_otid);
6949
3
    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);
6950
3
    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);
6951
3
    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);
6952
3
    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);
6953
3
    return (L_LBMC_OTID_HDR_T);
6954
3
}
6955
6956
static void dissect_ctxinst(tvbuff_t * tvb, unsigned offset, proto_tree * tree, lbmc_ctxinst_info_t * info)
6957
70
{
6958
70
    static int * const flags[] =
6959
70
    {
6960
70
        &hf_lbmc_ctxinst_flags_ignore,
6961
70
        NULL
6962
70
    };
6963
6964
70
    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);
6965
70
    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);
6966
70
    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);
6967
70
    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);
6968
70
    if (info != NULL)
6969
49
    {
6970
49
        info->set = true;
6971
49
        tvb_memcpy(tvb, (void *)&(info->ctxinst), offset + O_LBMC_CTXINST_HDR_T_CTXINST, L_LBMC_CTXINST_HDR_T_CTXINST);
6972
49
    }
6973
70
}
6974
6975
static int dissect_nhdr_ctxinstd(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_ctxinst_info_t * info)
6976
25
{
6977
25
    proto_item * subtree_item = NULL;
6978
25
    proto_tree * subtree = NULL;
6979
6980
25
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ctxinstd, tvb, offset, L_LBMC_CTXINST_HDR_T, ENC_NA);
6981
25
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ctxinstd);
6982
25
    dissect_ctxinst(tvb, offset, subtree, info);
6983
25
    return (L_LBMC_CTXINST_HDR_T);
6984
25
}
6985
6986
static int dissect_nhdr_ctxinstr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_ctxinst_info_t * info)
6987
25
{
6988
25
    proto_item * subtree_item = NULL;
6989
25
    proto_tree * subtree = NULL;
6990
6991
25
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ctxinstr, tvb, offset, L_LBMC_CTXINST_HDR_T, ENC_NA);
6992
25
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ctxinstr);
6993
25
    dissect_ctxinst(tvb, offset, subtree, info);
6994
25
    return (L_LBMC_CTXINST_HDR_T);
6995
25
}
6996
6997
static int dissect_nhdr_ctxinst(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_ctxinst_info_t * info)
6998
20
{
6999
20
    proto_item * subtree_item = NULL;
7000
20
    proto_tree * subtree = NULL;
7001
7002
20
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ctxinst, tvb, offset, L_LBMC_CTXINST_HDR_T, ENC_NA);
7003
20
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ctxinst);
7004
20
    dissect_ctxinst(tvb, offset, subtree, info);
7005
20
    return (L_LBMC_CTXINST_HDR_T);
7006
20
}
7007
7008
static int dissect_nhdr_srcidx(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7009
12
{
7010
12
    proto_item * subtree_item = NULL;
7011
12
    proto_tree * subtree = NULL;
7012
12
    static int * const flags[] =
7013
12
    {
7014
12
        &hf_lbmc_srcidx_flags_ignore,
7015
12
        NULL
7016
12
    };
7017
7018
12
    subtree_item = proto_tree_add_item(tree, hf_lbmc_srcidx, tvb, offset, L_LBMC_SRCIDX_HDR_T, ENC_NA);
7019
12
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_srcidx);
7020
12
    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);
7021
12
    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);
7022
12
    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);
7023
12
    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);
7024
12
    return (L_LBMC_SRCIDX_HDR_T);
7025
12
}
7026
7027
static int dissect_nhdr_umq_ulb_msg(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7028
17
{
7029
17
    proto_item * subtree_item = NULL;
7030
17
    proto_tree * subtree = NULL;
7031
17
    static int * const flags[] =
7032
17
    {
7033
17
        &hf_lbmc_umq_ulb_msg_flags_ignore,
7034
17
        &hf_lbmc_umq_ulb_msg_flags_a_flag,
7035
17
        &hf_lbmc_umq_ulb_msg_flags_r_flag,
7036
17
        NULL
7037
17
    };
7038
7039
17
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ulb_msg, tvb, offset, L_LBMC_UMQ_ULB_MSG_HDR_T, ENC_NA);
7040
17
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ulb_msg);
7041
17
    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);
7042
17
    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);
7043
17
    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);
7044
17
    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);
7045
17
    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);
7046
17
    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);
7047
17
    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);
7048
17
    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);
7049
17
    return (L_LBMC_UMQ_ULB_MSG_HDR_T);
7050
17
}
7051
7052
static int dissect_nhdr_ssf_init(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7053
8
{
7054
8
    proto_item * subtree_item = NULL;
7055
8
    proto_tree * subtree = NULL;
7056
8
    static int * const flags[] =
7057
8
    {
7058
8
        &hf_lbmc_ssf_init_flags_ignore,
7059
8
        &hf_lbmc_ssf_init_flags_default_exclusions,
7060
8
        &hf_lbmc_ssf_init_flags_default_inclusions,
7061
8
        NULL
7062
8
    };
7063
7064
8
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ssf_init, tvb, offset, L_LBMC_CNTL_SSF_INIT_HDR_T, ENC_NA);
7065
8
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ssf_init);
7066
8
    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);
7067
8
    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);
7068
8
    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);
7069
8
    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);
7070
8
    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);
7071
8
    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);
7072
8
    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);
7073
8
    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);
7074
8
    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);
7075
8
    return (L_LBMC_CNTL_SSF_INIT_HDR_T);
7076
8
}
7077
7078
static int dissect_nhdr_ssf_creq(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7079
13
{
7080
13
    proto_item * subtree_item = NULL;
7081
13
    proto_tree * subtree = NULL;
7082
13
    static int * const flags[] =
7083
13
    {
7084
13
        &hf_lbmc_ssf_creq_flags_ignore,
7085
13
        NULL
7086
13
    };
7087
7088
13
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ssf_creq, tvb, offset, L_LBMC_CNTL_SSF_CREQ_HDR_T, ENC_NA);
7089
13
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ssf_creq);
7090
13
    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);
7091
13
    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);
7092
13
    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);
7093
13
    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);
7094
13
    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);
7095
13
    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);
7096
13
    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);
7097
13
    return (L_LBMC_CNTL_SSF_CREQ_HDR_T);
7098
13
}
7099
7100
static int dissect_nhdr_ume_preg(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7101
2
{
7102
2
    proto_item * subtree_item = NULL;
7103
2
    proto_tree * subtree = NULL;
7104
2
    static int * const flags[] =
7105
2
    {
7106
2
        &hf_lbmc_ume_preg_flags_ignore,
7107
2
        &hf_lbmc_ume_preg_flags_f_flag,
7108
2
        &hf_lbmc_ume_preg_flags_p_flag,
7109
2
        &hf_lbmc_ume_preg_flags_w_flag,
7110
2
        &hf_lbmc_ume_preg_flags_d_flag,
7111
2
        NULL
7112
2
    };
7113
7114
2
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_preg, tvb, offset, L_LBMC_CNTL_UME_PREG_HDR_T, ENC_NA);
7115
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_preg);
7116
2
    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);
7117
2
    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);
7118
2
    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);
7119
2
    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);
7120
2
    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);
7121
2
    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);
7122
2
    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);
7123
2
    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);
7124
2
    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);
7125
2
    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);
7126
2
    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);
7127
2
    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);
7128
2
    return (L_LBMC_CNTL_UME_PREG_HDR_T);
7129
2
}
7130
7131
static int dissect_nhdr_ume_preg_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7132
7
{
7133
7
    proto_item * subtree_item = NULL;
7134
7
    proto_tree * subtree = NULL;
7135
7
    uint8_t code = 0;
7136
7
    static int * const codes[] =
7137
7
    {
7138
7
        &hf_lbmc_ume_preg_resp_code_ignore,
7139
7
        &hf_lbmc_ume_preg_resp_code_o_flag,
7140
7
        &hf_lbmc_ume_preg_resp_code_e_flag,
7141
7
        &hf_lbmc_ume_preg_resp_code_n_flag,
7142
7
        &hf_lbmc_ume_preg_resp_code_w_flag,
7143
7
        &hf_lbmc_ume_preg_resp_code_d_flag,
7144
7
        NULL
7145
7
    };
7146
7
    static int * const codes_e[] =
7147
7
    {
7148
7
        &hf_lbmc_ume_preg_resp_code_ignore,
7149
7
        &hf_lbmc_ume_preg_resp_code_o_flag,
7150
7
        &hf_lbmc_ume_preg_resp_code_e_flag,
7151
7
        &hf_lbmc_ume_preg_resp_code_code,
7152
7
        NULL
7153
7
    };
7154
7155
7
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_preg_resp, tvb, offset, L_LBMC_CNTL_UME_PREG_RESP_HDR_T, ENC_NA);
7156
7
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_preg_resp);
7157
7
    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);
7158
7
    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);
7159
7
    code = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE);
7160
7
    if ((code & LBMC_UME_PREG_RESP_E_FLAG) == 0)
7161
6
    {
7162
6
        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);
7163
6
    }
7164
1
    else
7165
1
    {
7166
1
        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);
7167
1
    }
7168
7
    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);
7169
7
    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);
7170
7
    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);
7171
7
    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);
7172
7
    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);
7173
7
    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);
7174
7
    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);
7175
7
    return (L_LBMC_CNTL_UME_PREG_RESP_HDR_T);
7176
7
}
7177
7178
static int dissect_nhdr_ume_ack(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7179
30
{
7180
30
    proto_item * subtree_item = NULL;
7181
30
    proto_tree * subtree = NULL;
7182
30
    static int * const flags[] =
7183
30
    {
7184
30
        &hf_lbmc_ume_ack_flags_ignore,
7185
30
        &hf_lbmc_ume_ack_flags_o_flag,
7186
30
        &hf_lbmc_ume_ack_flags_f_flag,
7187
30
        &hf_lbmc_ume_ack_flags_u_flag,
7188
30
        &hf_lbmc_ume_ack_flags_e_flag,
7189
30
        NULL
7190
30
    };
7191
7192
30
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_ack, tvb, offset, L_LBMC_CNTL_UME_ACK_HDR_T, ENC_NA);
7193
30
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_ack);
7194
30
    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);
7195
30
    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);
7196
30
    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);
7197
30
    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);
7198
30
    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);
7199
30
    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);
7200
30
    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);
7201
30
    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);
7202
30
    return (L_LBMC_CNTL_UME_ACK_HDR_T);
7203
30
}
7204
7205
static int dissect_nhdr_ume_rxreq(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree, bool * is_tsni_request)
7206
23
{
7207
23
    proto_item * subtree_item = NULL;
7208
23
    proto_tree * subtree = NULL;
7209
23
    uint16_t flags_value;
7210
23
    static int * const flags[] =
7211
23
    {
7212
23
        &hf_lbmc_ume_rxreq_flags_ignore,
7213
23
        &hf_lbmc_ume_rxreq_flags_tsni_req,
7214
23
        NULL
7215
23
    };
7216
7217
    /* Read the flags to check if TSNI request flag is set */
7218
23
    flags_value = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS);
7219
23
    if (is_tsni_request != NULL)
7220
23
    {
7221
23
        *is_tsni_request = (flags_value & LBMC_UME_RXREQ_T_FLAG) != 0;
7222
23
    }
7223
7224
23
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_rxreq, tvb, offset, L_LBMC_CNTL_UME_RXREQ_HDR_T, ENC_NA);
7225
23
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_rxreq);
7226
23
    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);
7227
23
    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);
7228
23
    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);
7229
23
    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);
7230
23
    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);
7231
23
    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);
7232
23
    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);
7233
23
    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);
7234
23
    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);
7235
23
    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);
7236
23
    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);
7237
23
    return (L_LBMC_CNTL_UME_RXREQ_HDR_T);
7238
23
}
7239
7240
static int dissect_nhdr_ume_ranged_rxreq(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7241
8
{
7242
8
    proto_item * subtree_item = NULL;
7243
8
    proto_tree * subtree = NULL;
7244
8
    static int * const flags[] =
7245
8
    {
7246
8
        &hf_lbmc_ume_ranged_rxreq_flags_ignore,
7247
8
        NULL
7248
8
    };
7249
7250
8
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_ranged_rxreq, tvb, offset, L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T, ENC_NA);
7251
8
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_ranged_rxreq);
7252
8
    proto_tree_add_item(subtree, hf_lbmc_ume_ranged_rxreq_next_hdr, tvb, offset + O_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
7253
8
    proto_tree_add_item(subtree, hf_lbmc_ume_ranged_rxreq_hdr_len, tvb, offset + O_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
7254
8
    proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_FLAGS, hf_lbmc_ume_ranged_rxreq_flags, ett_lbmc_ume_ranged_rxreq_flags, flags, ENC_BIG_ENDIAN);
7255
8
    proto_tree_add_item(subtree, hf_lbmc_ume_ranged_rxreq_first_seqnum, tvb, offset + O_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_FIRST_SEQNUM, L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_FIRST_SEQNUM, ENC_BIG_ENDIAN);
7256
8
    proto_tree_add_item(subtree, hf_lbmc_ume_ranged_rxreq_last_seqnum, tvb, offset + O_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_LAST_SEQNUM, L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_LAST_SEQNUM, ENC_BIG_ENDIAN);
7257
8
    return (L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T);
7258
8
}
7259
7260
static int dissect_nhdr_ume_keepalive(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7261
16
{
7262
16
    proto_item * subtree_item = NULL;
7263
16
    proto_tree * subtree = NULL;
7264
16
    static int * const flags[] =
7265
16
    {
7266
16
        &hf_lbmc_ume_keepalive_flags_ignore,
7267
16
        &hf_lbmc_ume_keepalive_flags_r_flag,
7268
16
        &hf_lbmc_ume_keepalive_flags_t_flag,
7269
16
        NULL
7270
16
    };
7271
7272
16
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_keepalive, tvb, offset, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T, ENC_NA);
7273
16
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_keepalive);
7274
16
    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);
7275
16
    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);
7276
16
    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);
7277
16
    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);
7278
16
    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);
7279
16
    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);
7280
16
    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);
7281
16
    return (L_LBMC_CNTL_UME_KEEPALIVE_HDR_T);
7282
16
}
7283
7284
static int dissect_nhdr_ume_storeid(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7285
4
{
7286
4
    proto_item * subtree_item = NULL;
7287
4
    proto_tree * subtree = NULL;
7288
7289
4
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_storeid, tvb, offset, L_LBMC_CNTL_UME_STOREID_HDR_T, ENC_NA);
7290
4
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_storeid);
7291
4
    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);
7292
4
    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);
7293
4
    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);
7294
4
    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);
7295
4
    return (L_LBMC_CNTL_UME_STOREID_HDR_T);
7296
4
}
7297
7298
static int dissect_nhdr_ume_ranged_ack(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7299
21
{
7300
21
    proto_item * subtree_item = NULL;
7301
21
    proto_tree * subtree = NULL;
7302
21
    static int * const flags[] =
7303
21
    {
7304
21
        &hf_lbmc_ume_ranged_ack_flags_ignore,
7305
21
        NULL
7306
21
    };
7307
7308
21
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_ranged_ack, tvb, offset, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T, ENC_NA);
7309
21
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_ranged_ack);
7310
21
    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);
7311
21
    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);
7312
21
    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);
7313
21
    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);
7314
21
    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);
7315
21
    return (L_LBMC_CNTL_UME_RANGED_ACK_HDR_T);
7316
21
}
7317
7318
static int dissect_nhdr_ume_ack_id(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7319
11
{
7320
11
    proto_item * subtree_item = NULL;
7321
11
    proto_tree * subtree = NULL;
7322
11
    static int * const flags[] =
7323
11
    {
7324
11
        &hf_lbmc_ume_ack_id_flags_ignore,
7325
11
        NULL
7326
11
    };
7327
7328
11
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_ack_id, tvb, offset, L_LBMC_CNTL_UME_ACK_ID_HDR_T, ENC_NA);
7329
11
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_ack_id);
7330
11
    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);
7331
11
    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);
7332
11
    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);
7333
11
    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);
7334
11
    return (L_LBMC_CNTL_UME_ACK_ID_HDR_T);
7335
11
}
7336
7337
static int dissect_nhdr_ume_capability(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7338
12
{
7339
12
    proto_item * subtree_item = NULL;
7340
12
    proto_tree * subtree = NULL;
7341
12
    static int * const flags[] =
7342
12
    {
7343
12
        &hf_lbmc_ume_capability_flags_ignore,
7344
12
        &hf_lbmc_ume_capability_flags_qc_flag,
7345
12
        &hf_lbmc_ume_capability_flags_client_lifetime_flag,
7346
12
        &hf_lbmc_ume_capability_flags_ranged_rx_flag,
7347
12
        NULL
7348
12
    };
7349
7350
12
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_capability, tvb, offset, L_LBMC_CNTL_UME_CAPABILITY_HDR_T, ENC_NA);
7351
12
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_capability);
7352
12
    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);
7353
12
    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);
7354
12
    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);
7355
12
    return (L_LBMC_CNTL_UME_CAPABILITY_HDR_T);
7356
12
}
7357
7358
static int dissect_nhdr_ume_proxy_src(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7359
24
{
7360
24
    proto_item * subtree_item = NULL;
7361
24
    proto_tree * subtree = NULL;
7362
24
    static int * const flags[] =
7363
24
    {
7364
24
        &hf_lbmc_ume_proxy_src_flags_ignore,
7365
24
        &hf_lbmc_ume_proxy_src_flags_enable,
7366
24
        &hf_lbmc_ume_proxy_src_flags_compatibility,
7367
24
        NULL
7368
24
    };
7369
7370
24
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_proxy_src, tvb, offset, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T, ENC_NA);
7371
24
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_proxy_src);
7372
24
    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);
7373
24
    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);
7374
24
    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);
7375
24
    return (L_LBMC_CNTL_UME_PROXY_SRC_HDR_T);
7376
24
}
7377
7378
static int dissect_nhdr_ume_store_group(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7379
4
{
7380
4
    proto_item * subtree_item = NULL;
7381
4
    proto_tree * subtree = NULL;
7382
4
    static int * const flags[] =
7383
4
    {
7384
4
        &hf_lbmc_ume_store_group_flags_ignore,
7385
4
        NULL
7386
4
    };
7387
7388
4
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store_group, tvb, offset, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T, ENC_NA);
7389
4
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store_group);
7390
4
    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);
7391
4
    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);
7392
4
    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);
7393
4
    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);
7394
4
    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);
7395
4
    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);
7396
4
    return (L_LBMC_CNTL_UME_STORE_GROUP_HDR_T);
7397
4
}
7398
7399
static int dissect_nhdr_ume_store(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7400
48
{
7401
48
    proto_item * subtree_item = NULL;
7402
48
    proto_tree * subtree = NULL;
7403
48
    static int * const flags[] =
7404
48
    {
7405
48
        &hf_lbmc_ume_store_flags_ignore,
7406
48
        NULL
7407
48
    };
7408
7409
48
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store, tvb, offset, L_LBMC_CNTL_UME_STORE_HDR_T, ENC_NA);
7410
48
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store);
7411
48
    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);
7412
48
    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);
7413
48
    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);
7414
48
    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);
7415
48
    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);
7416
48
    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);
7417
48
    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);
7418
48
    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);
7419
48
    return (L_LBMC_CNTL_UME_STORE_HDR_T);
7420
48
}
7421
7422
static int dissect_nhdr_ume_lj_info(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7423
15
{
7424
15
    proto_item * subtree_item = NULL;
7425
15
    proto_tree * subtree = NULL;
7426
15
    static int * const flags[] =
7427
15
    {
7428
15
        &hf_lbmc_ume_lj_info_flags_ignore,
7429
15
        NULL
7430
15
    };
7431
7432
15
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_lj_info, tvb, offset, L_LBMC_CNTL_UME_LJ_INFO_HDR_T, ENC_NA);
7433
15
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_lj_info);
7434
15
    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);
7435
15
    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);
7436
15
    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);
7437
15
    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);
7438
15
    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);
7439
15
    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);
7440
15
    return (L_LBMC_CNTL_UME_LJ_INFO_HDR_T);
7441
15
}
7442
7443
static int dissect_nhdr_tsni_rec(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
7444
268
{
7445
268
    proto_item * subtree_item = NULL;
7446
268
    proto_tree * subtree = NULL;
7447
268
    proto_item * sqn_item = NULL;
7448
268
    uint32_t sqn = 0;
7449
7450
268
    subtree_item = proto_tree_add_item(tree, hf_lbmc_tsni_rec, tvb, offset, L_LBMC_CNTL_TSNI_REC_HDR_T, ENC_NA);
7451
268
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tsni_rec);
7452
268
    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);
7453
268
    sqn_item = proto_tree_add_item_ret_uint(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);
7454
268
    expert_add_info_format(pinfo, sqn_item, &ei_lbmc_analysis_tsni, "TSNI Sqn 0x%08x", sqn);
7455
268
    return (L_LBMC_CNTL_TSNI_REC_HDR_T);
7456
268
}
7457
7458
static int dissect_nhdr_tsni(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
7459
69
{
7460
69
    proto_item * subtree_item = NULL;
7461
69
    proto_tree * subtree = NULL;
7462
69
    uint8_t hdrlen = 0;
7463
69
    uint8_t hdrlen_remaining;
7464
69
    int rec_offset = 0;
7465
69
    int len_dissected = 0;
7466
7467
69
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_HDR_LEN);
7468
69
    subtree_item = proto_tree_add_item(tree, hf_lbmc_tsni, tvb, offset, (int)hdrlen, ENC_NA);
7469
69
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tsni);
7470
69
    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);
7471
69
    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);
7472
69
    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);
7473
69
    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);
7474
69
    len_dissected = L_LBMC_CNTL_TSNI_HDR_T;
7475
69
    hdrlen_remaining = hdrlen - L_LBMC_CNTL_TSNI_HDR_T;
7476
69
    rec_offset = L_LBMC_CNTL_TSNI_HDR_T;
7477
337
    while (hdrlen_remaining >= L_LBMC_CNTL_TSNI_REC_HDR_T)
7478
268
    {
7479
268
        int reclen;
7480
7481
268
        reclen = dissect_nhdr_tsni_rec(tvb, offset + rec_offset, pinfo, subtree);
7482
268
        hdrlen_remaining -= reclen;
7483
268
        rec_offset += reclen;
7484
268
        len_dissected += reclen;
7485
268
    }
7486
69
    proto_item_set_len(subtree_item, len_dissected);
7487
69
    return (len_dissected);
7488
69
}
7489
7490
static int dissect_nhdr_umq_reg_ctx(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7491
2
{
7492
2
    proto_item * subtree_item = NULL;
7493
2
    proto_tree * subtree = NULL;
7494
7495
2
    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);
7496
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_reg_ctx);
7497
2
    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);
7498
2
    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);
7499
2
    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);
7500
2
    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);
7501
2
    return (L_LBMC_CNTL_UMQ_REG_CTX_HDR_T);
7502
2
}
7503
7504
static int dissect_nhdr_umq_reg_src(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7505
2
{
7506
2
    proto_item * subtree_item = NULL;
7507
2
    proto_tree * subtree = NULL;
7508
7509
2
    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);
7510
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_reg_src);
7511
2
    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);
7512
2
    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);
7513
2
    return (L_LBMC_CNTL_UMQ_REG_SRC_HDR_T);
7514
2
}
7515
7516
static int dissect_nhdr_umq_reg_rcv(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7517
1
{
7518
1
    proto_item * subtree_item = NULL;
7519
1
    proto_tree * subtree = NULL;
7520
7521
1
    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);
7522
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_reg_rcv);
7523
1
    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);
7524
1
    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);
7525
1
    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);
7526
1
    return (L_LBMC_CNTL_UMQ_REG_RCV_HDR_T);
7527
1
}
7528
7529
static int dissect_nhdr_umq_rcv_dereg(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7530
2
{
7531
2
    proto_item * subtree_item = NULL;
7532
2
    proto_tree * subtree = NULL;
7533
7534
2
    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);
7535
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_rcv_dereg);
7536
2
    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);
7537
2
    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);
7538
2
    return (L_LBMC_CNTL_UMQ_RCV_DEREG_HDR_T);
7539
2
}
7540
7541
static int dissect_nhdr_umq_reg_ulb_rcv(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7542
1
{
7543
1
    proto_item * subtree_item = NULL;
7544
1
    proto_tree * subtree = NULL;
7545
7546
1
    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);
7547
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_reg_ulb_rcv);
7548
1
    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);
7549
1
    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);
7550
1
    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);
7551
1
    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);
7552
1
    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);
7553
1
    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);
7554
1
    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);
7555
1
    return (L_LBMC_CNTL_UMQ_REG_ULB_RCV_HDR_T);
7556
1
}
7557
7558
static int dissect_nhdr_umq_ulb_rcv_dereg(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7559
1
{
7560
1
    proto_item * subtree_item = NULL;
7561
1
    proto_tree * subtree = NULL;
7562
7563
1
    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);
7564
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_ulb_rcv_dereg);
7565
1
    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);
7566
1
    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);
7567
1
    return (L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_HDR_T);
7568
1
}
7569
7570
static int dissect_nhdr_umq_reg_observer_rcv(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7571
0
{
7572
0
    proto_item * subtree_item = NULL;
7573
0
    proto_tree * subtree = NULL;
7574
7575
0
    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);
7576
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_reg_observer_rcv);
7577
0
    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);
7578
0
    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);
7579
0
    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);
7580
0
    return (L_LBMC_CNTL_UMQ_REG_OBSERVER_RCV_HDR_T);
7581
0
}
7582
7583
static int dissect_nhdr_umq_observer_rcv_dereg(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7584
1
{
7585
1
    proto_item * subtree_item = NULL;
7586
1
    proto_tree * subtree = NULL;
7587
7588
1
    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);
7589
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_observer_rcv_dereg);
7590
1
    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);
7591
1
    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);
7592
1
    return (L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_HDR_T);
7593
1
}
7594
7595
static int dissect_nhdr_umq_reg(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
7596
36
{
7597
36
    proto_item * subtree_item = NULL;
7598
36
    proto_tree * subtree = NULL;
7599
36
    uint8_t hdrlen = 0;
7600
36
    uint8_t reg_type = 0;
7601
36
    int len_dissected = 0;
7602
36
    int len = 0;
7603
36
    proto_item * reg_type_item = NULL;
7604
36
    static int * const flags[] =
7605
36
    {
7606
36
        &hf_lbmc_umq_reg_flags_ignore,
7607
36
        &hf_lbmc_umq_reg_flags_r_flag,
7608
36
        &hf_lbmc_umq_reg_flags_t_flag,
7609
36
        &hf_lbmc_umq_reg_flags_i_flag,
7610
36
        &hf_lbmc_umq_reg_flags_msg_sel_flag,
7611
36
        NULL
7612
36
    };
7613
7614
36
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN);
7615
36
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg, tvb, offset, (int)hdrlen, ENC_NA);
7616
36
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg);
7617
36
    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);
7618
36
    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);
7619
36
    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);
7620
36
    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);
7621
36
    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);
7622
36
    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);
7623
36
    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);
7624
36
    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);
7625
7626
36
    len_dissected = L_LBMC_CNTL_UMQ_REG_HDR_T;
7627
36
    reg_type = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_REG_TYPE);
7628
36
    switch (reg_type)
7629
36
    {
7630
2
        case LBMC_UMQ_REG_CTX_TYPE:
7631
2
            len = dissect_nhdr_umq_reg_ctx(tvb, offset + len_dissected, pinfo, subtree);
7632
2
            break;
7633
2
        case LBMC_UMQ_REG_SRC_TYPE:
7634
2
            len = dissect_nhdr_umq_reg_src(tvb, offset + len_dissected, pinfo, subtree);
7635
2
            break;
7636
1
        case LBMC_UMQ_REG_RCV_TYPE:
7637
1
            len = dissect_nhdr_umq_reg_rcv(tvb, offset + len_dissected, pinfo, subtree);
7638
1
            break;
7639
2
        case LBMC_UMQ_REG_RCV_DEREG_TYPE:
7640
2
            len = dissect_nhdr_umq_rcv_dereg(tvb, offset + len_dissected, pinfo, subtree);
7641
2
            break;
7642
1
        case LBMC_UMQ_REG_ULB_RCV_TYPE:
7643
1
            len = dissect_nhdr_umq_reg_ulb_rcv(tvb, offset + len_dissected, pinfo, subtree);
7644
1
            break;
7645
1
        case LBMC_UMQ_REG_ULB_RCV_DEREG_TYPE:
7646
1
            len = dissect_nhdr_umq_ulb_rcv_dereg(tvb, offset + len_dissected, pinfo, subtree);
7647
1
            break;
7648
0
        case LBMC_UMQ_REG_OBSERVER_RCV_TYPE:
7649
0
            len = dissect_nhdr_umq_reg_observer_rcv(tvb, offset + len_dissected, pinfo, subtree);
7650
0
            break;
7651
1
        case LBMC_UMQ_REG_OBSERVER_RCV_DEREG_TYPE:
7652
1
            len = dissect_nhdr_umq_observer_rcv_dereg(tvb, offset + len_dissected, pinfo, subtree);
7653
1
            break;
7654
23
        default:
7655
23
            expert_add_info_format(pinfo, reg_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ REG type 0x%02x", reg_type);
7656
23
            len = 0;
7657
23
            break;
7658
36
    }
7659
33
    len_dissected += len;
7660
33
    proto_item_set_len(subtree_item, len_dissected);
7661
33
    return (len_dissected);
7662
36
}
7663
7664
static int dissect_nhdr_umq_reg_resp_ctx(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7665
1
{
7666
1
    proto_item * subtree_item = NULL;
7667
1
    proto_tree * subtree = NULL;
7668
7669
1
    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);
7670
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_ctx);
7671
1
    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);
7672
1
    return (L_LBMC_CNTL_UMQ_REG_RESP_CTX_HDR_T);
7673
1
}
7674
7675
static int dissect_nhdr_umq_reg_resp_ctx_ex(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7676
1
{
7677
1
    proto_item * subtree_item = NULL;
7678
1
    proto_tree * subtree = NULL;
7679
1
    static int * const flags[] =
7680
1
    {
7681
1
        &hf_lbmc_umq_reg_resp_reg_ctx_ex_flags_firstmsg,
7682
1
        NULL
7683
1
    };
7684
7685
1
    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);
7686
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_ctx_ex);
7687
1
    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);
7688
1
    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);
7689
1
    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);
7690
1
    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);
7691
1
    return (L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T);
7692
1
}
7693
7694
static int dissect_nhdr_umq_reg_resp_err(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7695
3
{
7696
3
    proto_item * subtree_item = NULL;
7697
3
    proto_tree * subtree = NULL;
7698
7699
3
    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);
7700
3
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_err);
7701
3
    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);
7702
3
    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);
7703
3
    return (L_LBMC_CNTL_UMQ_REG_RESP_ERR_HDR_T);
7704
3
}
7705
7706
static int dissect_nhdr_umq_reg_resp_src(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7707
1
{
7708
1
    proto_item * subtree_item = NULL;
7709
1
    proto_tree * subtree = NULL;
7710
7711
1
    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);
7712
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_src);
7713
1
    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);
7714
1
    return (L_LBMC_CNTL_UMQ_REG_RESP_SRC_HDR_T);
7715
1
}
7716
7717
static int dissect_nhdr_umq_reg_resp_rcv(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7718
1
{
7719
1
    proto_item * subtree_item = NULL;
7720
1
    proto_tree * subtree = NULL;
7721
7722
1
    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);
7723
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_rcv);
7724
1
    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);
7725
1
    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);
7726
1
    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);
7727
1
    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);
7728
1
    return (L_LBMC_CNTL_UMQ_REG_RESP_RCV_HDR_T);
7729
1
}
7730
7731
static int dissect_nhdr_umq_rcv_dereg_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7732
1
{
7733
1
    proto_item * subtree_item = NULL;
7734
1
    proto_tree * subtree = NULL;
7735
7736
1
    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);
7737
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_rcv_dereg);
7738
1
    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);
7739
1
    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);
7740
1
    return (L_LBMC_CNTL_UMQ_RCV_DEREG_RESP_HDR_T);
7741
1
}
7742
7743
static int dissect_nhdr_umq_reg_resp_ulb_rcv(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7744
1
{
7745
1
    proto_item * subtree_item = NULL;
7746
1
    proto_tree * subtree = NULL;
7747
7748
1
    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);
7749
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_ulb_rcv);
7750
1
    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);
7751
1
    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);
7752
1
    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);
7753
1
    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);
7754
1
    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);
7755
1
    return (L_LBMC_CNTL_UMQ_REG_RESP_ULB_RCV_HDR_T);
7756
1
}
7757
7758
static int dissect_nhdr_umq_ulb_rcv_dereg_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7759
1
{
7760
1
    proto_item * subtree_item = NULL;
7761
1
    proto_tree * subtree = NULL;
7762
7763
1
    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);
7764
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_ulb_rcv_dereg);
7765
1
    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);
7766
1
    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);
7767
1
    return (L_LBMC_CNTL_UMQ_ULB_RCV_DEREG_RESP_HDR_T);
7768
1
}
7769
7770
static int dissect_nhdr_umq_reg_resp_observer_rcv(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7771
0
{
7772
0
    proto_item * subtree_item = NULL;
7773
0
    proto_tree * subtree = NULL;
7774
7775
0
    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);
7776
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_observer_rcv);
7777
0
    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);
7778
0
    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);
7779
0
    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);
7780
0
    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);
7781
0
    return (L_LBMC_CNTL_UMQ_REG_RESP_OBSERVER_RCV_HDR_T);
7782
0
}
7783
7784
static int dissect_nhdr_umq_observer_rcv_dereg_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7785
0
{
7786
0
    proto_item * subtree_item = NULL;
7787
0
    proto_tree * subtree = NULL;
7788
7789
0
    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);
7790
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_observer_rcv_dereg);
7791
0
    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);
7792
0
    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);
7793
0
    return (L_LBMC_CNTL_UMQ_OBSERVER_RCV_DEREG_RESP_HDR_T);
7794
0
}
7795
7796
static int dissect_nhdr_umq_reg_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
7797
35
{
7798
35
    proto_item * subtree_item = NULL;
7799
35
    proto_tree * subtree = NULL;
7800
35
    uint8_t hdrlen = 0;
7801
35
    uint8_t resp_type = 0;
7802
35
    int len_dissected = 0;
7803
35
    static int * const flags[] =
7804
35
    {
7805
35
        &hf_lbmc_umq_reg_resp_flags_ignore,
7806
35
        &hf_lbmc_umq_reg_resp_flags_r_flag,
7807
35
        NULL
7808
35
    };
7809
35
    static int * const flags_err[] =
7810
35
    {
7811
35
        &hf_lbmc_umq_reg_resp_flags_ignore,
7812
35
        &hf_lbmc_umq_reg_resp_flags_r_flag,
7813
35
        &hf_lbmc_umq_reg_resp_flags_l_flag,
7814
35
        NULL
7815
35
    };
7816
35
    static int * const flags_src[] =
7817
35
    {
7818
35
        &hf_lbmc_umq_reg_resp_flags_ignore,
7819
35
        &hf_lbmc_umq_reg_resp_flags_r_flag,
7820
35
        &hf_lbmc_umq_reg_resp_flags_src_s_flag,
7821
35
        &hf_lbmc_umq_reg_resp_flags_src_d_flag,
7822
35
        NULL
7823
35
    };
7824
7825
35
    int len = 0;
7826
35
    proto_item * resp_type_item = NULL;
7827
7828
35
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_HDR_LEN);
7829
35
    resp_type = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESP_TYPE);
7830
35
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp, tvb, offset, (int)hdrlen, ENC_NA);
7831
35
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp);
7832
35
    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);
7833
35
    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);
7834
35
    switch (resp_type)
7835
35
    {
7836
1
        case LBMC_UMQ_REG_RESP_CTX_TYPE:
7837
2
        case LBMC_UMQ_REG_RESP_CTX_EX_TYPE:
7838
3
        case LBMC_UMQ_REG_RESP_RCV_TYPE:
7839
3
        case LBMC_UMQ_REG_RESP_OBSERVER_RCV_TYPE:
7840
4
        case LBMC_UMQ_REG_RESP_RCV_DEREG_TYPE:
7841
4
        case LBMC_UMQ_REG_RESP_OBSERVER_RCV_DEREG_TYPE:
7842
5
        case LBMC_UMQ_REG_RESP_ULB_RCV_TYPE:
7843
6
        case LBMC_UMQ_REG_RESP_ULB_RCV_DEREG_TYPE:
7844
30
        default:
7845
30
            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);
7846
30
            break;
7847
3
        case LBMC_UMQ_REG_RESP_ERR_TYPE:
7848
3
            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);
7849
3
            break;
7850
1
        case LBMC_UMQ_REG_RESP_SRC_TYPE:
7851
1
            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);
7852
1
            break;
7853
35
    }
7854
34
    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);
7855
34
    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);
7856
34
    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);
7857
34
    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);
7858
34
    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);
7859
34
    len_dissected = L_LBMC_CNTL_UMQ_REG_RESP_HDR_T;
7860
34
    switch (resp_type)
7861
34
    {
7862
1
        case LBMC_UMQ_REG_RESP_CTX_TYPE:
7863
1
            len = dissect_nhdr_umq_reg_resp_ctx(tvb, offset + len_dissected, pinfo, subtree);
7864
1
            break;
7865
1
        case LBMC_UMQ_REG_RESP_CTX_EX_TYPE:
7866
1
            len = dissect_nhdr_umq_reg_resp_ctx_ex(tvb, offset + len_dissected, pinfo, subtree);
7867
1
            break;
7868
3
        case LBMC_UMQ_REG_RESP_ERR_TYPE:
7869
3
            len = dissect_nhdr_umq_reg_resp_err(tvb, offset + len_dissected, pinfo, subtree);
7870
3
            break;
7871
1
        case LBMC_UMQ_REG_RESP_SRC_TYPE:
7872
1
            len = dissect_nhdr_umq_reg_resp_src(tvb, offset + len_dissected, pinfo, subtree);
7873
1
            break;
7874
1
        case LBMC_UMQ_REG_RESP_RCV_TYPE:
7875
1
            len = dissect_nhdr_umq_reg_resp_rcv(tvb, offset + len_dissected, pinfo, subtree);
7876
1
            break;
7877
1
        case LBMC_UMQ_REG_RESP_RCV_DEREG_TYPE:
7878
1
            len = dissect_nhdr_umq_rcv_dereg_resp(tvb, offset + len_dissected, pinfo, subtree);
7879
1
            break;
7880
1
        case LBMC_UMQ_REG_RESP_ULB_RCV_TYPE:
7881
1
            len = dissect_nhdr_umq_reg_resp_ulb_rcv(tvb, offset + len_dissected, pinfo, subtree);
7882
1
            break;
7883
1
        case LBMC_UMQ_REG_RESP_ULB_RCV_DEREG_TYPE:
7884
1
            len = dissect_nhdr_umq_ulb_rcv_dereg_resp(tvb, offset + len_dissected, pinfo, subtree);
7885
1
            break;
7886
0
        case LBMC_UMQ_REG_RESP_OBSERVER_RCV_TYPE:
7887
0
            len = dissect_nhdr_umq_reg_resp_observer_rcv(tvb, offset + len_dissected, pinfo, subtree);
7888
0
            break;
7889
0
        case LBMC_UMQ_REG_RESP_OBSERVER_RCV_DEREG_TYPE:
7890
0
            len = dissect_nhdr_umq_observer_rcv_dereg_resp(tvb, offset + len_dissected, pinfo, subtree);
7891
0
            break;
7892
22
        default:
7893
22
            expert_add_info_format(pinfo, resp_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ REG RESP type 0x%02x", resp_type);
7894
22
            len = 0;
7895
22
            break;
7896
34
    }
7897
31
    len_dissected += len;
7898
31
    proto_item_set_len(subtree_item, len_dissected);
7899
31
    return (len_dissected);
7900
34
}
7901
7902
static int dissect_nhdr_umq_ack_msgid(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7903
140
{
7904
140
    proto_item * subtree_item = NULL;
7905
140
    proto_tree * subtree = NULL;
7906
7907
140
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ack_msgid, tvb, offset, L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T, ENC_NA);
7908
140
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack_msgid);
7909
140
    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);
7910
140
    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);
7911
140
    return (L_LBMC_CNTL_UMQ_ACK_MSGID_HDR_T);
7912
140
}
7913
7914
static int dissect_nhdr_umq_ack_stable(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7915
1
{
7916
1
    proto_item * subtree_item = NULL;
7917
1
    proto_tree * subtree = NULL;
7918
7919
1
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ack_stable, tvb, offset, L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T, ENC_NA);
7920
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack_stable);
7921
1
    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);
7922
1
    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);
7923
1
    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);
7924
1
    return (L_LBMC_CNTL_UMQ_ACK_STABLE_HDR_T);
7925
1
}
7926
7927
static int dissect_nhdr_umq_ack_cr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7928
1
{
7929
1
    proto_item * subtree_item = NULL;
7930
1
    proto_tree * subtree = NULL;
7931
7932
1
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ack_cr, tvb, offset, L_LBMC_CNTL_UMQ_ACK_CR_HDR_T, ENC_NA);
7933
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack_cr);
7934
1
    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);
7935
1
    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);
7936
1
    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);
7937
1
    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);
7938
1
    return (L_LBMC_CNTL_UMQ_ACK_CR_HDR_T);
7939
1
}
7940
7941
static int dissect_nhdr_umq_ack_ulb_cr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
7942
0
{
7943
0
    proto_item * subtree_item = NULL;
7944
0
    proto_tree * subtree = NULL;
7945
7946
0
    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);
7947
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack_ulb_cr);
7948
0
    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);
7949
0
    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);
7950
0
    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);
7951
0
    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);
7952
0
    return (L_LBMC_CNTL_UMQ_ACK_ULB_CR_HDR_T);
7953
0
}
7954
7955
static int dissect_nhdr_umq_ack(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
7956
50
{
7957
50
    proto_item * subtree_item = NULL;
7958
50
    proto_tree * subtree = NULL;
7959
50
    uint8_t hdrlen = 0;
7960
50
    uint8_t ack_type = 0;
7961
50
    uint8_t num_ids = 0;
7962
50
    uint8_t idx;
7963
50
    int len_dissected = 0;
7964
50
    uint8_t msg_count;
7965
50
    static int * const msgs[] =
7966
50
    {
7967
50
        &hf_lbmc_umq_ack_msgs_ignore,
7968
50
        &hf_lbmc_umq_ack_msgs_t_flag,
7969
50
        &hf_lbmc_umq_ack_msgs_d_flag,
7970
50
        NULL
7971
50
    };
7972
50
    int len;
7973
50
    int packet_len = 0;
7974
50
    proto_item * ack_type_item = NULL;
7975
7976
50
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_HDR_LEN);
7977
50
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ack, tvb, offset, (int)hdrlen, ENC_NA);
7978
50
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack);
7979
50
    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);
7980
50
    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);
7981
50
    msg_count = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS);
7982
50
    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);
7983
50
    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);
7984
50
    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);
7985
50
    packet_len = tvb_reported_length_remaining(tvb, offset);
7986
50
    len_dissected = L_LBMC_CNTL_UMQ_ACK_HDR_T;
7987
50
    num_ids = msg_count & LBMC_UMQ_ACK_NUMIDS_MASK;
7988
190
    for (idx = 0; (idx < num_ids) && (len_dissected < packet_len); idx++)
7989
140
    {
7990
140
        len = dissect_nhdr_umq_ack_msgid(tvb, offset + len_dissected, pinfo, subtree);
7991
140
        len_dissected += len;
7992
140
    }
7993
50
    ack_type = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_ACK_TYPE);
7994
50
    switch (ack_type)
7995
50
    {
7996
1
        case LBMC_UMQ_ACK_STABLE_TYPE:
7997
1
            len = dissect_nhdr_umq_ack_stable(tvb, offset + len_dissected, pinfo, subtree);
7998
1
            break;
7999
1
        case LBMC_UMQ_ACK_CR_TYPE:
8000
1
            len = dissect_nhdr_umq_ack_cr(tvb, offset + len_dissected, pinfo, subtree);
8001
1
            break;
8002
0
        case LBMC_UMQ_ACK_ULB_CR_TYPE:
8003
0
            len = dissect_nhdr_umq_ack_ulb_cr(tvb, offset + len_dissected, pinfo, subtree);
8004
0
            break;
8005
42
        default:
8006
42
            expert_add_info_format(pinfo, ack_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ ACK type 0x%02x", ack_type);
8007
42
            len = 0;
8008
42
            break;
8009
50
    }
8010
44
    len_dissected += len;
8011
44
    proto_item_set_len(subtree_item, len_dissected);
8012
44
    return (len_dissected);
8013
50
}
8014
8015
static int dissect_nhdr_umq_rcr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8016
12
{
8017
12
    proto_item * subtree_item = NULL;
8018
12
    proto_tree * subtree = NULL;
8019
12
    static int * const flags[] =
8020
12
    {
8021
12
        &hf_lbmc_umq_rcr_flags_ignore,
8022
12
        &hf_lbmc_umq_rcr_flags_r_flag,
8023
12
        &hf_lbmc_umq_rcr_flags_d_flag,
8024
12
        &hf_lbmc_umq_rcr_flags_s_flag,
8025
12
        &hf_lbmc_umq_rcr_flags_eoi_flag,
8026
12
        &hf_lbmc_umq_rcr_flags_boi_flag,
8027
12
        NULL
8028
12
    };
8029
8030
12
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rcr, tvb, offset, L_LBMC_CNTL_UMQ_RCR_HDR_T, ENC_NA);
8031
12
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rcr);
8032
12
    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);
8033
12
    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);
8034
12
    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);
8035
12
    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);
8036
12
    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);
8037
12
    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);
8038
12
    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);
8039
12
    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);
8040
12
    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);
8041
12
    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);
8042
12
    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);
8043
12
    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);
8044
12
    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);
8045
12
    return (L_LBMC_CNTL_UMQ_RCR_HDR_T);
8046
12
}
8047
8048
static int dissect_nhdr_umq_ka_src(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8049
2
{
8050
2
    proto_item * subtree_item = NULL;
8051
2
    proto_tree * subtree = NULL;
8052
8053
2
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ka_src, tvb, offset, L_LBMC_CNTL_UMQ_KA_SRC_HDR_T, ENC_NA);
8054
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka_src);
8055
2
    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);
8056
2
    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);
8057
2
    return (L_LBMC_CNTL_UMQ_KA_SRC_HDR_T);
8058
2
}
8059
8060
static int dissect_nhdr_umq_ka_rcv(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8061
1
{
8062
1
    proto_item * subtree_item = NULL;
8063
1
    proto_tree * subtree = NULL;
8064
8065
1
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ka_rcv, tvb, offset, L_LBMC_CNTL_UMQ_KA_RCV_HDR_T, ENC_NA);
8066
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka_rcv);
8067
1
    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);
8068
1
    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);
8069
1
    return (L_LBMC_CNTL_UMQ_KA_RCV_HDR_T);
8070
1
}
8071
8072
static int dissect_nhdr_umq_ka_ulb_rcv(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8073
2
{
8074
2
    proto_item * subtree_item = NULL;
8075
2
    proto_tree * subtree = NULL;
8076
8077
2
    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);
8078
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka_ulb_rcv);
8079
2
    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);
8080
2
    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);
8081
2
    return (L_LBMC_CNTL_UMQ_KA_ULB_RCV_HDR_T);
8082
2
}
8083
8084
static int dissect_nhdr_umq_ka_ulb_rcv_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8085
1
{
8086
1
    proto_item * subtree_item = NULL;
8087
1
    proto_tree * subtree = NULL;
8088
8089
1
    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);
8090
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka_ulb_rcv_resp);
8091
1
    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);
8092
1
    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);
8093
1
    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);
8094
1
    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);
8095
1
    return (L_LBMC_CNTL_UMQ_KA_ULB_RCV_RESP_HDR_T);
8096
1
}
8097
8098
static int dissect_nhdr_umq_ka(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
8099
22
{
8100
22
    proto_item * subtree_item = NULL;
8101
22
    proto_tree * subtree = NULL;
8102
22
    uint8_t hdrlen = 0;
8103
22
    uint8_t type;
8104
22
    int len_dissected = 0;
8105
22
    int len;
8106
22
    proto_item * ka_type_item = NULL;
8107
22
    static int * const flags[] =
8108
22
    {
8109
22
        &hf_lbmc_cntl_umq_ka_flags_ignore,
8110
22
        &hf_lbmc_cntl_umq_ka_flags_r_flag,
8111
22
        NULL
8112
22
    };
8113
8114
22
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN);
8115
22
    subtree_item = proto_tree_add_item(tree, hf_lbmc_cntl_umq_ka, tvb, offset, (int)hdrlen, ENC_NA);
8116
22
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka);
8117
22
    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);
8118
22
    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);
8119
22
    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);
8120
22
    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);
8121
22
    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);
8122
22
    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);
8123
22
    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);
8124
22
    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);
8125
22
    len_dissected = L_LBMC_CNTL_UMQ_KA_HDR_T;
8126
22
    type = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_KA_TYPE);
8127
22
    switch (type)
8128
22
    {
8129
2
        case LBMC_UMQ_KA_SRC_TYPE:
8130
2
        case LBMC_UMQ_KA_SRC_RESP_TYPE:
8131
2
            len = dissect_nhdr_umq_ka_src(tvb, offset + len_dissected, pinfo, subtree);
8132
2
            break;
8133
0
        case LBMC_UMQ_KA_RCV_TYPE:
8134
1
        case LBMC_UMQ_KA_RCV_RESP_TYPE:
8135
1
            len = dissect_nhdr_umq_ka_rcv(tvb, offset + len_dissected, pinfo, subtree);
8136
1
            break;
8137
2
        case LBMC_UMQ_KA_ULB_RCV_TYPE:
8138
2
            len = dissect_nhdr_umq_ka_ulb_rcv(tvb, offset + len_dissected, pinfo, subtree);
8139
2
            break;
8140
1
        case LBMC_UMQ_KA_ULB_RCV_RESP_TYPE:
8141
1
            len = dissect_nhdr_umq_ka_ulb_rcv_resp(tvb, offset + len_dissected, pinfo, subtree);
8142
1
            break;
8143
1
        case LBMC_UMQ_KA_CTX_TYPE:
8144
2
        case LBMC_UMQ_KA_CTX_RESP_TYPE:
8145
2
            len = 0;
8146
2
            break;
8147
12
        default:
8148
12
            expert_add_info_format(pinfo, ka_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ KA type 0x%02x", type);
8149
12
            len = 0;
8150
12
            break;
8151
22
    }
8152
19
    len_dissected += len;
8153
19
    proto_item_set_len(subtree_item, len_dissected);
8154
19
    return (len_dissected);
8155
22
}
8156
8157
static int dissect_nhdr_umq_rxreq_regid_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8158
10
{
8159
10
    proto_item * subtree_item = NULL;
8160
10
    proto_tree * subtree = NULL;
8161
8162
10
    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);
8163
10
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_regid_resp);
8164
10
    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);
8165
10
    return (L_LBMC_CNTL_UMQ_RXREQ_REGID_RESP_HDR_T);
8166
10
}
8167
8168
static int dissect_nhdr_umq_rxreq_addr_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8169
8
{
8170
8
    proto_item * subtree_item = NULL;
8171
8
    proto_tree * subtree = NULL;
8172
8173
8
    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);
8174
8
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_addr_resp);
8175
8
    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);
8176
8
    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);
8177
8
    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);
8178
8
    return (L_LBMC_CNTL_UMQ_RXREQ_ADDR_RESP_HDR_T);
8179
8
}
8180
8181
static int dissect_nhdr_umq_rxreq_mr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8182
2
{
8183
2
    proto_item * subtree_item = NULL;
8184
2
    proto_tree * subtree = NULL;
8185
8186
2
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_mr, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T, ENC_NA);
8187
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_mr);
8188
2
    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);
8189
2
    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);
8190
2
    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);
8191
2
    return (L_LBMC_CNTL_UMQ_RXREQ_MR_HDR_T);
8192
2
}
8193
8194
static int dissect_nhdr_umq_rxreq_ulb_mr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8195
0
{
8196
0
    proto_item * subtree_item = NULL;
8197
0
    proto_tree * subtree = NULL;
8198
8199
0
    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);
8200
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_ulb_mr);
8201
0
    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);
8202
0
    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);
8203
0
    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);
8204
0
    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);
8205
0
    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);
8206
0
    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);
8207
0
    return (L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_HDR_T);
8208
0
}
8209
8210
static int dissect_nhdr_umq_rxreq_ulb_mr_abort(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8211
0
{
8212
0
    proto_item * subtree_item = NULL;
8213
0
    proto_tree * subtree = NULL;
8214
8215
0
    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);
8216
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_ulb_mr_abort);
8217
0
    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);
8218
0
    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);
8219
0
    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);
8220
0
    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);
8221
0
    return (L_LBMC_CNTL_UMQ_RXREQ_ULB_MR_ABORT_HDR_T);
8222
0
}
8223
8224
static int dissect_nhdr_umq_rxreq_qrcrr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8225
1
{
8226
1
    proto_item * subtree_item = NULL;
8227
1
    proto_tree * subtree = NULL;
8228
8229
1
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_qrcrr, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T, ENC_NA);
8230
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_qrcrr);
8231
1
    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);
8232
1
    return (L_LBMC_CNTL_UMQ_RXREQ_QRCRR_HDR_T);
8233
1
}
8234
8235
static int dissect_nhdr_umq_rxreq_trcrr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8236
0
{
8237
0
    proto_item * subtree_item = NULL;
8238
0
    proto_tree * subtree = NULL;
8239
8240
0
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq_trcrr, tvb, offset, L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T, ENC_NA);
8241
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_trcrr);
8242
0
    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);
8243
0
    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);
8244
0
    return (L_LBMC_CNTL_UMQ_RXREQ_TRCRR_HDR_T);
8245
0
}
8246
8247
static int dissect_nhdr_umq_rxreq_ulb_trcrr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8248
0
{
8249
0
    proto_item * subtree_item = NULL;
8250
0
    proto_tree * subtree = NULL;
8251
8252
0
    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);
8253
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_ulb_trcrr);
8254
0
    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);
8255
0
    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);
8256
0
    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);
8257
0
    return (L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_HDR_T);
8258
0
}
8259
8260
static int dissect_nhdr_umq_rxreq_ulb_trcrr_abort(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8261
0
{
8262
0
    proto_item * subtree_item = NULL;
8263
0
    proto_tree * subtree = NULL;
8264
8265
0
    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);
8266
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq_ulb_trcrr_abort);
8267
0
    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);
8268
0
    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);
8269
0
    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);
8270
0
    return (L_LBMC_CNTL_UMQ_RXREQ_ULB_TRCRR_ABORT_HDR_T);
8271
0
}
8272
8273
static int dissect_nhdr_umq_rxreq(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
8274
18
{
8275
18
    proto_item * subtree_item = NULL;
8276
18
    proto_tree * subtree = NULL;
8277
18
    uint8_t hdrlen = 0;
8278
18
    uint8_t type;
8279
18
    uint8_t flags_val;
8280
18
    static int * const flags[] =
8281
18
    {
8282
18
        &hf_lbmc_umq_rxreq_flags_ignore,
8283
18
        &hf_lbmc_umq_rxreq_flags_r_flag,
8284
18
        NULL
8285
18
    };
8286
18
    int len_dissected = 0;
8287
18
    int len = 0;
8288
18
    proto_item * rxreq_type_item = NULL;
8289
8290
18
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_HDR_LEN);
8291
18
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rxreq, tvb, offset, (int)hdrlen, ENC_NA);
8292
18
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq);
8293
18
    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);
8294
18
    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);
8295
18
    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);
8296
18
    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);
8297
18
    len_dissected = L_LBMC_CNTL_UMQ_RXREQ_HDR_T;
8298
18
    flags_val = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS);
8299
18
    if ((flags_val & LBMC_UMQ_RXREQ_R_FLAG) != 0)
8300
10
    {
8301
10
        len = dissect_nhdr_umq_rxreq_regid_resp(tvb, offset + len_dissected, pinfo, subtree);
8302
10
    }
8303
8
    else
8304
8
    {
8305
8
        len = dissect_nhdr_umq_rxreq_addr_resp(tvb, offset + len_dissected, pinfo, subtree);
8306
8
    }
8307
18
    len_dissected += len;
8308
18
    type = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_RXREQ_TYPE);
8309
18
    switch (type)
8310
18
    {
8311
2
        case LBMC_UMQ_RXREQ_MR_TYPE:
8312
2
            len = dissect_nhdr_umq_rxreq_mr(tvb, offset + len_dissected, pinfo, subtree);
8313
2
            break;
8314
0
        case LBMC_UMQ_RXREQ_ULB_MR_TYPE:
8315
0
            len = dissect_nhdr_umq_rxreq_ulb_mr(tvb, offset + len_dissected, pinfo, subtree);
8316
0
            break;
8317
0
        case LBMC_UMQ_RXREQ_ULB_MR_ABORT_TYPE:
8318
0
            len = dissect_nhdr_umq_rxreq_ulb_mr_abort(tvb, offset + len_dissected, pinfo, subtree);
8319
0
            break;
8320
1
        case LBMC_UMQ_RXREQ_QRCRR_TYPE:
8321
1
            len = dissect_nhdr_umq_rxreq_qrcrr(tvb, offset + len_dissected, pinfo, subtree);
8322
1
            break;
8323
0
        case LBMC_UMQ_RXREQ_TRCRR_TYPE:
8324
0
            len = dissect_nhdr_umq_rxreq_trcrr(tvb, offset + len_dissected, pinfo, subtree);
8325
0
            break;
8326
0
        case LBMC_UMQ_RXREQ_ULB_TRCRR_TYPE:
8327
0
            len = dissect_nhdr_umq_rxreq_ulb_trcrr(tvb, offset + len_dissected, pinfo, subtree);
8328
0
            break;
8329
0
        case LBMC_UMQ_RXREQ_ULB_TRCRR_ABORT_TYPE:
8330
0
            len = dissect_nhdr_umq_rxreq_ulb_trcrr_abort(tvb, offset + len_dissected, pinfo, subtree);
8331
0
            break;
8332
14
        default:
8333
14
            expert_add_info_format(pinfo, rxreq_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ RXREQ type 0x%02x", type);
8334
14
            len = 0;
8335
14
            break;
8336
18
    }
8337
17
    len_dissected += len;
8338
17
    proto_item_set_len(subtree_item, len_dissected);
8339
17
    return (len_dissected);
8340
18
}
8341
8342
static int dissect_nhdr_umq_qmgmt(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
8343
48
{
8344
48
    proto_item * subtree_item = NULL;
8345
48
    proto_tree * subtree = NULL;
8346
48
    uint8_t hdrlen = 0;
8347
48
    int len_dissected = 0;
8348
8349
48
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_QMGMT_HDR_T_HDR_LEN);
8350
48
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_qmgmt, tvb, offset, (int)hdrlen, ENC_NA);
8351
48
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_qmgmt);
8352
48
    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);
8353
48
    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);
8354
48
    len_dissected = lbmr_dissect_umq_qmgmt(tvb, (offset + L_LBMC_CNTL_UMQ_QMGMT_HDR_T) - 2, pinfo, subtree);
8355
48
    proto_item_set_len(subtree_item, len_dissected);
8356
48
    return (len_dissected);
8357
48
}
8358
8359
static int dissect_nhdr_umq_resub_req(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8360
10
{
8361
10
    proto_item * subtree_item = NULL;
8362
10
    proto_tree * subtree = NULL;
8363
10
    static int * const flags[] =
8364
10
    {
8365
10
        &hf_lbmc_umq_resub_req_flags_ignore,
8366
10
        NULL
8367
10
    };
8368
8369
10
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_resub_req, tvb, offset, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T, ENC_NA);
8370
10
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_resub_req);
8371
10
    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);
8372
10
    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);
8373
10
    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);
8374
10
    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);
8375
10
    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);
8376
10
    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);
8377
10
    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);
8378
10
    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);
8379
10
    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);
8380
10
    return (L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T);
8381
10
}
8382
8383
static int dissect_nhdr_umq_resub_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8384
9
{
8385
9
    proto_item * subtree_item = NULL;
8386
9
    proto_tree * subtree = NULL;
8387
9
    static int * const flags[] =
8388
9
    {
8389
9
        &hf_lbmc_umq_resub_resp_flags_ignore,
8390
9
        NULL
8391
9
    };
8392
8393
9
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_resub_resp, tvb, offset, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T, ENC_NA);
8394
9
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_resub_resp);
8395
9
    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);
8396
9
    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);
8397
9
    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);
8398
9
    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);
8399
9
    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);
8400
9
    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);
8401
9
    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);
8402
9
    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);
8403
9
    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);
8404
9
    return (L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T);
8405
9
}
8406
8407
static int dissect_nhdr_topic_interest(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8408
11
{
8409
11
    proto_item * subtree_item = NULL;
8410
11
    proto_tree * subtree = NULL;
8411
11
    static int * const flags[] =
8412
11
    {
8413
11
        &hf_lbmc_topic_interest_flags_ignore,
8414
11
        &hf_lbmc_topic_interest_flags_cancel,
8415
11
        &hf_lbmc_topic_interest_flags_refresh,
8416
11
        NULL
8417
11
    };
8418
8419
11
    subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_interest, tvb, offset, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T, ENC_NA);
8420
11
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_interest);
8421
11
    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);
8422
11
    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);
8423
11
    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);
8424
11
    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);
8425
11
    return (L_LBMC_CNTL_TOPIC_INTEREST_HDR_T);
8426
11
}
8427
8428
static int dissect_nhdr_pattern_interest(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8429
15
{
8430
15
    proto_item * subtree_item = NULL;
8431
15
    proto_tree * subtree = NULL;
8432
15
    static int * const flags[] =
8433
15
    {
8434
15
        &hf_lbmc_pattern_interest_flags_ignore,
8435
15
        &hf_lbmc_pattern_interest_flags_cancel,
8436
15
        &hf_lbmc_pattern_interest_flags_refresh,
8437
15
        NULL
8438
15
    };
8439
8440
15
    subtree_item = proto_tree_add_item(tree, hf_lbmc_pattern_interest, tvb, offset, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T, ENC_NA);
8441
15
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_pattern_interest);
8442
15
    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);
8443
15
    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);
8444
15
    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);
8445
15
    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);
8446
15
    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);
8447
15
    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);
8448
15
    return (L_LBMC_CNTL_PATTERN_INTEREST_HDR_T);
8449
15
}
8450
8451
static int dissect_nhdr_advertisement(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8452
13
{
8453
13
    proto_item * subtree_item = NULL;
8454
13
    proto_tree * subtree = NULL;
8455
13
    static int * const flags[] =
8456
13
    {
8457
13
        &hf_lbmc_advertisement_flags_ignore,
8458
13
        &hf_lbmc_advertisement_flags_eos,
8459
13
        &hf_lbmc_advertisement_flags_pattern,
8460
13
        &hf_lbmc_advertisement_flags_change,
8461
13
        &hf_lbmc_advertisement_flags_ctxinst,
8462
13
        NULL
8463
13
    };
8464
13
    static int * const ad_flags[] =
8465
13
    {
8466
13
        &hf_lbmc_advertisement_ad_flags_lj,
8467
13
        &hf_lbmc_advertisement_ad_flags_ume,
8468
13
        &hf_lbmc_advertisement_ad_flags_acktosrc,
8469
13
        &hf_lbmc_advertisement_ad_flags_queue,
8470
13
        &hf_lbmc_advertisement_ad_flags_ulb,
8471
13
        NULL
8472
13
    };
8473
8474
13
    subtree_item = proto_tree_add_item(tree, hf_lbmc_advertisement, tvb, offset, L_LBMC_CNTL_ADVERTISEMENT_HDR_T, ENC_NA);
8475
13
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_advertisement);
8476
13
    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);
8477
13
    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);
8478
13
    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);
8479
13
    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);
8480
13
    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);
8481
13
    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);
8482
13
    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);
8483
13
    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);
8484
13
    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);
8485
13
    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);
8486
13
    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);
8487
13
    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);
8488
13
    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);
8489
13
    return (L_LBMC_CNTL_ADVERTISEMENT_HDR_T);
8490
13
}
8491
8492
static int dissect_nhdr_storename(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
8493
5
{
8494
5
    proto_item * subtree_item = NULL;
8495
5
    proto_tree * subtree = NULL;
8496
5
    uint8_t hdrlen = 0;
8497
5
    static int * const flags[] =
8498
5
    {
8499
5
        &hf_lbmc_ume_storename_flags_ignore,
8500
5
        NULL
8501
5
    };
8502
5
    int len_dissected = 0;
8503
5
    int namelen = 0;
8504
5
    proto_item * hdrlen_item = NULL;
8505
8506
5
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_UME_STORENAME_HDR_T_HDR_LEN);
8507
5
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_storename, tvb, offset, (int)hdrlen, ENC_NA);
8508
5
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_storename);
8509
5
    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);
8510
5
    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);
8511
5
    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);
8512
5
    len_dissected = L_LBMC_BASIC_HDR_T;
8513
5
    namelen = (int) hdrlen - len_dissected;
8514
5
    if (namelen > 0)
8515
4
    {
8516
4
        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);
8517
4
        len_dissected += namelen;
8518
4
    }
8519
1
    else
8520
1
    {
8521
1
        expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
8522
1
    }
8523
5
    proto_item_set_len(subtree_item, len_dissected);
8524
5
    return (len_dissected);
8525
5
}
8526
8527
static int dissect_nhdr_umq_ulb_rcr(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8528
5
{
8529
5
    proto_item * subtree_item = NULL;
8530
5
    proto_tree * subtree = NULL;
8531
5
    static int * const flags[] =
8532
5
    {
8533
5
        &hf_lbmc_umq_ulb_rcr_flags_ignore,
8534
5
        &hf_lbmc_umq_ulb_rcr_flags_r_flag,
8535
5
        &hf_lbmc_umq_ulb_rcr_flags_d_flag,
8536
5
        &hf_lbmc_umq_ulb_rcr_flags_eoi_flag,
8537
5
        &hf_lbmc_umq_ulb_rcr_flags_boi_flag,
8538
5
        NULL
8539
5
    };
8540
8541
5
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ulb_rcr, tvb, offset, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T, ENC_NA);
8542
5
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ulb_rcr);
8543
5
    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);
8544
5
    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);
8545
5
    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);
8546
5
    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);
8547
5
    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);
8548
5
    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);
8549
5
    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);
8550
5
    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);
8551
5
    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);
8552
5
    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);
8553
5
    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);
8554
5
    return (L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T);
8555
5
}
8556
8557
static int dissect_nhdr_umq_lf(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8558
10
{
8559
10
    proto_item * subtree_item = NULL;
8560
10
    proto_tree * subtree = NULL;
8561
10
    static int * const flags[] =
8562
10
    {
8563
10
        &hf_lbmc_umq_lf_flags_ignore,
8564
10
        NULL
8565
10
    };
8566
8567
10
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_lf, tvb, offset, L_LBMC_CNTL_UMQ_LF_HDR_T, ENC_NA);
8568
10
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_lf);
8569
10
    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);
8570
10
    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);
8571
10
    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);
8572
10
    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);
8573
10
    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);
8574
10
    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);
8575
10
    return (L_LBMC_CNTL_UMQ_LF_HDR_T);
8576
10
}
8577
8578
static int dissect_nhdr_ctxinfo(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
8579
15
{
8580
15
    proto_item * subtree_item = NULL;
8581
15
    proto_tree * subtree = NULL;
8582
15
    uint8_t hdrlen = 0;
8583
15
    uint16_t flags_val = 0;
8584
15
    static int * const flags[] =
8585
15
    {
8586
15
        &hf_lbmc_ctxinfo_flags_ignore,
8587
15
        &hf_lbmc_ctxinfo_flags_query,
8588
15
        &hf_lbmc_ctxinfo_flags_addr,
8589
15
        &hf_lbmc_ctxinfo_flags_ctxinst,
8590
15
        &hf_lbmc_ctxinfo_flags_name,
8591
15
        &hf_lbmc_ctxinfo_flags_tnwgsrc,
8592
15
        &hf_lbmc_ctxinfo_flags_tnwgrcv,
8593
15
        &hf_lbmc_ctxinfo_flags_proxy,
8594
15
        NULL
8595
15
    };
8596
15
    int len_dissected = 0;
8597
15
    proto_item * hdrlen_item = NULL;
8598
8599
15
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_HDR_LEN);
8600
15
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ctxinfo, tvb, offset, (int)hdrlen, ENC_NA);
8601
15
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ctxinfo);
8602
15
    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);
8603
15
    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);
8604
15
    flags_val = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS);
8605
15
    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);
8606
15
    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);
8607
15
    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);
8608
15
    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);
8609
15
    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);
8610
15
    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);
8611
15
    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);
8612
15
    len_dissected = L_LBMC_CNTL_CTXINFO_HDR_T;
8613
15
    if ((flags_val & LBMC_CTXINFO_NAME_FLAG) != 0)
8614
7
    {
8615
7
        int namelen = (int) hdrlen - len_dissected;
8616
7
        if (namelen > 0)
8617
7
        {
8618
7
            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);
8619
7
            len_dissected += namelen;
8620
7
        }
8621
0
        else
8622
0
        {
8623
0
            expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
8624
0
        }
8625
7
    }
8626
15
    proto_item_set_len(subtree_item, len_dissected);
8627
15
    return (len_dissected);
8628
15
}
8629
8630
static int dissect_nhdr_ume_pser(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8631
14
{
8632
14
    proto_item * subtree_item = NULL;
8633
14
    proto_tree * subtree = NULL;
8634
14
    static int * const flags[] =
8635
14
    {
8636
14
        &hf_lbmc_ume_pser_flags_ignore,
8637
14
        &hf_lbmc_ume_pser_flags_source_ctxinst,
8638
14
        &hf_lbmc_ume_pser_flags_store_ctxinst,
8639
14
        &hf_lbmc_ume_pser_flags_reelect,
8640
14
        NULL
8641
14
    };
8642
8643
14
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_pser, tvb, offset, L_LBMC_CNTL_UME_PSER_HDR_T, ENC_NA);
8644
14
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_pser);
8645
14
    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);
8646
14
    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);
8647
14
    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);
8648
14
    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);
8649
14
    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);
8650
14
    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);
8651
14
    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);
8652
14
    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);
8653
14
    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);
8654
14
    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);
8655
14
    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);
8656
14
    return (L_LBMC_CNTL_UME_PSER_HDR_T);
8657
14
}
8658
8659
static int dissect_nhdr_domain(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8660
12
{
8661
12
    proto_item * subtree_item = NULL;
8662
12
    proto_tree * subtree = NULL;
8663
12
    static int * const flags[] =
8664
12
    {
8665
12
        &hf_lbmc_domain_flags_ignore,
8666
12
        &hf_lbmc_domain_flags_active,
8667
12
        NULL
8668
12
    };
8669
8670
12
    subtree_item = proto_tree_add_item(tree, hf_lbmc_domain, tvb, offset, L_LBMC_DOMAIN_HDR_T, ENC_NA);
8671
12
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_domain);
8672
12
    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);
8673
12
    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);
8674
12
    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);
8675
12
    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);
8676
12
    return (L_LBMC_DOMAIN_HDR_T);
8677
12
}
8678
8679
static int dissect_nhdr_tnwg_capabilities(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8680
21
{
8681
21
    proto_item * subtree_item = NULL;
8682
21
    proto_tree * subtree = NULL;
8683
21
    static int * const flags[] =
8684
21
    {
8685
21
        &hf_lbmc_tnwg_capabilities_flags_ignore,
8686
21
        &hf_lbmc_tnwg_capabilities_flags_version,
8687
21
        NULL
8688
21
    };
8689
21
    static int * const cap1[] =
8690
21
    {
8691
21
        &hf_lbmc_tnwg_capabilities_capabilities1_ume,
8692
21
        &hf_lbmc_tnwg_capabilities_capabilities1_umq,
8693
21
        NULL
8694
21
    };
8695
21
    static int * const cap3[] =
8696
21
    {
8697
21
        &hf_lbmc_tnwg_capabilities_capabilities3_pcre,
8698
21
        &hf_lbmc_tnwg_capabilities_capabilities3_regex,
8699
21
        NULL
8700
21
    };
8701
8702
21
    subtree_item = proto_tree_add_item(tree, hf_lbmc_tnwg_capabilities, tvb, offset, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T, ENC_NA);
8703
21
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tnwg_capabilities);
8704
21
    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);
8705
21
    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);
8706
21
    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);
8707
21
    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);
8708
21
    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);
8709
21
    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);
8710
21
    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);
8711
21
    return (L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T);
8712
21
}
8713
8714
static int dissect_nhdr_patidx(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8715
19
{
8716
19
    proto_item * subtree_item = NULL;
8717
19
    proto_tree * subtree = NULL;
8718
19
    static int * const flags[] =
8719
19
    {
8720
19
        &hf_lbmc_patidx_flags_ignore,
8721
19
        NULL
8722
19
    };
8723
8724
19
    subtree_item = proto_tree_add_item(tree, hf_lbmc_patidx, tvb, offset, L_LBMC_PATIDX_HDR_T, ENC_NA);
8725
19
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_patidx);
8726
19
    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);
8727
19
    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);
8728
19
    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);
8729
19
    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);
8730
19
    return (L_LBMC_PATIDX_HDR_T);
8731
19
}
8732
8733
static int dissect_nhdr_ume_client_lifetime(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8734
13
{
8735
13
    proto_item * subtree_item = NULL;
8736
13
    proto_tree * subtree = NULL;
8737
13
    static int * const flags[] =
8738
13
    {
8739
13
        &hf_lbmc_ume_client_lifetime_flags_ignore,
8740
13
        NULL
8741
13
    };
8742
8743
13
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_client_lifetime, tvb, offset, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T, ENC_NA);
8744
13
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_client_lifetime);
8745
13
    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);
8746
13
    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);
8747
13
    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);
8748
13
    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);
8749
13
    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);
8750
13
    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);
8751
13
    return (L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T);
8752
13
}
8753
8754
static int dissect_nhdr_ume_sid(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
8755
11
{
8756
11
    proto_item * subtree_item = NULL;
8757
11
    proto_tree * subtree = NULL;
8758
11
    static int * const flags[] =
8759
11
    {
8760
11
        &hf_lbmc_ume_sid_flags_ignore,
8761
11
        NULL
8762
11
    };
8763
8764
11
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_sid, tvb, offset, L_LBMC_CNTL_UME_SID_HDR_T, ENC_NA);
8765
11
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_sid);
8766
11
    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);
8767
11
    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);
8768
11
    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);
8769
11
    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);
8770
11
    return (L_LBMC_CNTL_UME_SID_HDR_T);
8771
11
}
8772
8773
static int dissect_nhdr_umq_idx_cmd(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
8774
28
{
8775
28
    proto_item * subtree_item = NULL;
8776
28
    proto_tree * subtree = NULL;
8777
28
    uint8_t hdrlen = 0;
8778
28
    static int * const flags[] =
8779
28
    {
8780
28
        &hf_lbmc_umq_idx_cmd_flags_ignore,
8781
28
        NULL
8782
28
    };
8783
28
    uint8_t cmd_type = 0;
8784
28
    proto_item * opt_subtree_item = NULL;
8785
28
    proto_tree * opt_subtree = NULL;
8786
28
    uint32_t opt_flags = 0;
8787
28
    static int * const release_assign_flags[] =
8788
28
    {
8789
28
        &hf_lbmc_umq_idx_cmd_release_assign_flags_numeric,
8790
28
        NULL
8791
28
    };
8792
28
    static int * const ulb_release_assign_flags[] =
8793
28
    {
8794
28
        &hf_lbmc_umq_idx_cmd_ulb_release_assign_flags_numeric,
8795
28
        NULL
8796
28
    };
8797
28
    static int * const reserve_assign_flags[] =
8798
28
    {
8799
28
        &hf_lbmc_umq_idx_cmd_reserve_assign_flags_numeric,
8800
28
        NULL
8801
28
    };
8802
28
    static int * const ulb_reserve_assign_flags[] =
8803
28
    {
8804
28
        &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags_numeric,
8805
28
        NULL
8806
28
    };
8807
28
    uint8_t index_len = 0;
8808
28
    int len_dissected = 0;
8809
28
    proto_item * cmd_type_item = NULL;
8810
8811
28
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_HDR_LEN);
8812
28
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_idx_cmd, tvb, offset, (int)hdrlen, ENC_NA);
8813
28
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_idx_cmd);
8814
28
    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);
8815
28
    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);
8816
28
    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);
8817
28
    cmd_type_item = proto_tree_add_item_ret_uint8(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, &cmd_type);
8818
28
    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);
8819
28
    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);
8820
28
    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);
8821
28
    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);
8822
28
    len_dissected = L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T;
8823
28
    offset += L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T;
8824
28
    switch (cmd_type)
8825
28
    {
8826
1
        case LBMC_UMQ_IDX_CMD_RCV_STOP_IDX_ASSIGN_TYPE:
8827
1
            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);
8828
1
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_stop_assign);
8829
1
            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);
8830
1
            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);
8831
1
            len_dissected += L_LBMC_CNTL_UMQ_RCV_STOP_IDX_ASSIGN_HDR_T;
8832
1
            break;
8833
4
        case LBMC_UMQ_IDX_CMD_RCV_START_IDX_ASSIGN_TYPE:
8834
4
            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);
8835
4
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_start_assign);
8836
4
            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);
8837
4
            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);
8838
4
            len_dissected += L_LBMC_CNTL_UMQ_RCV_START_IDX_ASSIGN_HDR_T;
8839
4
            break;
8840
0
        case LBMC_UMQ_IDX_CMD_ULB_RCV_STOP_IDX_ASSIGN_TYPE:
8841
0
            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);
8842
0
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_ulb_stop_assign);
8843
0
            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);
8844
0
            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);
8845
0
            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);
8846
0
            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);
8847
0
            len_dissected += L_LBMC_CNTL_UMQ_ULB_RCV_STOP_IDX_ASSIGN_HDR_T;
8848
0
            break;
8849
1
        case LBMC_UMQ_IDX_CMD_ULB_RCV_START_IDX_ASSIGN_TYPE:
8850
1
            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);
8851
1
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_ulb_start_assign);
8852
1
            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);
8853
1
            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);
8854
1
            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);
8855
1
            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);
8856
1
            len_dissected += L_LBMC_CNTL_UMQ_ULB_RCV_START_IDX_ASSIGN_HDR_T;
8857
1
            break;
8858
0
        case LBMC_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_TYPE:
8859
0
            index_len = hdrlen - (L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T + L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T);
8860
0
            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);
8861
0
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_release_assign);
8862
0
            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);
8863
0
            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);
8864
0
            opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS);
8865
0
            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);
8866
0
            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);
8867
0
            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);
8868
0
            if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
8869
0
            {
8870
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, (int)index_len, ENC_BIG_ENDIAN);
8871
0
            }
8872
0
            else
8873
0
            {
8874
0
                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, (int)index_len, ENC_ASCII);
8875
0
            }
8876
0
            len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T + index_len;
8877
0
            break;
8878
2
        case LBMC_UMQ_IDX_CMD_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE:
8879
2
            index_len = hdrlen - (L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T + L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T);
8880
2
            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);
8881
2
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_ulb_release_assign);
8882
2
            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);
8883
2
            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);
8884
2
            opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS);
8885
2
            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);
8886
2
            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);
8887
2
            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);
8888
2
            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);
8889
2
            if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
8890
1
            {
8891
1
                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, (int)index_len, ENC_BIG_ENDIAN);
8892
1
            }
8893
1
            else
8894
1
            {
8895
1
                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, (int)index_len, ENC_ASCII);
8896
1
            }
8897
2
            len_dissected += L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T + index_len;
8898
2
            break;
8899
1
        case LBMC_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_TYPE:
8900
1
            index_len = hdrlen - (L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T);
8901
1
            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);
8902
1
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_reserve_assign);
8903
1
            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);
8904
1
            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);
8905
1
            opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS);
8906
1
            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);
8907
1
            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);
8908
1
            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);
8909
1
            if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
8910
0
            {
8911
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, (int)index_len, ENC_BIG_ENDIAN);
8912
0
            }
8913
1
            else
8914
1
            {
8915
1
                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, (int)index_len, ENC_ASCII);
8916
1
            }
8917
1
            len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len;
8918
1
            break;
8919
2
        case LBMC_UMQ_IDX_CMD_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE:
8920
2
            index_len = hdrlen - (L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T);
8921
2
            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);
8922
2
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_ulb_reserve_assign);
8923
2
            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);
8924
2
            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);
8925
2
            opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS);
8926
2
            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);
8927
2
            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);
8928
2
            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);
8929
2
            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);
8930
2
            if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
8931
1
            {
8932
1
                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, (int)index_len, ENC_BIG_ENDIAN);
8933
1
            }
8934
1
            else
8935
1
            {
8936
1
                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, (int)index_len, ENC_ASCII);
8937
1
            }
8938
2
            len_dissected += L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len;
8939
2
            break;
8940
15
        default:
8941
15
            expert_add_info_format(pinfo, cmd_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ IDX CMD type 0x%02x", cmd_type);
8942
15
            break;
8943
28
    }
8944
24
    proto_item_set_len(subtree_item, len_dissected);
8945
24
    return (len_dissected);
8946
28
}
8947
8948
static int dissect_nhdr_umq_idx_cmd_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
8949
17
{
8950
17
    proto_item * subtree_item = NULL;
8951
17
    proto_tree * subtree = NULL;
8952
17
    uint8_t hdrlen = 0;
8953
17
    static int * const flags[] =
8954
17
    {
8955
17
        &hf_lbmc_umq_idx_cmd_resp_flags_ignore,
8956
17
        &hf_lbmc_umq_idx_cmd_resp_flags_ulb,
8957
17
        NULL
8958
17
    };
8959
17
    static int * const reserve_assign_flags[] =
8960
17
    {
8961
17
        &hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags_numeric,
8962
17
        NULL
8963
17
    };
8964
17
    static int * const ulb_reserve_assign_flags[] =
8965
17
    {
8966
17
        &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags_numeric,
8967
17
        NULL
8968
17
    };
8969
17
    uint8_t resp_type = 0;
8970
17
    proto_item * opt_subtree_item = NULL;
8971
17
    proto_tree * opt_subtree = NULL;
8972
17
    int string_len = 0;
8973
17
    int len_dissected = 0;
8974
17
    uint32_t opt_flags = 0;
8975
17
    uint8_t index_len = 0;
8976
17
    proto_item * resp_type_item = NULL;
8977
8978
17
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_HDR_LEN);
8979
17
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_idx_cmd_resp, tvb, offset, (int)hdrlen, ENC_NA);
8980
17
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_idx_cmd_resp);
8981
17
    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);
8982
17
    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);
8983
17
    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);
8984
17
    resp_type_item = proto_tree_add_item_ret_uint8(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, &resp_type);
8985
17
    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);
8986
17
    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);
8987
17
    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);
8988
17
    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);
8989
17
    len_dissected = L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T;
8990
17
    offset += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T;
8991
17
    switch (resp_type)
8992
17
    {
8993
1
        case LBMC_UMQ_IDX_CMD_RESP_ERR_TYPE:
8994
1
            string_len = hdrlen - (L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T + L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T);
8995
1
            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);
8996
1
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_err);
8997
1
            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);
8998
1
            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);
8999
1
            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);
9000
1
            len_dissected += (L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ERR_HDR_T + string_len);
9001
1
            break;
9002
2
        case LBMC_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_TYPE:
9003
2
            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);
9004
2
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_stop_assign);
9005
2
            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);
9006
2
            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);
9007
2
            len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_STOP_IDX_ASSIGN_HDR_T;
9008
2
            break;
9009
1
        case LBMC_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_TYPE:
9010
1
            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);
9011
1
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_start_assign);
9012
1
            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);
9013
1
            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);
9014
1
            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);
9015
1
            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);
9016
1
            len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_START_IDX_ASSIGN_HDR_T;
9017
1
            break;
9018
1
        case LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_TYPE:
9019
1
            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);
9020
1
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_ulb_stop_assign);
9021
1
            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);
9022
1
            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);
9023
1
            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);
9024
1
            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);
9025
1
            len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_STOP_IDX_ASSIGN_HDR_T;
9026
1
            break;
9027
1
        case LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_TYPE:
9028
1
            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);
9029
1
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_ulb_start_assign);
9030
1
            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);
9031
1
            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);
9032
1
            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);
9033
1
            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);
9034
1
            len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_START_IDX_ASSIGN_HDR_T;
9035
1
            break;
9036
0
        case LBMC_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_TYPE:
9037
0
            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);
9038
0
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_release_assign);
9039
0
            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);
9040
0
            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);
9041
0
            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);
9042
0
            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);
9043
0
            len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RELEASE_IDX_ASSIGN_HDR_T;
9044
0
            break;
9045
1
        case LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_TYPE:
9046
1
            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);
9047
1
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_ulb_release_assign);
9048
1
            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);
9049
1
            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);
9050
1
            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);
9051
1
            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);
9052
1
            len_dissected += L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RELEASE_IDX_ASSIGN_HDR_T;
9053
1
            break;
9054
0
        case LBMC_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_TYPE:
9055
0
            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);
9056
0
            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);
9057
0
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_reserve_assign);
9058
0
            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);
9059
0
            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);
9060
0
            opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS);
9061
0
            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);
9062
0
            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);
9063
0
            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);
9064
0
            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);
9065
0
            if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
9066
0
            {
9067
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, (int)index_len, ENC_BIG_ENDIAN);
9068
0
            }
9069
0
            else
9070
0
            {
9071
0
                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, (int)index_len, ENC_ASCII);
9072
0
            }
9073
0
            len_dissected += (L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len);
9074
0
            break;
9075
0
        case LBMC_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_TYPE:
9076
0
            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);
9077
0
            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);
9078
0
            opt_subtree = proto_item_add_subtree(opt_subtree_item, ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign);
9079
0
            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);
9080
0
            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);
9081
0
            opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS);
9082
0
            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);
9083
0
            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);
9084
0
            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);
9085
0
            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);
9086
0
            if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0)
9087
0
            {
9088
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, (int)index_len, ENC_BIG_ENDIAN);
9089
0
            }
9090
0
            else
9091
0
            {
9092
0
                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, (int)index_len, ENC_ASCII);
9093
0
            }
9094
0
            len_dissected += (L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T + index_len);
9095
0
            break;
9096
10
        default:
9097
10
            expert_add_info_format(pinfo, resp_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ IDX CMD RESP type 0x%02x", resp_type);
9098
10
            break;
9099
17
    }
9100
15
    proto_item_set_len(subtree_item, len_dissected);
9101
15
    return (len_dissected);
9102
17
}
9103
9104
static int dissect_nhdr_odomain(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9105
14
{
9106
14
    proto_item * subtree_item = NULL;
9107
14
    proto_tree * subtree = NULL;
9108
14
    static int * const flags[] =
9109
14
    {
9110
14
        &hf_lbmc_odomain_flags_ignore,
9111
14
        NULL
9112
14
    };
9113
9114
14
    subtree_item = proto_tree_add_item(tree, hf_lbmc_odomain, tvb, offset, L_LBMC_ODOMAIN_HDR_T, ENC_NA);
9115
14
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_odomain);
9116
14
    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);
9117
14
    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);
9118
14
    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);
9119
14
    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);
9120
14
    return (L_LBMC_ODOMAIN_HDR_T);
9121
14
}
9122
9123
static int dissect_nhdr_stream(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_stream_info_t * info)
9124
28
{
9125
28
    proto_item * subtree_item = NULL;
9126
28
    proto_tree * subtree = NULL;
9127
28
    static int * const flags[] =
9128
28
    {
9129
28
        &hf_lbmc_stream_flags_ignore,
9130
28
        NULL
9131
28
    };
9132
9133
28
    subtree_item = proto_tree_add_item(tree, hf_lbmc_stream, tvb, offset, L_LBMC_STREAM_HDR_T, ENC_NA);
9134
28
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_stream);
9135
28
    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);
9136
28
    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);
9137
28
    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);
9138
28
    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);
9139
28
    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);
9140
28
    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);
9141
28
    if (info != NULL)
9142
28
    {
9143
28
        info->set = true;
9144
28
        info->stream_id = tvb_get_ntohl(tvb, offset + O_LBMC_STREAM_HDR_T_STREAM_ID);
9145
28
        info->sqn = tvb_get_ntohl(tvb, offset + O_LBMC_STREAM_HDR_T_SQN);
9146
28
        tvb_memcpy(tvb, (void *)&(info->ctxinst), offset + O_LBMC_STREAM_HDR_T_CTXINST, L_LBMC_STREAM_HDR_T_CTXINST);
9147
28
    }
9148
28
    return (L_LBMC_STREAM_HDR_T);
9149
28
}
9150
9151
static int dissect_nhdr_topic_md_interest(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9152
8
{
9153
8
    proto_item * subtree_item = NULL;
9154
8
    proto_tree * subtree = NULL;
9155
8
    uint8_t hdrlen = 0;
9156
8
    static int * const flags[] =
9157
8
    {
9158
8
        &hf_lbmc_topic_md_interest_flags_ignore,
9159
8
        &hf_lbmc_topic_md_interest_flags_cancel,
9160
8
        &hf_lbmc_topic_md_interest_flags_refresh,
9161
8
        NULL
9162
8
    };
9163
8
    uint16_t dom_count = 0;
9164
8
    int idx = 0;
9165
8
    int len_dissected = 0;
9166
9167
8
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_HDR_LEN);
9168
8
    subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_md_interest, tvb, offset, (int)hdrlen, ENC_NA);
9169
8
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_md_interest);
9170
8
    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);
9171
8
    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);
9172
8
    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);
9173
8
    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);
9174
8
    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);
9175
8
    len_dissected = L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T;
9176
8
    dom_count = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_DOMAIN_COUNT);
9177
8
    offset += L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T;
9178
104
    for (idx = 0; idx < dom_count; ++idx)
9179
96
    {
9180
96
        proto_tree_add_item(subtree, hf_lbmc_topic_md_interest_domain_id, tvb, offset, (int)sizeof(lbm_uint32_t), ENC_BIG_ENDIAN);
9181
96
        offset += (int)sizeof(lbm_uint32_t);
9182
96
        len_dissected += (int)sizeof(lbm_uint32_t);
9183
96
    }
9184
8
    proto_item_set_len(subtree_item, len_dissected);
9185
8
    return (len_dissected);
9186
8
}
9187
9188
static int dissect_nhdr_pattern_md_interest(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9189
7
{
9190
7
    proto_item * subtree_item = NULL;
9191
7
    proto_tree * subtree = NULL;
9192
7
    uint8_t hdrlen = 0;
9193
7
    static int * const flags[] =
9194
7
    {
9195
7
        &hf_lbmc_pattern_md_interest_flags_ignore,
9196
7
        &hf_lbmc_pattern_md_interest_flags_cancel,
9197
7
        &hf_lbmc_pattern_md_interest_flags_refresh,
9198
7
        NULL
9199
7
    };
9200
7
    uint16_t dom_count = 0;
9201
7
    int idx = 0;
9202
7
    int len_dissected = 0;
9203
9204
7
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_HDR_LEN);
9205
7
    subtree_item = proto_tree_add_item(tree, hf_lbmc_pattern_md_interest, tvb, offset, (int)hdrlen, ENC_NA);
9206
7
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_pattern_md_interest);
9207
7
    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);
9208
7
    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);
9209
7
    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);
9210
7
    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);
9211
7
    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);
9212
7
    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);
9213
7
    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);
9214
7
    len_dissected = L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T;
9215
7
    dom_count = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_DOMAIN_COUNT);
9216
7
    offset += L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T;
9217
97
    for (idx = 0; idx < dom_count; ++idx)
9218
90
    {
9219
90
        proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_domain_id, tvb, offset, (int)sizeof(lbm_uint32_t), ENC_BIG_ENDIAN);
9220
90
        offset += (int)sizeof(lbm_uint32_t);
9221
90
        len_dissected += (int)sizeof(lbm_uint32_t);
9222
90
    }
9223
7
    proto_item_set_len(subtree_item, len_dissected);
9224
7
    return (len_dissected);
9225
7
}
9226
9227
static int dissect_nhdr_lji_req(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9228
7
{
9229
7
    proto_item * subtree_item = NULL;
9230
7
    proto_tree * subtree = NULL;
9231
7
    static int * const flags[] =
9232
7
    {
9233
7
        &hf_lbmc_lji_req_flags_ignore,
9234
7
        &hf_lbmc_lji_req_flags_l_flag,
9235
7
        &hf_lbmc_lji_req_flags_m_flag,
9236
7
        &hf_lbmc_lji_req_flags_o_flag,
9237
7
        NULL
9238
7
    };
9239
9240
7
    subtree_item = proto_tree_add_item(tree, hf_lbmc_lji_req, tvb, offset, L_LBMC_CNTL_LJI_REQ_HDR_T, ENC_NA);
9241
7
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_lji_req);
9242
7
    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);
9243
7
    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);
9244
7
    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);
9245
7
    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);
9246
7
    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);
9247
7
    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);
9248
7
    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);
9249
7
    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);
9250
7
    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);
9251
7
    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);
9252
7
    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);
9253
7
    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);
9254
7
    return (L_LBMC_CNTL_LJI_REQ_HDR_T);
9255
7
}
9256
9257
static int dissect_nhdr_tnwg_ka(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9258
3
{
9259
3
    proto_item * subtree_item = NULL;
9260
3
    proto_tree * subtree = NULL;
9261
3
    static int * const flags[] =
9262
3
    {
9263
3
        &hf_lbmc_tnwg_ka_flags_ignore,
9264
3
        &hf_lbmc_tnwg_ka_flags_q_flag,
9265
3
        &hf_lbmc_tnwg_ka_flags_r_flag,
9266
3
        NULL
9267
3
    };
9268
9269
3
    subtree_item = proto_tree_add_item(tree, hf_lbmc_tnwg_ka, tvb, offset, L_LBMC_CNTL_TNWG_KA_HDR_T, ENC_NA);
9270
3
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tnwg_ka);
9271
3
    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);
9272
3
    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);
9273
3
    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);
9274
3
    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);
9275
3
    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);
9276
3
    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);
9277
3
    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);
9278
3
    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);
9279
3
    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);
9280
3
    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);
9281
3
    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);
9282
3
    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);
9283
3
    return (L_LBMC_CNTL_TNWG_KA_HDR_T);
9284
3
}
9285
9286
static int dissect_nhdr_ume_receiver_keepalive(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9287
8
{
9288
8
    proto_item * subtree_item = NULL;
9289
8
    proto_tree * subtree = NULL;
9290
8
    static int * const flags[] =
9291
8
    {
9292
8
        &hf_lbmc_ume_receiver_keepalive_flags_ignore,
9293
8
        NULL
9294
8
    };
9295
9296
8
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_receiver_keepalive, tvb, offset, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T, ENC_NA);
9297
8
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_receiver_keepalive);
9298
8
    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);
9299
8
    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);
9300
8
    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);
9301
8
    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);
9302
8
    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);
9303
8
    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);
9304
8
    return (L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T);
9305
8
}
9306
9307
static int dissect_nhdr_umq_ctx_queue_topic_list(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9308
1
{
9309
1
    proto_item * subtree_item = NULL;
9310
1
    proto_tree * subtree = NULL;
9311
9312
1
    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);
9313
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_topic_list);
9314
1
    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);
9315
1
    return (L_LBMC_CNTL_UMQ_CTX_QUEUE_TOPIC_LIST_HDR_T);
9316
1
}
9317
9318
static int dissect_nhdr_umq_rcv_msg_retrieve_entry(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9319
8
{
9320
8
    proto_item * subtree_item = NULL;
9321
8
    proto_tree * subtree = NULL;
9322
9323
8
    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);
9324
8
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_msg_retrieve_entry);
9325
8
    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);
9326
8
    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);
9327
8
    return (L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_ENTRY_HDR_T);
9328
8
}
9329
9330
static int dissect_nhdr_umq_rcv_msg_retrieve(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
9331
2
{
9332
2
    proto_item * subtree_item = NULL;
9333
2
    proto_tree * subtree = NULL;
9334
2
    int len;
9335
2
    int dissected_len = 0;
9336
2
    uint8_t num_msgids;
9337
2
    uint8_t idx;
9338
9339
2
    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);
9340
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_msg_retrieve);
9341
2
    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);
9342
2
    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);
9343
2
    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);
9344
2
    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);
9345
2
    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);
9346
9347
2
    dissected_len = L_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T;
9348
2
    num_msgids = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGIDS);
9349
10
    for (idx = 0; idx < num_msgids; ++idx)
9350
8
    {
9351
8
        len = dissect_nhdr_umq_rcv_msg_retrieve_entry(tvb, offset + dissected_len, pinfo, subtree);
9352
8
        dissected_len += len;
9353
8
    }
9354
2
    proto_item_set_len(subtree_item, dissected_len);
9355
2
    return (dissected_len);
9356
2
}
9357
9358
static int dissect_nhdr_umq_rcv_msg_list(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9359
0
{
9360
0
    proto_item * subtree_item = NULL;
9361
0
    proto_tree * subtree = NULL;
9362
9363
0
    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);
9364
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_msg_list);
9365
0
    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);
9366
0
    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);
9367
0
    return (L_LBMC_CNTL_UMQ_RCV_MSG_LIST_HDR_T);
9368
0
}
9369
9370
static int dissect_nhdr_umq_cmd(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
9371
13
{
9372
13
    proto_item * subtree_item = NULL;
9373
13
    proto_tree * subtree = NULL;
9374
13
    uint8_t hdrlen = 0;
9375
13
    static int * const flags[] =
9376
13
    {
9377
13
        &hf_lbmc_umq_cmd_flags_ignore,
9378
13
        NULL
9379
13
    };
9380
13
    int len_dissected = 0;
9381
13
    uint8_t cmd_type = 0;
9382
13
    proto_item * cmd_type_item = NULL;
9383
9384
13
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_HDR_LEN);
9385
13
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd, tvb, offset, (int)hdrlen, ENC_NA);
9386
13
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd);
9387
13
    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);
9388
13
    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);
9389
13
    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);
9390
13
    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);
9391
13
    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);
9392
13
    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);
9393
13
    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);
9394
13
    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);
9395
13
    len_dissected = L_LBMC_CNTL_UMQ_CMD_HDR_T;
9396
13
    cmd_type = tvb_get_uint8(tvb, O_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_TYPE);
9397
13
    switch (cmd_type)
9398
13
    {
9399
1
        case LBMC_UMQ_CMD_TYPE_TOPIC_LIST:
9400
1
            len_dissected += dissect_nhdr_umq_ctx_queue_topic_list(tvb, offset + len_dissected, pinfo, subtree);
9401
1
            break;
9402
2
        case LBMC_UMQ_CMD_TYPE_RCV_MSG_RETRIEVE:
9403
2
            len_dissected += dissect_nhdr_umq_rcv_msg_retrieve(tvb, offset + len_dissected, pinfo, subtree);
9404
2
            break;
9405
0
        case LBMC_UMQ_CMD_TYPE_RCV_MSG_LIST:
9406
0
            len_dissected += dissect_nhdr_umq_rcv_msg_list(tvb, offset + len_dissected, pinfo, subtree);
9407
0
            break;
9408
10
        default:
9409
10
            expert_add_info_format(pinfo, cmd_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ CMD cmd_type 0x%02x", cmd_type);
9410
10
            break;
9411
13
    }
9412
11
    proto_item_set_len(subtree_item, len_dissected);
9413
11
    return (len_dissected);
9414
13
}
9415
9416
static int dissect_nhdr_umq_cmd_resp_rcv_msg_retrieve(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9417
1
{
9418
1
    proto_item * subtree_item = NULL;
9419
1
    proto_tree * subtree = NULL;
9420
9421
1
    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);
9422
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_msg_retrieve);
9423
1
    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);
9424
1
    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);
9425
1
    return (L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T);
9426
1
}
9427
9428
static int dissect_nhdr_umq_cmd_resp_rcv_xmsg_retrieve(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9429
3
{
9430
3
    proto_item * subtree_item = NULL;
9431
3
    proto_tree * subtree = NULL;
9432
3
    int len_dissected;
9433
3
    int num_msgs;
9434
3
    int entry_offset;
9435
3
    proto_item * entry_item = NULL;
9436
3
    proto_tree * entry_tree = NULL;
9437
3
    int idx;
9438
9439
3
    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);
9440
3
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_xmsg_retrieve);
9441
3
    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);
9442
3
    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);
9443
3
    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);
9444
3
    len_dissected = L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T;
9445
3
    entry_offset = offset + len_dissected;
9446
3
    num_msgs = (int)tvb_get_uint8(tvb, offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_HDR_T_NUM_MSGS);
9447
10
    for (idx = 0; idx < num_msgs; ++idx)
9448
7
    {
9449
7
        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);
9450
7
        entry_tree = proto_item_add_subtree(entry_item, ett_lbmc_umq_cmd_resp_xmsg_retrieve_entry);
9451
7
        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);
9452
7
        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);
9453
7
        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);
9454
7
        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);
9455
7
        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);
9456
7
        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);
9457
7
        entry_offset += L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T;
9458
7
        len_dissected += L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_RETRIEVE_ENTRY_HDR_T;
9459
7
    }
9460
3
    proto_item_set_len(subtree_item, len_dissected);
9461
3
    return (len_dissected);
9462
3
}
9463
9464
static int dissect_nhdr_umq_cmd_resp_rcv_msg_list(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9465
1
{
9466
1
    proto_item * subtree_item = NULL;
9467
1
    proto_tree * subtree = NULL;
9468
9469
1
    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);
9470
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_msg_list);
9471
1
    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);
9472
1
    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);
9473
1
    return (L_LBMC_CNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T);
9474
1
}
9475
9476
static int dissect_nhdr_umq_cmd_resp_rcv_xmsg_list(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9477
1
{
9478
1
    proto_item * subtree_item = NULL;
9479
1
    proto_tree * subtree = NULL;
9480
1
    int len_dissected = 0;
9481
1
    uint64_t num_msgs = 0;
9482
1
    int entry_offset = 0;
9483
1
    proto_item * entry_item = NULL;
9484
1
    proto_tree * entry_tree = NULL;
9485
1
    uint64_t idx;
9486
9487
1
    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);
9488
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_xmsg_list);
9489
1
    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);
9490
1
    len_dissected = L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T;
9491
1
    entry_offset = offset + len_dissected;
9492
1
    num_msgs = tvb_get_ntoh64(tvb, offset + O_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_HDR_T_NUM_MSGS);
9493
12
    for (idx = 0; idx < num_msgs; ++idx)
9494
11
    {
9495
11
        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);
9496
11
        entry_tree = proto_item_add_subtree(entry_item, ett_lbmc_umq_cmd_resp_xmsg_list_entry);
9497
11
        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);
9498
11
        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);
9499
11
        entry_offset += L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T;
9500
11
        len_dissected += L_LBMC_XCNTL_UMQ_CMD_RESP_RCV_MSG_LIST_MSG_ENTRY_HDR_T;
9501
11
    }
9502
1
    proto_item_set_len(subtree_item, len_dissected);
9503
1
    return (len_dissected);
9504
1
}
9505
9506
static int dissect_nhdr_umq_cmd_resp_ctx_topic_list_appset_entry(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9507
34
{
9508
34
    proto_item * subtree_item = NULL;
9509
34
    proto_tree * subtree = NULL;
9510
34
    int len_dissected = 0;
9511
34
    uint8_t appset_name_len;
9512
34
    uint16_t num_receiver_type_ids;
9513
34
    uint16_t idx;
9514
34
    int receiver_type_id_offset;
9515
9516
34
    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);
9517
34
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry);
9518
34
    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);
9519
34
    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);
9520
34
    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);
9521
34
    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);
9522
34
    len_dissected = L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T;
9523
34
    appset_name_len = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_APPSET_ENTRY_HDR_T_APPSET_NAME_LEN);
9524
34
    len_dissected += (int)appset_name_len;
9525
34
    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);
9526
34
    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);
9527
34
    if (num_receiver_type_ids > 0)
9528
9
    {
9529
9
        receiver_type_id_offset = offset + len_dissected;
9530
126
        for (idx = 0; idx < num_receiver_type_ids; ++idx)
9531
117
        {
9532
117
            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);
9533
117
            len_dissected += (int)sizeof(lbm_uint32_t);
9534
117
            receiver_type_id_offset += (int)sizeof(lbm_uint32_t);
9535
117
        }
9536
9
    }
9537
34
    proto_item_set_len(subtree_item, len_dissected);
9538
34
    return (len_dissected);
9539
34
}
9540
9541
static int dissect_nhdr_umq_cmd_resp_ctx_topic_list_topic_entry(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
9542
28
{
9543
28
    proto_item * subtree_item = NULL;
9544
28
    proto_tree * subtree = NULL;
9545
28
    int len_dissected = 0;
9546
28
    uint8_t topic_len;
9547
28
    uint16_t num_appsets;
9548
28
    uint16_t idx;
9549
28
    int appset_offset;
9550
28
    int len;
9551
9552
28
    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);
9553
28
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_topic_list_topic_entry);
9554
28
    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);
9555
28
    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);
9556
28
    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);
9557
28
    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);
9558
28
    len_dissected = L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T;
9559
28
    topic_len = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_TOPIC_LEN);
9560
28
    len_dissected += (int)topic_len;
9561
28
    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);
9562
28
    num_appsets = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_TOPIC_ENTRY_HDR_T_NUM_APPSETS);
9563
28
    if (num_appsets > 0)
9564
11
    {
9565
11
        appset_offset = offset + len_dissected;
9566
45
        for (idx = 0; idx < num_appsets; ++idx)
9567
34
        {
9568
34
            len = dissect_nhdr_umq_cmd_resp_ctx_topic_list_appset_entry(tvb, appset_offset, pinfo, subtree);
9569
34
            appset_offset += len;
9570
34
            len_dissected += len;
9571
34
        }
9572
11
    }
9573
28
    proto_item_set_len(subtree_item, len_dissected);
9574
28
    return (len_dissected);
9575
28
}
9576
9577
static int dissect_nhdr_umq_cmd_resp_ctx_topic_list(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
9578
13
{
9579
13
    proto_item * subtree_item = NULL;
9580
13
    proto_tree * subtree = NULL;
9581
13
    int len_dissected = 0;
9582
13
    int len;
9583
13
    uint32_t num_topics;
9584
13
    uint32_t idx;
9585
9586
13
    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);
9587
13
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_topic_list);
9588
13
    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);
9589
13
    len_dissected = L_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T;
9590
13
    num_topics = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_CTX_TOPIC_LIST_HDR_T_NUM_TOPICS);
9591
41
    for (idx = 0; idx < num_topics; ++idx)
9592
28
    {
9593
28
        len = dissect_nhdr_umq_cmd_resp_ctx_topic_list_topic_entry(tvb, offset + len_dissected, pinfo, subtree);
9594
28
        len_dissected += len;
9595
28
    }
9596
13
    proto_item_set_len(subtree_item, len_dissected);
9597
13
    return (len_dissected);
9598
13
}
9599
9600
static int dissect_nhdr_umq_cmd_resp_err(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9601
2
{
9602
2
    proto_item * subtree_item = NULL;
9603
2
    proto_tree * subtree = NULL;
9604
2
    int len_dissected = 0;
9605
2
    int errmsg_len;
9606
9607
2
    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);
9608
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp_err);
9609
2
    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);
9610
2
    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);
9611
2
    len_dissected = L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T;
9612
2
    errmsg_len = tvb_reported_length_remaining(tvb, offset + L_LBMC_CNTL_UMQ_CMD_RESP_ERR_HDR_T);
9613
2
    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);
9614
2
    len_dissected += errmsg_len;
9615
2
    proto_item_set_len(subtree_item, len_dissected);
9616
2
    return (len_dissected);
9617
2
}
9618
9619
static int dissect_nhdr_umq_cmd_resp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree, bool data_msg)
9620
40
{
9621
40
    proto_item * subtree_item = NULL;
9622
40
    proto_tree * subtree = NULL;
9623
40
    uint8_t hdrlen = 0;
9624
40
    static int * const flags[] =
9625
40
    {
9626
40
        &hf_lbmc_umq_cmd_resp_flags_ignore,
9627
40
        NULL
9628
40
    };
9629
40
    int len_dissected = 0;
9630
40
    int len;
9631
40
    uint8_t resp_type;
9632
40
    proto_item * resp_type_item = NULL;
9633
9634
40
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_HDR_LEN);
9635
40
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_cmd_resp, tvb, offset, (int)hdrlen, ENC_NA);
9636
40
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp);
9637
40
    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);
9638
40
    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);
9639
40
    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);
9640
40
    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);
9641
40
    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);
9642
40
    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);
9643
40
    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);
9644
40
    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);
9645
40
    len_dissected = L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T;
9646
40
    resp_type = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_RESP_TYPE);
9647
40
    if (tvb_reported_length_remaining(tvb, offset + L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T) > 0)
9648
40
    {
9649
40
        switch (resp_type)
9650
40
        {
9651
13
            case LBMC_UMQ_CMD_RESP_TYPE_CTX_TOPIC_LIST:
9652
13
                len = dissect_nhdr_umq_cmd_resp_ctx_topic_list(tvb, len_dissected, pinfo, subtree);
9653
13
                break;
9654
4
            case LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_RETRIEVE:
9655
4
                if (data_msg)
9656
3
                {
9657
3
                    len = dissect_nhdr_umq_cmd_resp_rcv_xmsg_retrieve(tvb, len_dissected, pinfo, subtree);
9658
3
                }
9659
1
                else
9660
1
                {
9661
1
                    len = dissect_nhdr_umq_cmd_resp_rcv_msg_retrieve(tvb, len_dissected, pinfo, subtree);
9662
1
                }
9663
4
                break;
9664
2
            case LBMC_UMQ_CMD_RESP_TYPE_RCV_MSG_LIST:
9665
2
                if (data_msg)
9666
1
                {
9667
1
                    len = dissect_nhdr_umq_cmd_resp_rcv_xmsg_list(tvb, len_dissected, pinfo, subtree);
9668
1
                }
9669
1
                else
9670
1
                {
9671
1
                    len = dissect_nhdr_umq_cmd_resp_rcv_msg_list(tvb, len_dissected, pinfo, subtree);
9672
1
                }
9673
2
                break;
9674
2
            case LBMC_UMQ_CMD_RESP_TYPE_ERROR:
9675
2
                len = dissect_nhdr_umq_cmd_resp_err(tvb, len_dissected, pinfo, subtree);
9676
2
                break;
9677
19
            default:
9678
19
                expert_add_info_format(pinfo, resp_type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC UMQ CMD_RESP cmd_type 0x%02x", resp_type);
9679
19
                len = 0;
9680
19
                break;
9681
40
        }
9682
40
    }
9683
0
    else
9684
0
    {
9685
0
        len = 0;
9686
0
    }
9687
23
    len_dissected += len;
9688
23
    proto_item_set_len(subtree_item, len_dissected);
9689
23
    return (len_dissected);
9690
40
}
9691
9692
static int dissect_nhdr_sri_req(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9693
10
{
9694
10
    proto_item * subtree_item = NULL;
9695
10
    proto_tree * subtree = NULL;
9696
10
    static int * const flags[] =
9697
10
    {
9698
10
        &hf_lbmc_sri_req_flags_ignore,
9699
10
        NULL
9700
10
    };
9701
9702
10
    subtree_item = proto_tree_add_item(tree, hf_lbmc_sri_req, tvb, offset, L_LBMC_CNTL_SRI_REQ_HDR_T, ENC_NA);
9703
10
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_sri_req);
9704
10
    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);
9705
10
    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);
9706
10
    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);
9707
10
    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);
9708
10
    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);
9709
10
    return (L_LBMC_CNTL_SRI_REQ_HDR_T);
9710
10
}
9711
9712
static int dissect_nhdr_ume_store_domain(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9713
10
{
9714
10
    proto_item * subtree_item = NULL;
9715
10
    proto_tree * subtree = NULL;
9716
10
    static int * const flags[] =
9717
10
    {
9718
10
        &hf_lbmc_ume_store_domain_flags_ignore,
9719
10
        NULL
9720
10
    };
9721
9722
10
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store_domain, tvb, offset, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T, ENC_NA);
9723
10
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store_domain);
9724
10
    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);
9725
10
    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);
9726
10
    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);
9727
10
    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);
9728
10
    return (L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T);
9729
10
}
9730
9731
static int dissect_nhdr_sri(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9732
12
{
9733
12
    proto_item * subtree_item = NULL;
9734
12
    proto_tree * subtree = NULL;
9735
12
    static int * const flags[] =
9736
12
    {
9737
12
        &hf_lbmc_sri_flags_ignore,
9738
12
        &hf_lbmc_sri_flags_acktosrc,
9739
12
        &hf_lbmc_sri_flags_initial_sqn_known,
9740
12
        NULL
9741
12
    };
9742
9743
12
    subtree_item = proto_tree_add_item(tree, hf_lbmc_sri, tvb, offset, L_LBMC_CNTL_SRI_HDR_T, ENC_NA);
9744
12
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_sri);
9745
12
    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);
9746
12
    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);
9747
12
    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);
9748
12
    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);
9749
12
    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);
9750
12
    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);
9751
12
    return (L_LBMC_CNTL_SRI_HDR_T);
9752
12
}
9753
9754
static int dissect_nhdr_route_info(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9755
9
{
9756
9
    proto_item * subtree_item = NULL;
9757
9
    proto_tree * subtree = NULL;
9758
9
    static int * const flags[] =
9759
9
    {
9760
9
        &hf_lbmc_route_info_flags_ignore,
9761
9
        NULL
9762
9
    };
9763
9764
9
    subtree_item = proto_tree_add_item(tree, hf_lbmc_route_info, tvb, offset, L_LBMC_CNTL_ROUTE_INFO_HDR_T, ENC_NA);
9765
9
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_route_info);
9766
9
    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);
9767
9
    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);
9768
9
    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);
9769
9
    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);
9770
9
    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);
9771
9
    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);
9772
9
    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);
9773
9
    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);
9774
9
    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);
9775
9
    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);
9776
9
    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);
9777
9
    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);
9778
9
    return (L_LBMC_CNTL_ROUTE_INFO_HDR_T);
9779
9
}
9780
9781
static int dissect_nhdr_route_info_neighbor(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9782
11
{
9783
11
    proto_item * subtree_item = NULL;
9784
11
    proto_tree * subtree = NULL;
9785
11
    static int * const flags[] =
9786
11
    {
9787
11
        &hf_lbmc_route_info_neighbor_flags_ignore,
9788
11
        NULL
9789
11
    };
9790
9791
11
    subtree_item = proto_tree_add_item(tree, hf_lbmc_route_info_neighbor, tvb, offset, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T, ENC_NA);
9792
11
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_route_info_neighbor);
9793
11
    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);
9794
11
    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);
9795
11
    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);
9796
11
    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);
9797
11
    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);
9798
11
    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);
9799
11
    return (L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T);
9800
11
}
9801
9802
static int dissect_nhdr_route_info_nbr_ext(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
9803
10
{
9804
10
    proto_item * subtree_item = NULL;
9805
10
    proto_tree * subtree = NULL;
9806
10
    uint8_t hdrlen = 0;
9807
10
    static int * const flags[] =
9808
10
    {
9809
10
        &hf_lbmc_route_info_nbr_ext_flags_ignore,
9810
10
        NULL
9811
10
    };
9812
10
    int len_dissected = 0;
9813
10
    int groups_len = 0;
9814
10
    int num_groups = 0;
9815
10
    int idx;
9816
10
    proto_item * hdrlen_item = NULL;
9817
9818
10
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_HDR_LEN);
9819
10
    subtree_item = proto_tree_add_item(tree, hf_lbmc_route_info_nbr_ext, tvb, offset, (int)hdrlen, ENC_NA);
9820
10
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_route_info_nbr_ext);
9821
10
    proto_tree_add_item(subtree, hf_lbmc_route_info_nbr_ext_next_hdr, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_NEXT_HDR, L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
9822
10
    hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_route_info_nbr_ext_hdr_len, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_HDR_LEN, L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
9823
10
    proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_FLAGS, hf_lbmc_route_info_nbr_ext_flags, ett_lbmc_route_info_nbr_ext_flags, flags, ENC_BIG_ENDIAN);
9824
10
    proto_tree_add_item(subtree, hf_lbmc_route_info_nbr_ext_node_id, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_NODE_ID, L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_NODE_ID, ENC_BIG_ENDIAN);
9825
10
    len_dissected = L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T;
9826
10
    groups_len = (int) hdrlen - len_dissected;
9827
10
    if (groups_len >= 0 && (groups_len % L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_GROUP_SZ) == 0)
9828
7
    {
9829
7
        num_groups = groups_len / L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_GROUP_SZ;
9830
139
        for (idx = 0; idx < num_groups; idx++)
9831
132
        {
9832
132
            proto_tree_add_item(subtree, hf_lbmc_route_info_nbr_ext_group, tvb, offset + len_dissected + (idx * L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_GROUP_SZ), L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_GROUP_SZ, ENC_BIG_ENDIAN);
9833
132
        }
9834
7
        len_dissected += groups_len;
9835
7
    }
9836
3
    else
9837
3
    {
9838
3
        expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
9839
3
    }
9840
10
    proto_item_set_len(subtree_item, len_dissected);
9841
10
    return (len_dissected);
9842
10
}
9843
9844
static int dissect_nhdr_gateway_name(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
9845
10
{
9846
10
    proto_item * subtree_item = NULL;
9847
10
    proto_tree * subtree = NULL;
9848
10
    uint8_t hdrlen = 0;
9849
10
    static int * const flags[] =
9850
10
    {
9851
10
        &hf_lbmc_gateway_name_flags_ignore,
9852
10
        NULL
9853
10
    };
9854
10
    int len_dissected = 0;
9855
10
    int namelen = 0;
9856
10
    proto_item * hdrlen_item = NULL;
9857
9858
10
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_HDR_LEN);
9859
10
    subtree_item = proto_tree_add_item(tree, hf_lbmc_gateway_name, tvb, offset, (int)hdrlen, ENC_NA);
9860
10
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_gateway_name);
9861
10
    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);
9862
10
    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);
9863
10
    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);
9864
10
    len_dissected = L_LBMC_BASIC_HDR_T;
9865
10
    namelen = (int) hdrlen - len_dissected;
9866
10
    if (namelen > 0)
9867
9
    {
9868
9
        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);
9869
9
        len_dissected += namelen;
9870
9
    }
9871
1
    else
9872
1
    {
9873
1
        expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
9874
1
    }
9875
10
    proto_item_set_len(subtree_item, len_dissected);
9876
10
    return (len_dissected);
9877
10
}
9878
9879
static int dissect_nhdr_auth_request(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9880
2
{
9881
2
    proto_item * subtree_item = NULL;
9882
2
    proto_tree * subtree = NULL;
9883
2
    uint8_t hdrlen = 0;
9884
2
    static int * const flags[] =
9885
2
    {
9886
2
        &hf_lbmc_auth_request_flags_ignore,
9887
2
        NULL
9888
2
    };
9889
2
    int len_dissected = 0;
9890
2
    uint8_t user_len;
9891
2
    int data_offset;
9892
9893
2
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_HDR_LEN);
9894
2
    subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_request, tvb, offset, (int)hdrlen, ENC_NA);
9895
2
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_request);
9896
2
    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);
9897
2
    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);
9898
2
    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);
9899
2
    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);
9900
2
    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);
9901
2
    len_dissected = L_LBMC_CNTL_AUTH_REQUEST_HDR_T;
9902
2
    data_offset = offset + len_dissected;
9903
2
    user_len = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_USER_LEN);
9904
2
    if (user_len > 0)
9905
1
    {
9906
1
        proto_tree_add_item(subtree, hf_lbmc_auth_request_user_name, tvb, data_offset, (int)user_len, ENC_ASCII);
9907
1
        len_dissected += (int)user_len;
9908
1
    }
9909
2
    proto_item_set_len(subtree_item, len_dissected);
9910
2
    return (len_dissected);
9911
2
}
9912
9913
static int dissect_nhdr_auth_challenge(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9914
1
{
9915
1
    proto_item * subtree_item = NULL;
9916
1
    proto_tree * subtree = NULL;
9917
1
    uint8_t hdrlen = 0;
9918
1
    static int * const flags[] =
9919
1
    {
9920
1
        &hf_lbmc_auth_challenge_flags_ignore,
9921
1
        NULL
9922
1
    };
9923
1
    int len_dissected = 0;
9924
1
    uint8_t mod_len;
9925
1
    uint8_t gen_len;
9926
1
    uint8_t salt_len;
9927
1
    uint8_t pubkey_len;
9928
1
    int data_offset;
9929
9930
1
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_HDR_LEN);
9931
1
    subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_challenge, tvb, offset, (int)hdrlen, ENC_NA);
9932
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_challenge);
9933
1
    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);
9934
1
    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);
9935
1
    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);
9936
1
    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);
9937
1
    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);
9938
1
    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);
9939
1
    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);
9940
1
    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);
9941
1
    len_dissected = L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T;
9942
1
    data_offset = offset + len_dissected;
9943
1
    mod_len = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_MOD_LEN);
9944
1
    if (mod_len > 0)
9945
1
    {
9946
1
        proto_tree_add_item(subtree, hf_lbmc_auth_challenge_mod, tvb, data_offset, (int)mod_len, ENC_NA);
9947
1
        len_dissected += (int)mod_len;
9948
1
        data_offset += (int)mod_len;
9949
1
    }
9950
1
    gen_len = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_GEN_LEN);
9951
1
    if (gen_len > 0)
9952
0
    {
9953
0
        proto_tree_add_item(subtree, hf_lbmc_auth_challenge_gen, tvb, data_offset, (int)gen_len, ENC_NA);
9954
0
        len_dissected += (int)gen_len;
9955
0
        data_offset += (int)gen_len;
9956
0
    }
9957
1
    salt_len = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_SALT_LEN);
9958
1
    if (salt_len > 0)
9959
0
    {
9960
0
        proto_tree_add_item(subtree, hf_lbmc_auth_challenge_salt, tvb, data_offset, (int)salt_len, ENC_NA);
9961
0
        len_dissected += (int)salt_len;
9962
0
        data_offset += (int)salt_len;
9963
0
    }
9964
1
    pubkey_len = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_PUBKEY_LEN);
9965
1
    if (pubkey_len > 0)
9966
0
    {
9967
0
        proto_tree_add_item(subtree, hf_lbmc_auth_challenge_pubkey, tvb, data_offset, (int)pubkey_len, ENC_NA);
9968
0
        len_dissected += (int)pubkey_len;
9969
0
    }
9970
1
    proto_item_set_len(subtree_item, len_dissected);
9971
1
    return (len_dissected);
9972
1
}
9973
9974
static int dissect_nhdr_auth_challenge_rsp(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
9975
1
{
9976
1
    proto_item * subtree_item = NULL;
9977
1
    proto_tree * subtree = NULL;
9978
1
    uint8_t hdrlen = 0;
9979
1
    static int * const flags[] =
9980
1
    {
9981
1
        &hf_lbmc_auth_challenge_rsp_flags_ignore,
9982
1
        NULL
9983
1
    };
9984
1
    int len_dissected = 0;
9985
1
    uint8_t pubkey_len;
9986
1
    uint8_t evidence_len;
9987
1
    int data_offset;
9988
9989
1
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_HDR_LEN);
9990
1
    subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_challenge_rsp, tvb, offset, (int)hdrlen, ENC_NA);
9991
1
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_challenge_rsp);
9992
1
    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);
9993
1
    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);
9994
1
    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);
9995
1
    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);
9996
1
    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);
9997
1
    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);
9998
1
    len_dissected = L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T;
9999
1
    data_offset = offset + len_dissected;
10000
1
    pubkey_len = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_PUBKEY_LEN);
10001
1
    if (pubkey_len > 0)
10002
0
    {
10003
0
        proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_pubkey, tvb, data_offset, (int)pubkey_len, ENC_NA);
10004
0
        len_dissected += (int)pubkey_len;
10005
0
        data_offset += (int)pubkey_len;
10006
0
    }
10007
1
    evidence_len = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_EVIDENCE_LEN);
10008
1
    if (evidence_len > 0)
10009
1
    {
10010
1
        proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_evidence, tvb, data_offset, (int)evidence_len, ENC_NA);
10011
1
        len_dissected += (int)evidence_len;
10012
1
    }
10013
1
    proto_item_set_len(subtree_item, len_dissected);
10014
1
    return (len_dissected);
10015
1
}
10016
10017
static int dissect_nhdr_auth_result(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
10018
0
{
10019
0
    proto_item * subtree_item = NULL;
10020
0
    proto_tree * subtree = NULL;
10021
0
    static int * const flags[] =
10022
0
    {
10023
0
        &hf_lbmc_auth_result_flags_ignore,
10024
0
        NULL
10025
0
    };
10026
10027
0
    subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_result, tvb, offset, L_LBMC_CNTL_AUTH_RESULT_HDR_T, ENC_NA);
10028
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_result);
10029
0
    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);
10030
0
    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);
10031
0
    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);
10032
0
    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);
10033
0
    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);
10034
0
    return (L_LBMC_CNTL_AUTH_RESULT_HDR_T);
10035
0
}
10036
10037
static int dissect_nhdr_auth_unknown(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
10038
15
{
10039
15
    proto_item * subtree_item = NULL;
10040
15
    proto_tree * subtree = NULL;
10041
15
    uint8_t hdrlen = 0;
10042
15
    proto_item * opid_item = NULL;
10043
15
    uint8_t opid;
10044
15
    int len_dissected = 0;
10045
15
    int datalen = 0;
10046
15
    proto_item * hdrlen_item = NULL;
10047
10048
15
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_AUTH_GENERIC_HDR_T_HDR_LEN);
10049
15
    subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_unknown, tvb, offset, (int) hdrlen, ENC_NA);
10050
15
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_unknown);
10051
15
    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);
10052
15
    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);
10053
15
    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);
10054
15
    opid_item = proto_tree_add_item_ret_uint8(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);
10055
15
    expert_add_info_format(pinfo, opid_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC AUTH OPID 0x%02x", opid);
10056
15
    len_dissected = L_LBMC_CNTL_AUTH_GENERIC_HDR_T;
10057
15
    datalen = (int) hdrlen - len_dissected;
10058
15
    if (datalen > 0)
10059
15
    {
10060
15
        proto_tree_add_item(subtree, hf_lbmc_auth_unknown_data, tvb, offset + L_LBMC_CNTL_AUTH_GENERIC_HDR_T, datalen, ENC_NA);
10061
15
        len_dissected += datalen;
10062
15
    }
10063
0
    else
10064
0
    {
10065
0
        expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
10066
0
    }
10067
15
    proto_item_set_len(subtree_item, len_dissected);
10068
15
    return (len_dissected);
10069
15
}
10070
10071
static int dissect_nhdr_hmac(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
10072
5
{
10073
5
    proto_item * subtree_item = NULL;
10074
5
    proto_tree * subtree = NULL;
10075
5
    static int * const flags[] =
10076
5
    {
10077
5
        &hf_lbmc_hmac_flags_ignore,
10078
5
        NULL
10079
5
    };
10080
10081
5
    subtree_item = proto_tree_add_item(tree, hf_lbmc_hmac, tvb, offset, L_LBMC_CNTL_HMAC_HDR_T, ENC_NA);
10082
5
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_hmac);
10083
5
    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);
10084
5
    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);
10085
5
    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);
10086
5
    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);
10087
5
    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);
10088
5
    return (L_LBMC_CNTL_HMAC_HDR_T);
10089
5
}
10090
10091
static int dissect_nhdr_umq_sid(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
10092
7
{
10093
7
    proto_item * subtree_item = NULL;
10094
7
    proto_tree * subtree = NULL;
10095
7
    static int * const flags[] =
10096
7
    {
10097
7
        &hf_lbmc_umq_sid_flags_ignore,
10098
7
        NULL
10099
7
    };
10100
10101
7
    subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_sid, tvb, offset, L_LBMC_CNTL_UMQ_SID_HDR_T, ENC_NA);
10102
7
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_sid);
10103
7
    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);
10104
7
    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);
10105
7
    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);
10106
7
    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);
10107
7
    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);
10108
7
    return (L_LBMC_CNTL_UMQ_SID_HDR_T);
10109
7
}
10110
10111
static int dissect_nhdr_destination(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_destination_info_t * info)
10112
16
{
10113
16
    proto_item * subtree_item = NULL;
10114
16
    proto_tree * subtree = NULL;
10115
16
    static int * const flags[] =
10116
16
    {
10117
16
        &hf_lbmc_destination_flags_ignore,
10118
16
        NULL
10119
16
    };
10120
10121
16
    subtree_item = proto_tree_add_item(tree, hf_lbmc_destination, tvb, offset, L_LBMC_DESTINATION_HDR_T, ENC_NA);
10122
16
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_destination);
10123
16
    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);
10124
16
    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);
10125
16
    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);
10126
16
    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);
10127
16
    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);
10128
16
    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);
10129
16
    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);
10130
16
    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);
10131
16
    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);
10132
16
    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);
10133
16
    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);
10134
16
    if (info != NULL)
10135
16
    {
10136
16
        info->set = true;
10137
16
        info->endpoint_a.domain = tvb_get_ntohl(tvb, offset + O_LBMC_DESTINATION_HDR_T_DOMAIN_ID);
10138
16
        set_address_tvb(&(info->endpoint_a.addr), AT_IPv4, L_LBMC_DESTINATION_HDR_T_IPADDR, tvb, offset + O_LBMC_DESTINATION_HDR_T_IPADDR);
10139
16
        info->endpoint_a.port = tvb_get_ntohs(tvb, offset + O_LBMC_DESTINATION_HDR_T_PORT);
10140
16
        info->endpoint_b.domain = tvb_get_ntohl(tvb, offset + O_LBMC_DESTINATION_HDR_T_ORIG_DOMAIN_ID);
10141
16
        set_address_tvb(&(info->endpoint_b.addr), AT_IPv4, L_LBMC_DESTINATION_HDR_T_ORIG_IPADDR, tvb, offset + O_LBMC_DESTINATION_HDR_T_ORIG_IPADDR);
10142
16
        info->endpoint_b.port = tvb_get_ntohs(tvb, offset + O_LBMC_DESTINATION_HDR_T_ORIG_PORT);
10143
16
    }
10144
16
    return (L_LBMC_DESTINATION_HDR_T);
10145
16
}
10146
10147
static int dissect_nhdr_topic_idx(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
10148
14
{
10149
14
    proto_item * subtree_item = NULL;
10150
14
    proto_tree * subtree = NULL;
10151
14
    static int * const flags[] =
10152
14
    {
10153
14
        &hf_lbmc_topic_idx_flags_ignore,
10154
14
        NULL
10155
14
    };
10156
10157
14
    subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_idx, tvb, offset, L_LBMC_TOPIC_IDX_HDR_T, ENC_NA);
10158
14
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_idx);
10159
14
    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);
10160
14
    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);
10161
14
    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);
10162
14
    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);
10163
14
    return (L_LBMC_TOPIC_IDX_HDR_T);
10164
14
}
10165
10166
static int dissect_nhdr_topic_source(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
10167
7
{
10168
7
    proto_item * subtree_item = NULL;
10169
7
    proto_tree * subtree = NULL;
10170
7
    static int * const flags[] =
10171
7
    {
10172
7
        &hf_lbmc_topic_source_flags_ignore,
10173
7
        &hf_lbmc_topic_source_flags_eos,
10174
7
        NULL
10175
7
    };
10176
10177
7
    subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_source, tvb, offset, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T, ENC_NA);
10178
7
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_source);
10179
7
    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);
10180
7
    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);
10181
7
    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);
10182
7
    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);
10183
7
    return (L_LBMC_CNTL_TOPIC_SOURCE_HDR_T);
10184
7
}
10185
10186
static int dissect_nhdr_topic_source_exfunc(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
10187
7
{
10188
7
    proto_item * subtree_item = NULL;
10189
7
    proto_tree * subtree = NULL;
10190
7
    static int * const flags[] =
10191
7
    {
10192
7
        &hf_lbmc_topic_source_exfunc_flags_ignore,
10193
7
        NULL
10194
7
    };
10195
7
    static int * const functionality_flags[] =
10196
7
    {
10197
7
        &hf_lbmc_topic_source_exfunc_functionality_flags_lj,
10198
7
        &hf_lbmc_topic_source_exfunc_functionality_flags_ume,
10199
7
        &hf_lbmc_topic_source_exfunc_functionality_flags_umq,
10200
7
        &hf_lbmc_topic_source_exfunc_functionality_flags_ulb,
10201
7
        NULL
10202
7
    };
10203
10204
7
    subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_source_exfunc, tvb, offset, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T, ENC_NA);
10205
7
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_source_exfunc);
10206
7
    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);
10207
7
    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);
10208
7
    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);
10209
7
    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);
10210
7
    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);
10211
7
    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);
10212
7
    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);
10213
7
    return (L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T);
10214
7
}
10215
10216
static int dissect_nhdr_ume_store_ext(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
10217
3
{
10218
3
    proto_item * subtree_item = NULL;
10219
3
    proto_tree * subtree = NULL;
10220
3
    static int * const flags[] =
10221
3
    {
10222
3
        &hf_lbmc_ume_store_ext_flags_ignore,
10223
3
        NULL
10224
3
    };
10225
10226
3
    subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store_ext, tvb, offset, L_LBMC_CNTL_UME_STORE_EXT_HDR_T, ENC_NA);
10227
3
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store_ext);
10228
3
    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);
10229
3
    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);
10230
3
    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);
10231
3
    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);
10232
3
    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);
10233
3
    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);
10234
3
    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);
10235
3
    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);
10236
3
    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);
10237
3
    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);
10238
3
    return (L_LBMC_CNTL_UME_STORE_EXT_HDR_T);
10239
3
}
10240
10241
static int dissect_nhdr_ume_psrc_election_token(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
10242
7
{
10243
7
    proto_item * subtree_item = NULL;
10244
7
    proto_tree * subtree = NULL;
10245
7
    static int * const flags[] =
10246
7
    {
10247
7
        &hf_lbmc_ume_psrc_election_token_flags_ignore,
10248
7
        NULL
10249
7
    };
10250
10251
7
    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);
10252
7
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_psrc_election_token);
10253
7
    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);
10254
7
    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);
10255
7
    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);
10256
7
    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);
10257
7
    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);
10258
7
    return (L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T);
10259
7
}
10260
10261
static int dissect_nhdr_tcp_sid(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree, lbmc_tcp_sid_info_t * info)
10262
6
{
10263
6
    proto_item * subtree_item = NULL;
10264
6
    proto_tree * subtree = NULL;
10265
6
    static int * const flags[] =
10266
6
    {
10267
6
        &hf_lbmc_tcp_sid_flags_ignore,
10268
6
        NULL
10269
6
    };
10270
10271
6
    subtree_item = proto_tree_add_item(tree, hf_lbmc_tcp_sid, tvb, offset, L_LBMC_CNTL_TCP_SID_HDR_T, ENC_NA);
10272
6
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tcp_sid);
10273
6
    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);
10274
6
    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);
10275
6
    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);
10276
6
    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);
10277
6
    if (info != NULL)
10278
6
    {
10279
6
        info->set = true;
10280
6
        info->session_id = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_SID);
10281
6
    }
10282
6
    return (L_LBMC_CNTL_TCP_SID_HDR_T);
10283
6
}
10284
10285
static int dissect_nhdr_transport_security(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
10286
9
{
10287
9
    proto_item * subtree_item = NULL;
10288
9
    proto_tree * subtree = NULL;
10289
9
    proto_item * protocol_proposed_item = NULL;
10290
9
    uint8_t protocol_proposed;
10291
9
    static int * const flags[] =
10292
9
    {
10293
9
        &hf_lbmc_transport_security_flags_ignore,
10294
9
        NULL
10295
9
    };
10296
9
    static int * const protocols_accepted_flags[] =
10297
9
    {
10298
9
        &hf_lbmc_transport_security_protocols_accepted_none,
10299
9
        &hf_lbmc_transport_security_protocols_accepted_tls,
10300
9
        &hf_lbmc_transport_security_protocols_accepted_lz4,
10301
9
        &hf_lbmc_transport_security_protocols_accepted_lz4_tls,
10302
9
        NULL
10303
9
    };
10304
10305
9
    subtree_item = proto_tree_add_item(tree, hf_lbmc_transport_security, tvb, offset, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T, ENC_NA);
10306
9
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_transport_security);
10307
9
    proto_tree_add_item(subtree, hf_lbmc_transport_security_next_hdr, tvb, offset + O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_NEXT_HDR, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN);
10308
9
    proto_tree_add_item(subtree, hf_lbmc_transport_security_hdr_len, tvb, offset + O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_HDR_LEN, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_HDR_LEN, ENC_BIG_ENDIAN);
10309
9
    proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_FLAGS, hf_lbmc_transport_security_flags, ett_lbmc_transport_security_flags, flags, ENC_BIG_ENDIAN);
10310
9
    proto_tree_add_item(subtree, hf_lbmc_transport_security_state, tvb, offset + O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_STATE, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_STATE, ENC_BIG_ENDIAN);
10311
9
    protocol_proposed = tvb_get_uint8(tvb, offset + O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOL_PROPOSED);
10312
9
    protocol_proposed_item = proto_tree_add_item(subtree, hf_lbmc_transport_security_protocol_proposed, tvb, offset + O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOL_PROPOSED, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOL_PROPOSED, ENC_BIG_ENDIAN);
10313
9
    proto_tree_add_item(subtree, hf_lbmc_transport_security_reserved1, tvb, offset + O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_RESERVED1, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_RESERVED1, ENC_BIG_ENDIAN);
10314
9
    proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOLS_ACCEPTED, hf_lbmc_transport_security_protocols_accepted, ett_lbmc_transport_security_protocols_accepted, protocols_accepted_flags, ENC_BIG_ENDIAN);
10315
9
    proto_tree_add_item(subtree, hf_lbmc_transport_security_reserved2, tvb, offset + O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_RESERVED2, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_RESERVED2, ENC_BIG_ENDIAN);
10316
9
    proto_tree_add_item(subtree, hf_lbmc_transport_security_session_id, tvb, offset + O_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_SESSION_ID, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_SESSION_ID, ENC_NA);
10317
9
    if (protocol_proposed == LBMC_TRANSPORT_SECURITY_PROTOCOL_BLACKHOLE)
10318
1
    {
10319
1
        expert_add_info(pinfo, protocol_proposed_item, &ei_lbmc_transport_security_blackhole);
10320
1
    }
10321
9
    return (L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T);
10322
9
}
10323
10324
static int dissect_nhdr_extopt_cfgopt(tvbuff_t * tvb, unsigned offset, packet_info * pinfo _U_, proto_tree * tree)
10325
0
{
10326
    /*
10327
        Returns number of bytes dissected (>=0), or -1 if an error occurs. In either case, *bytes_dissected
10328
        will contain the number of bytes successfully dissected.
10329
    */
10330
0
    proto_item * subtree_item = NULL;
10331
0
    proto_tree * subtree = NULL;
10332
0
    int curr_offset = offset;
10333
0
    int len_dissected = 0;
10334
10335
0
    while (tvb_reported_length_remaining(tvb, curr_offset) > L_LBMC_EXTOPT_CFGOPT_HDR_T)
10336
0
    {
10337
0
        int name_offset = 0;
10338
0
        int name_len = 0;
10339
0
        int value_offset = 0;
10340
0
        int value_len = 0;
10341
0
        int optlen = L_LBMC_EXTOPT_CFGOPT_HDR_T;
10342
10343
0
        name_offset = curr_offset + L_LBMC_EXTOPT_CFGOPT_HDR_T;
10344
0
        name_len = tvb_strsize(tvb, name_offset);
10345
0
        optlen += name_len;
10346
0
        value_offset = name_offset + name_len;
10347
0
        value_len = tvb_strsize(tvb, value_offset);
10348
0
        optlen += value_len;
10349
0
        subtree_item = proto_tree_add_item(tree, hf_lbmc_extopt_cfgopt, tvb, curr_offset, optlen, ENC_NA);
10350
0
        subtree = proto_item_add_subtree(subtree_item, ett_lbmc_extopt_cfgopt);
10351
0
        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);
10352
0
        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);
10353
0
        proto_tree_add_item(subtree, hf_lbmc_extopt_cfgopt_name, tvb, name_offset, name_len, ENC_ASCII);
10354
0
        proto_tree_add_item(subtree, hf_lbmc_extopt_cfgopt_value, tvb, value_offset, value_len, ENC_ASCII);
10355
0
        curr_offset += optlen;
10356
0
        len_dissected += optlen;
10357
0
    }
10358
0
    return (len_dissected);
10359
0
}
10360
10361
static int dissect_nhdr_extopt(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree, lbmc_extopt_reassembled_data_t * reassembly)
10362
11
{
10363
11
    proto_item * subtree_item = NULL;
10364
11
    proto_tree * subtree = NULL;
10365
11
    uint8_t hdrlen = 0;
10366
11
    static int * const flags[] =
10367
11
    {
10368
11
        &hf_lbmc_extopt_flags_ignore,
10369
11
        &hf_lbmc_extopt_flags_ignore_subtype,
10370
11
        &hf_lbmc_extopt_flags_more_fragments,
10371
11
        NULL
10372
11
    };
10373
11
    proto_item * ritem = NULL;
10374
11
    proto_tree * rtree = NULL, *fragment_item;
10375
11
    uint8_t flags_val = 0;
10376
11
    int len_dissected = 0;
10377
11
    int data_len = 0;
10378
11
    uint16_t subtype;
10379
11
    uint16_t fragment_offset;
10380
11
    int data_offset;
10381
10382
11
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_EXTOPT_HDR_T_HDR_LEN);
10383
11
    flags_val = tvb_get_uint8(tvb, offset + O_LBMC_EXTOPT_HDR_T_FLAGS);
10384
11
    subtype = tvb_get_ntohs(tvb, offset + O_LBMC_EXTOPT_HDR_T_SUBTYPE);
10385
11
    fragment_offset = tvb_get_ntohs(tvb, offset + O_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET);
10386
11
    subtree_item = proto_tree_add_item(tree, hf_lbmc_extopt, tvb, offset, (int)hdrlen, ENC_NA);
10387
11
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_extopt);
10388
11
    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);
10389
11
    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);
10390
11
    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);
10391
11
    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);
10392
11
    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);
10393
11
    fragment_item = 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);
10394
11
    len_dissected = L_LBMC_EXTOPT_HDR_T;
10395
11
    data_len = (int)hdrlen - len_dissected;
10396
11
    data_offset = offset + len_dissected;
10397
11
    len_dissected += data_len;
10398
11
    if ((flags_val & LBMC_EXTOPT_FLAG_MORE_FRAGMENT) == 0)
10399
7
    {
10400
        /* No more fragments. Do we have a reassembly already started? */
10401
7
        if (reassembly->reassembly_in_progress)
10402
1
        {
10403
1
            tvbuff_t * reassembly_tvb;
10404
1
            uint8_t* buf;
10405
1
            proto_item * pi = NULL;
10406
10407
1
            if ((reassembly->len + fragment_offset + data_len) < LBMC_EXTOPT_REASSEMBLED_DATA_MAX_LEN)
10408
1
            {
10409
1
                tvb_memcpy(tvb, reassembly->data + fragment_offset, data_offset, data_len);
10410
1
                reassembly->len += data_len;
10411
1
                buf = (uint8_t*)wmem_memdup(pinfo->pool, reassembly->data, reassembly->len);
10412
1
                reassembly_tvb = tvb_new_child_real_data(tvb, buf, reassembly->len, reassembly->len);
10413
1
                add_new_data_source(pinfo, reassembly_tvb, "Reassembled EXTOPT fragment data");
10414
1
            }
10415
0
            else
10416
0
            {
10417
0
                expert_add_info(pinfo, fragment_item, &ei_lbmc_extopt_fragment_offset);
10418
0
                return (len_dissected);
10419
0
            }
10420
1
            proto_tree_add_item(subtree, hf_lbmc_extopt_data, tvb, data_offset, data_len, ENC_NA);
10421
1
            ritem = proto_tree_add_item(tree, hf_lbmc_extopt_reassembled_data, reassembly_tvb, 0, reassembly->len, ENC_NA);
10422
1
            rtree = proto_item_add_subtree(ritem, ett_lbmc_extopt_reassembled_data);
10423
1
            pi = proto_tree_add_uint(rtree, hf_lbmc_extopt_reassembled_data_subtype, reassembly_tvb, 0, 0, reassembly->subtype);
10424
1
            proto_item_set_generated(pi);
10425
1
            pi = proto_tree_add_uint(rtree, hf_lbmc_extopt_reassembled_data_len, reassembly_tvb, 0, 0, (uint32_t)reassembly->len);
10426
1
            proto_item_set_generated(pi);
10427
1
            switch (reassembly->subtype)
10428
1
            {
10429
0
                case LBMC_EXT_NHDR_MSGSEL:
10430
0
                    proto_tree_add_item(rtree, hf_lbmc_extopt_reassembled_data_msgsel, reassembly_tvb, 0, reassembly->len, ENC_ASCII);
10431
0
                    break;
10432
0
                case LBMC_EXT_NHDR_CFGOPT:
10433
0
                    len_dissected += dissect_nhdr_extopt_cfgopt(reassembly_tvb, 0, pinfo, rtree);
10434
0
                    break;
10435
1
                default:
10436
1
                    proto_tree_add_item(rtree, hf_lbmc_extopt_reassembled_data_data, reassembly_tvb, 0, reassembly->len, ENC_NA);
10437
1
                    break;
10438
1
            }
10439
1
            lbmc_init_extopt_reassembled_data(reassembly);
10440
1
        }
10441
6
        else
10442
6
        {
10443
6
            switch (subtype)
10444
6
            {
10445
0
                case LBMC_EXT_NHDR_MSGSEL:
10446
0
                    proto_tree_add_item(subtree, hf_lbmc_extopt_msgsel, tvb, data_offset, data_len, ENC_ASCII);
10447
0
                    break;
10448
0
                case LBMC_EXT_NHDR_CFGOPT:
10449
0
                    len_dissected += dissect_nhdr_extopt_cfgopt(tvb, data_offset, pinfo, subtree);
10450
0
                    break;
10451
6
                default:
10452
6
                    proto_tree_add_item(subtree, hf_lbmc_extopt_data, tvb, data_offset, data_len, ENC_NA);
10453
6
                    break;
10454
6
            }
10455
6
        }
10456
7
    }
10457
4
    else
10458
4
    {
10459
        /* Self-contained extended option. */
10460
4
        if (reassembly->reassembly_in_progress)
10461
0
        {
10462
0
            if ((reassembly->len + fragment_offset + data_len) < LBMC_EXTOPT_REASSEMBLED_DATA_MAX_LEN)
10463
0
            {
10464
0
                tvb_memcpy(tvb, reassembly->data + fragment_offset, data_offset, data_len);
10465
0
                reassembly->len += data_len;
10466
0
                proto_tree_add_item(subtree, hf_lbmc_extopt_data, tvb, offset + len_dissected, data_len, ENC_NA);
10467
0
            }
10468
0
            else
10469
0
            {
10470
0
                expert_add_info(pinfo, fragment_item, &ei_lbmc_extopt_fragment_offset);
10471
0
                return (len_dissected);
10472
0
            }
10473
0
        }
10474
4
        else
10475
4
        {
10476
4
            reassembly->reassembly_in_progress = true;
10477
4
            reassembly->subtype = subtype;
10478
4
            reassembly->len = 0;
10479
4
            if (fragment_offset != 0)
10480
3
            {
10481
3
                expert_add_info_format(pinfo, NULL, &ei_lbmc_analysis_no_reassembly, "LBMC EXTOPT: reassembly not in progress but fragment_offset not zero (%" PRIu16 ")", fragment_offset);
10482
3
            }
10483
1
            else
10484
1
            {
10485
1
                if ((reassembly->len + fragment_offset + data_len) < LBMC_EXTOPT_REASSEMBLED_DATA_MAX_LEN)
10486
1
                {
10487
1
                    tvb_memcpy(tvb, reassembly->data + fragment_offset, data_offset, data_len);
10488
1
                    reassembly->len += data_len;
10489
1
                }
10490
0
                else
10491
0
                {
10492
0
                    expert_add_info(pinfo, fragment_item, &ei_lbmc_extopt_fragment_offset);
10493
0
                    return (len_dissected);
10494
0
                }
10495
1
            }
10496
4
            proto_tree_add_item(subtree, hf_lbmc_extopt_data, tvb, data_offset, data_len, ENC_NA);
10497
4
        }
10498
4
    }
10499
11
    proto_item_set_len(subtree_item, len_dissected);
10500
11
    return (len_dissected);
10501
11
}
10502
10503
static int dissect_nhdr_unhandled(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree, uint8_t next_hdr)
10504
314
{
10505
314
    proto_item * subtree_item = NULL;
10506
314
    proto_tree * subtree = NULL;
10507
314
    uint8_t hdrlen = 0;
10508
314
    int len_dissected = 0;
10509
314
    int datalen = 0;
10510
314
    proto_item * hdrlen_item = NULL;
10511
10512
314
    hdrlen = tvb_get_uint8(tvb, offset + O_LBMC_BASIC_HDR_T_HDR_LEN);
10513
314
    subtree_item = proto_tree_add_item(tree, hf_lbmc_unhandled, tvb, offset, (int)hdrlen, ENC_NA);
10514
314
    subtree = proto_item_add_subtree(subtree_item, ett_lbmc_unhandled_hdr);
10515
314
    expert_add_info_format(pinfo, subtree_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC header type 0x%02x", next_hdr);
10516
314
    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);
10517
314
    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);
10518
314
    len_dissected = L_LBMC_UNHANDLED_HDR_T_NEXT_HDR + L_LBMC_UNHANDLED_HDR_T_HDR_LEN;
10519
314
    datalen = (int) hdrlen - len_dissected;
10520
314
    if (datalen > 0)
10521
302
    {
10522
302
        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);
10523
302
        len_dissected += datalen;
10524
302
    }
10525
12
    else
10526
12
    {
10527
12
        expert_add_info(pinfo, hdrlen_item, &ei_lbmc_analysis_length_incorrect);
10528
12
    }
10529
314
    proto_item_set_len(subtree_item, len_dissected);
10530
314
    return (len_dissected);
10531
314
}
10532
10533
static int dissect_msg_properties(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree)
10534
0
{
10535
0
    proto_item * subtree_item = NULL;
10536
0
    proto_tree * subtree = NULL;
10537
0
    proto_item * data_item = NULL;
10538
0
    proto_tree * data_tree = NULL;
10539
0
    proto_item * field_item = NULL;
10540
0
    proto_tree * field_tree = NULL;
10541
0
    uint32_t magic;
10542
0
    uint16_t num_fields;
10543
0
    uint16_t idx;
10544
0
    unsigned encoding;
10545
0
    int field_offset;
10546
0
    int data_length;
10547
0
    proto_item * magic_item = NULL;
10548
0
    uint64_t prev_key_offset;
10549
0
    uint64_t prev_value_offset;
10550
10551
0
    magic = tvb_get_letohl(tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_MAGIC);
10552
0
    encoding = ENC_LITTLE_ENDIAN;
10553
0
    if (magic == LBM_MSG_PROPERTIES_MAGIC)
10554
0
    {
10555
0
        encoding = ENC_LITTLE_ENDIAN;
10556
0
    }
10557
0
    else if (magic == LBM_MSG_PROPERTIES_ANTIMAGIC)
10558
0
    {
10559
0
        encoding = ENC_BIG_ENDIAN;
10560
0
    }
10561
0
    else
10562
0
    {
10563
0
        magic = 0xffffffff;
10564
0
    }
10565
0
    data_length = tvb_reported_length_remaining(tvb, offset);
10566
0
    subtree_item = proto_tree_add_item(tree, hf_lbm_msg_properties, tvb, offset, data_length, encoding);
10567
0
    subtree = proto_item_add_subtree(subtree_item, ett_lbm_msg_properties);
10568
0
    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);
10569
0
    data_tree = proto_item_add_subtree(data_item, ett_lbm_msg_properties_data);
10570
0
    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);
10571
0
    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);
10572
0
    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);
10573
0
    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);
10574
0
    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);
10575
0
    if ((magic != LBM_MSG_PROPERTIES_MAGIC) && (magic != LBM_MSG_PROPERTIES_ANTIMAGIC))
10576
0
    {
10577
0
        expert_add_info_format(pinfo, magic_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC Message Properties MAGIC value");
10578
0
        return (L_LBM_MSG_PROPERTIES_DATA_T);
10579
0
    }
10580
0
    if (encoding == ENC_LITTLE_ENDIAN)
10581
0
    {
10582
0
        num_fields = tvb_get_letohs(tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS);
10583
0
    }
10584
0
    else
10585
0
    {
10586
0
        num_fields = tvb_get_ntohs(tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS);
10587
0
    }
10588
0
    field_offset = offset + L_LBM_MSG_PROPERTIES_DATA_T;
10589
    /* Keys and values must lie after the field table and must not overlap
10590
       earlier keys/values, including suffixes of previously decoded strings. */
10591
0
    prev_key_offset = (uint64_t)L_LBM_MSG_PROPERTIES_DATA_T + ((uint64_t)num_fields * L_LBM_MSG_PROPERTIES_HDR_T);
10592
0
    prev_value_offset = prev_key_offset;
10593
0
    for (idx = 0; idx < num_fields; ++idx)
10594
0
    {
10595
0
        uint32_t key_offset;
10596
0
        uint32_t value_offset;
10597
0
        uint32_t type;
10598
0
        int key_len;
10599
0
        int value_len;
10600
0
        proto_item * type_item = NULL;
10601
10602
0
        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);
10603
0
        field_tree = proto_item_add_subtree(field_item, ett_lbm_msg_properties_hdr);
10604
0
        proto_tree_add_item_ret_uint(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, &key_offset);
10605
0
        proto_tree_add_item_ret_uint(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, &value_offset);
10606
0
        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);
10607
0
        type_item = proto_tree_add_item_ret_uint(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, &type);
10608
0
        if ((key_offset < prev_key_offset) || (value_offset < prev_value_offset))
10609
0
        {
10610
0
            expert_add_info_format(pinfo, field_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC Message Properties key/value offset");
10611
0
            break;
10612
0
        }
10613
0
        switch (type)
10614
0
        {
10615
0
            case LBM_MSG_PROPERTY_BOOLEAN:
10616
0
            case LBM_MSG_PROPERTY_BYTE:
10617
0
                value_len = 1;
10618
0
                break;
10619
0
            case LBM_MSG_PROPERTY_SHORT:
10620
0
                value_len = 2;
10621
0
                break;
10622
0
            case LBM_MSG_PROPERTY_INT:
10623
0
            case LBM_MSG_PROPERTY_FLOAT:
10624
0
                value_len = 4;
10625
0
                break;
10626
0
            case LBM_MSG_PROPERTY_LONG:
10627
0
            case LBM_MSG_PROPERTY_DOUBLE:
10628
0
                value_len = 8;
10629
0
                break;
10630
0
            case LBM_MSG_PROPERTY_STRING:
10631
0
                value_len = (int)tvb_strsize(tvb, offset + value_offset);
10632
0
                break;
10633
0
            default:
10634
0
                expert_add_info_format(pinfo, type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC Message Properties type 0x%08x", type);
10635
0
                value_len = 4;
10636
0
                break;
10637
0
        }
10638
0
        key_len = (int)tvb_strsize(tvb, offset + key_offset);
10639
0
        prev_key_offset = (uint64_t)key_offset + key_len;
10640
0
        prev_value_offset = (uint64_t)value_offset + value_len;
10641
0
        proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_key, tvb, offset + key_offset, key_len, encoding);
10642
0
        switch (type)
10643
0
        {
10644
0
            case LBM_MSG_PROPERTY_BOOLEAN:
10645
0
                proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_boolean_value, tvb, offset + value_offset, value_len, encoding);
10646
0
                break;
10647
0
            case LBM_MSG_PROPERTY_BYTE:
10648
0
                proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_byte_value, tvb, offset + value_offset, value_len, encoding);
10649
0
                break;
10650
0
            case LBM_MSG_PROPERTY_SHORT:
10651
0
                proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_short_value, tvb, offset + value_offset, value_len, encoding);
10652
0
                break;
10653
0
            case LBM_MSG_PROPERTY_INT:
10654
0
                proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_int_value, tvb, offset + value_offset, value_len, encoding);
10655
0
                break;
10656
0
            case LBM_MSG_PROPERTY_FLOAT:
10657
0
                proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_float_value, tvb, offset + value_offset, value_len, encoding);
10658
0
                break;
10659
0
            case LBM_MSG_PROPERTY_LONG:
10660
0
                proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_long_value, tvb, offset + value_offset, value_len, encoding);
10661
0
                break;
10662
0
            case LBM_MSG_PROPERTY_DOUBLE:
10663
0
                proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_double_value, tvb, offset + value_offset, value_len, encoding);
10664
0
                break;
10665
0
            case LBM_MSG_PROPERTY_STRING:
10666
0
                proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_string_value, tvb, offset + value_offset, value_len, encoding);
10667
0
                break;
10668
0
            default:
10669
0
                proto_tree_add_item(field_tree, hf_lbm_msg_properties_hdr_unknown_value, tvb, offset + value_offset, value_len, encoding);
10670
0
                break;
10671
0
        }
10672
0
        field_offset += L_LBM_MSG_PROPERTIES_HDR_T;
10673
0
    }
10674
0
    return (data_length);
10675
0
}
10676
10677
/*----------------------------------------------------------------------------*/
10678
/* Miscellaneous functions.                                                   */
10679
/*----------------------------------------------------------------------------*/
10680
static const char * lbmc_determine_msg_type(const uint8_t * header_array, bool rxreq_is_tsni)
10681
235
{
10682
235
    if (header_array[LBMC_NHDR_SSF_INIT] != 0)
10683
3
    {
10684
3
        return ("SSF-INIT");
10685
3
    }
10686
232
    else if (header_array[LBMC_NHDR_SSF_CREQ] != 0)
10687
3
    {
10688
3
        return ("SSF-CREQ");
10689
3
    }
10690
229
    else if (header_array[LBMC_NHDR_UME_PREG] != 0)
10691
0
    {
10692
0
        return ("PREG");
10693
0
    }
10694
229
    else if (header_array[LBMC_NHDR_UME_PREG_RESP] != 0)
10695
2
    {
10696
2
        return ("PREG-RESP");
10697
2
    }
10698
227
    else if (header_array[LBMC_NHDR_UME_ACK] != 0)
10699
8
    {
10700
8
        return ("ACK");
10701
8
    }
10702
219
    else if (header_array[LBMC_NHDR_UME_RXREQ] != 0)
10703
3
    {
10704
3
        if (rxreq_is_tsni)
10705
2
        {
10706
2
            return ("RXREQ (TSNI Request)");
10707
2
        }
10708
1
        return ("RXREQ");
10709
3
    }
10710
216
    else if (header_array[LBMC_NHDR_UME_KEEPALIVE] != 0)
10711
1
    {
10712
1
        return ("UME-KA");
10713
1
    }
10714
215
    else if (header_array[LBMC_NHDR_UME_CAPABILITY] != 0)
10715
4
    {
10716
4
        return ("UME-CAP");
10717
4
    }
10718
211
    else if (header_array[LBMC_NHDR_TSNI] != 0)
10719
5
    {
10720
5
        return ("TSNI");
10721
5
    }
10722
206
    else if (header_array[LBMC_NHDR_UMQ_REG] != 0)
10723
12
    {
10724
12
        return ("UMQ-REG");
10725
12
    }
10726
194
    else if (header_array[LBMC_NHDR_UMQ_REG_RESP] != 0)
10727
10
    {
10728
10
        return ("UMQ-REG-RSP");
10729
10
    }
10730
184
    else if (header_array[LBMC_NHDR_UMQ_ACK] != 0)
10731
6
    {
10732
6
        return ("UMQ-ACK");
10733
6
    }
10734
178
    else if (header_array[LBMC_NHDR_UMQ_KA] != 0)
10735
6
    {
10736
6
        return ("UMQ-KA");
10737
6
    }
10738
172
    else if (header_array[LBMC_NHDR_UMQ_RCR] != 0)
10739
2
    {
10740
2
        return ("UMQ-RCR");
10741
2
    }
10742
170
    else if (header_array[LBMC_NHDR_UMQ_RXREQ] != 0)
10743
8
    {
10744
8
        return ("UMQ-RXREQ");
10745
8
    }
10746
162
    else if (header_array[LBMC_NHDR_UMQ_QMGMT] != 0)
10747
9
    {
10748
9
        return ("UMQ-QMGMT");
10749
9
    }
10750
153
    else if (header_array[LBMC_NHDR_UME_LJ_INFO] != 0)
10751
3
    {
10752
3
        return ("LJINFO");
10753
3
    }
10754
150
    else if (header_array[LBMC_NHDR_UMQ_RESUB_REQ] != 0)
10755
3
    {
10756
3
        return ("UMQ-RESUB-REQ");
10757
3
    }
10758
147
    else if (header_array[LBMC_NHDR_UMQ_RESUB_RESP] != 0)
10759
3
    {
10760
3
        return ("UMQ-RESUB-RESP");
10761
3
    }
10762
144
    else if (header_array[LBMC_NHDR_TOPIC_INTEREST] != 0)
10763
1
    {
10764
1
        return ("TOPIC-INT");
10765
1
    }
10766
143
    else if (header_array[LBMC_NHDR_PATTERN_INTEREST] != 0)
10767
5
    {
10768
5
        return ("PAT-INT");
10769
5
    }
10770
138
    else if (header_array[LBMC_NHDR_ADVERTISEMENT] != 0)
10771
1
    {
10772
1
        return ("AD");
10773
1
    }
10774
137
    else if (header_array[LBMC_NHDR_UMQ_ULB_RCR] != 0)
10775
3
    {
10776
3
        return ("UMQ-ULB-RCR");
10777
3
    }
10778
134
    else if (header_array[LBMC_NHDR_UMQ_LF] != 0)
10779
2
    {
10780
2
        return ("UMQ-LF");
10781
2
    }
10782
132
    else if (header_array[LBMC_NHDR_CTXINFO] != 0)
10783
4
    {
10784
4
        return ("CTXINFO");
10785
4
    }
10786
128
    else if (header_array[LBMC_NHDR_UME_PSER] != 0)
10787
3
    {
10788
3
        return ("PSER");
10789
3
    }
10790
125
    else if (header_array[LBMC_NHDR_DOMAIN] != 0)
10791
2
    {
10792
2
        return ("DOMAIN");
10793
2
    }
10794
123
    else if (header_array[LBMC_NHDR_TNWG_CAPABILITIES] != 0)
10795
2
    {
10796
2
        return ("TNWG_CAP");
10797
2
    }
10798
121
    else if (header_array[LBMC_NHDR_PATIDX] != 0)
10799
5
    {
10800
5
        return ("PATIDX");
10801
5
    }
10802
116
    else if (header_array[LBMC_NHDR_UMQ_IDX_CMD] != 0)
10803
4
    {
10804
4
        return ("UMQ-IDX-CMD");
10805
4
    }
10806
112
    else if (header_array[LBMC_NHDR_UMQ_IDX_CMD_RESP] != 0)
10807
4
    {
10808
4
        return ("UMQ-IDX-CMD-RESP");
10809
4
    }
10810
108
    else if (header_array[LBMC_NHDR_TOPIC_MD_INTEREST] != 0)
10811
1
    {
10812
1
        return ("TOPIC-MD-INT");
10813
1
    }
10814
107
    else if (header_array[LBMC_NHDR_PATTERN_MD_INTEREST] != 0)
10815
0
    {
10816
0
        return ("PAT-MD-INT");
10817
0
    }
10818
107
    else if (header_array[LBMC_NHDR_LJI_REQ] != 0)
10819
1
    {
10820
1
        return ("LJI-REQ");
10821
1
    }
10822
106
    else if (header_array[LBMC_NHDR_TNWG_KA] != 0)
10823
2
    {
10824
2
        return ("TNWG-KA");
10825
2
    }
10826
104
    else if (header_array[LBMC_NHDR_AUTHENTICATION] != 0)
10827
4
    {
10828
4
        return ("AUTH");
10829
4
    }
10830
100
    else if (header_array[LBMC_NHDR_UME_RCV_KEEPALIVE] != 0)
10831
2
    {
10832
2
        return ("UME-RCV-KA");
10833
2
    }
10834
98
    else if (header_array[LBMC_NHDR_UMQ_CMD] != 0)
10835
3
    {
10836
3
        return ("UMQ-CMD");
10837
3
    }
10838
95
    else if (header_array[LBMC_NHDR_UMQ_CMD_RESP] != 0)
10839
2
    {
10840
2
        return ("UMQ-CMD-RESP");
10841
2
    }
10842
93
    else if (header_array[LBMC_NHDR_EXTOPT] != 0)
10843
1
    {
10844
1
        return ("EXTOPT");
10845
1
    }
10846
92
    else if (header_array[LBMC_NHDR_HMAC] != 0)
10847
2
    {
10848
2
        return ("HMAC");
10849
2
    }
10850
90
    else if (header_array[LBMC_NHDR_SRI_REQ] != 0)
10851
3
    {
10852
3
        return ("SRI-REQ");
10853
3
    }
10854
87
    else if (header_array[LBMC_NHDR_SRI] != 0)
10855
4
    {
10856
4
        return ("SRI");
10857
4
    }
10858
83
    else if (header_array[LBMC_NHDR_UME_PSRC_ELECTION_TOKEN] != 0)
10859
3
    {
10860
3
        return ("PSRC-ETOK");
10861
3
    }
10862
80
    else if (header_array[LBMC_NHDR_TOPIC_SOURCE] != 0)
10863
3
    {
10864
3
        return ("TOPIC-SRC");
10865
3
    }
10866
77
    else if (header_array[LBMC_NHDR_ROUTE_INFO] != 0)
10867
2
    {
10868
2
        return ("RTE-INFO");
10869
2
    }
10870
75
    else if (header_array[LBMC_NHDR_TCP_SID] != 0)
10871
1
    {
10872
1
        return ("TCP-SID");
10873
1
    }
10874
74
    else if (header_array[LBMC_NHDR_TRANSPORT_SECURITY] != 0)
10875
3
    {
10876
3
        return ("TCP Transport Security");
10877
3
    }
10878
71
    return (NULL);
10879
235
}
10880
10881
static const char * lbmc_determine_data_msg_type(bool retransmission, const uint8_t * header_array)
10882
104
{
10883
104
    if (retransmission)
10884
93
    {
10885
93
        if (header_array[LBMC_NHDR_REQUEST] != 0)
10886
1
        {
10887
1
            return ("RX-DATA[REQ]");
10888
1
        }
10889
92
        else
10890
92
        {
10891
92
            return ("RX-DATA");
10892
92
        }
10893
93
    }
10894
11
    else
10895
11
    {
10896
11
        if (header_array[LBMC_NHDR_REQUEST] != 0)
10897
0
        {
10898
0
            return ("DATA[REQ]");
10899
0
        }
10900
11
        else
10901
11
        {
10902
11
            return ("DATA");
10903
11
        }
10904
11
    }
10905
104
}
10906
10907
static lbm_uim_stream_info_t * lbmc_dup_stream_info(wmem_allocator_t *scope, const lbm_uim_stream_info_t * info)
10908
7
{
10909
    /* Returns a packet-scoped copy. */
10910
7
    lbm_uim_stream_info_t * ptr = NULL;
10911
10912
7
    ptr = wmem_new(scope, lbm_uim_stream_info_t);
10913
7
    ptr->channel = info->channel;
10914
7
    ptr->sqn = info->sqn;
10915
7
    ptr->endpoint_a.type = info->endpoint_a.type;
10916
7
    if (ptr->endpoint_a.type == lbm_uim_instance_stream)
10917
4
    {
10918
4
        memcpy((void *)ptr->endpoint_a.stream_info.ctxinst.ctxinst, (const void *)info->endpoint_a.stream_info.ctxinst.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
10919
4
    }
10920
3
    else
10921
3
    {
10922
3
        ptr->endpoint_a.stream_info.dest = info->endpoint_a.stream_info.dest;
10923
3
    }
10924
7
    ptr->endpoint_b.type = info->endpoint_b.type;
10925
7
    if (ptr->endpoint_b.type == lbm_uim_instance_stream)
10926
4
    {
10927
4
        memcpy((void *)ptr->endpoint_b.stream_info.ctxinst.ctxinst, (const void *)info->endpoint_b.stream_info.ctxinst.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
10928
4
    }
10929
3
    else
10930
3
    {
10931
3
        ptr->endpoint_b.stream_info.dest = info->endpoint_b.stream_info.dest;
10932
3
    }
10933
7
    ptr->description = wmem_strdup(scope, info->description);
10934
7
    return (ptr);
10935
7
}
10936
10937
bool lbmc_test_lbmc_header(tvbuff_t * tvb, unsigned offset)
10938
1.31k
{
10939
1.31k
    uint8_t type;
10940
1.31k
    uint8_t version;
10941
1.31k
    uint8_t ver_type;
10942
1.31k
    uint8_t next_header;
10943
1.31k
    uint16_t msglen;
10944
10945
1.31k
    if (tvb_reported_length_remaining(tvb, offset) < (O_LBMC_HDR_T_MSGLEN + L_LBMC_HDR_T_MSGLEN))
10946
15
    {
10947
15
        return false;
10948
15
    }
10949
1.30k
    ver_type = tvb_get_uint8(tvb, offset + O_LBMC_HDR_T_VER_TYPE);
10950
1.30k
    version = LBMC_HDR_VER(ver_type);
10951
1.30k
    type = LBMC_HDR_TYPE(ver_type);
10952
1.30k
    if (version != LBMC_VERSION)
10953
508
    {
10954
508
        return false;
10955
508
    }
10956
793
    switch (type)
10957
793
    {
10958
405
        case LBMC_TYPE_MESSAGE:
10959
471
        case LBMC_TYPE_PRORX:
10960
584
        case LBMC_TYPE_EOT:
10961
607
        case LBMC_TYPE_CONTROL:
10962
634
        case LBMC_TYPE_RETRANS:
10963
634
            break;
10964
159
        default:
10965
159
            return false;
10966
793
    }
10967
634
    next_header = tvb_get_uint8(tvb, offset + O_LBMC_HDR_T_NEXT_HDR);
10968
634
    switch (next_header)
10969
634
    {
10970
93
        case LBMC_NHDR_DATA:
10971
132
        case LBMC_NHDR_FRAG:
10972
163
        case LBMC_NHDR_BATCH:
10973
185
        case LBMC_NHDR_TGIDX:
10974
186
        case LBMC_NHDR_REQUEST:
10975
194
        case LBMC_NHDR_TOPICNAME:
10976
210
        case LBMC_NHDR_APPHDR:
10977
220
        case LBMC_NHDR_APPHDR_CHAIN:
10978
227
        case LBMC_NHDR_UMQ_MSGID:
10979
233
        case LBMC_NHDR_UMQ_SQD_RCV:
10980
242
        case LBMC_NHDR_UMQ_RESUB:
10981
243
        case LBMC_NHDR_OTID:
10982
244
        case LBMC_NHDR_CTXINSTD:
10983
251
        case LBMC_NHDR_CTXINSTR:
10984
252
        case LBMC_NHDR_SRCIDX:
10985
255
        case LBMC_NHDR_UMQ_ULB_MSG:
10986
258
        case LBMC_NHDR_SSF_INIT:
10987
265
        case LBMC_NHDR_SSF_CREQ:
10988
266
        case LBMC_NHDR_UME_PREG:
10989
270
        case LBMC_NHDR_UME_PREG_RESP:
10990
278
        case LBMC_NHDR_UME_ACK:
10991
285
        case LBMC_NHDR_UME_RXREQ:
10992
289
        case LBMC_NHDR_UME_KEEPALIVE:
10993
290
        case LBMC_NHDR_UME_STOREID:
10994
292
        case LBMC_NHDR_UME_RANGED_ACK:
10995
294
        case LBMC_NHDR_UME_ACK_ID:
10996
297
        case LBMC_NHDR_UME_CAPABILITY:
10997
300
        case LBMC_NHDR_UME_PROXY_SRC:
10998
301
        case LBMC_NHDR_UME_STORE_GROUP:
10999
305
        case LBMC_NHDR_UME_STORE_INFO:
11000
309
        case LBMC_NHDR_UME_LJ_INFO:
11001
321
        case LBMC_NHDR_TSNI:
11002
323
        case LBMC_NHDR_UMQ_REG:
11003
333
        case LBMC_NHDR_UMQ_REG_RESP:
11004
341
        case LBMC_NHDR_UMQ_ACK:
11005
344
        case LBMC_NHDR_UMQ_RCR:
11006
347
        case LBMC_NHDR_UMQ_KA:
11007
351
        case LBMC_NHDR_UMQ_RXREQ:
11008
366
        case LBMC_NHDR_UMQ_QMGMT:
11009
367
        case LBMC_NHDR_UMQ_RESUB_REQ:
11010
369
        case LBMC_NHDR_UMQ_RESUB_RESP:
11011
372
        case LBMC_NHDR_TOPIC_INTEREST:
11012
375
        case LBMC_NHDR_PATTERN_INTEREST:
11013
376
        case LBMC_NHDR_ADVERTISEMENT:
11014
378
        case LBMC_NHDR_UME_CTXINSTS:
11015
381
        case LBMC_NHDR_UME_STORENAME:
11016
384
        case LBMC_NHDR_UMQ_ULB_RCR:
11017
388
        case LBMC_NHDR_UMQ_LF:
11018
396
        case LBMC_NHDR_CTXINFO:
11019
399
        case LBMC_NHDR_UME_PSER:
11020
405
        case LBMC_NHDR_CTXINST:
11021
408
        case LBMC_NHDR_DOMAIN:
11022
421
        case LBMC_NHDR_TNWG_CAPABILITIES:
11023
426
        case LBMC_NHDR_PATIDX:
11024
430
        case LBMC_NHDR_UME_CLIENT_LIFETIME:
11025
439
        case LBMC_NHDR_UME_SID:
11026
450
        case LBMC_NHDR_UMQ_IDX_CMD:
11027
459
        case LBMC_NHDR_UMQ_IDX_CMD_RESP:
11028
463
        case LBMC_NHDR_ODOMAIN:
11029
466
        case LBMC_NHDR_STREAM:
11030
472
        case LBMC_NHDR_TOPIC_MD_INTEREST:
11031
476
        case LBMC_NHDR_PATTERN_MD_INTEREST:
11032
480
        case LBMC_NHDR_LJI_REQ:
11033
481
        case LBMC_NHDR_TNWG_KA:
11034
484
        case LBMC_NHDR_UME_RCV_KEEPALIVE:
11035
490
        case LBMC_NHDR_UMQ_CMD:
11036
506
        case LBMC_NHDR_UMQ_CMD_RESP:
11037
511
        case LBMC_NHDR_SRI_REQ:
11038
515
        case LBMC_NHDR_UME_STORE_DOMAIN:
11039
518
        case LBMC_NHDR_SRI:
11040
524
        case LBMC_NHDR_ROUTE_INFO:
11041
530
        case LBMC_NHDR_ROUTE_INFO_NEIGHBOR:
11042
531
        case LBMC_NHDR_ROUTE_INFO_NBR_EXT:
11043
532
        case LBMC_NHDR_GATEWAY_NAME:
11044
535
        case LBMC_NHDR_AUTHENTICATION:
11045
538
        case LBMC_NHDR_HMAC:
11046
542
        case LBMC_NHDR_UMQ_SID:
11047
549
        case LBMC_NHDR_DESTINATION:
11048
553
        case LBMC_NHDR_TOPIC_IDX:
11049
556
        case LBMC_NHDR_TOPIC_SOURCE:
11050
561
        case LBMC_NHDR_TOPIC_SOURCE_EXFUNC:
11051
563
        case LBMC_NHDR_UME_STORE_INFO_EXT:
11052
566
        case LBMC_NHDR_UME_PSRC_ELECTION_TOKEN:
11053
568
        case LBMC_NHDR_TCP_SID:
11054
569
        case LBMC_NHDR_TRANSPORT_SECURITY:
11055
575
        case LBMC_NHDR_EXTOPT:
11056
575
            break;
11057
59
        default:
11058
59
            return false;
11059
634
    }
11060
575
    msglen = tvb_get_ntohs(tvb, offset + O_LBMC_HDR_T_MSGLEN);
11061
575
    if (msglen == 0)
11062
55
    {
11063
55
        return false;
11064
55
    }
11065
520
    return true;
11066
575
}
11067
11068
int lbmc_dissect_lbmc_packet(tvbuff_t * tvb, unsigned offset, packet_info * pinfo, proto_tree * tree, const char * tag_name, uint64_t channel)
11069
653
{
11070
653
    proto_item * subtree_item = NULL;
11071
653
    proto_tree * subtree = NULL;
11072
653
    uint8_t type;
11073
653
    uint8_t ver_type;
11074
653
    uint8_t next_hdr;
11075
653
    uint16_t msglen = 0;
11076
653
    int pkt_offset = 0;
11077
653
    lbmc_basic_hdr_t bhdr;
11078
653
    tvbuff_t * lbmc_tvb = NULL;
11079
653
    int tvb_lbmc_offset = offset;
11080
653
    const char * topic_name = NULL;
11081
653
    uint32_t topic_index = 0;
11082
653
    int len_dissected = 0;
11083
653
    int lbmc_hdr_len;
11084
653
    uint32_t msgprop_len = 0;
11085
653
    lbmc_fragment_info_t frag_info;
11086
653
    lbmc_extopt_reassembled_data_t *reassembly = NULL;
11087
653
    bool data_is_umq_cmd_resp;
11088
653
    bool packet_is_data;
11089
653
    lbmc_stream_info_t stream_info;
11090
653
    lbmc_ctxinst_info_t ctxinstd_info;
11091
653
    lbmc_ctxinst_info_t ctxinstr_info;
11092
653
    lbmc_destination_info_t destination_info;
11093
653
    lbm_istream_entry_t * inst_stream;
11094
653
    lbm_istream_substream_entry_t * inst_substream;
11095
653
    lbm_dstream_entry_t * dom_stream;
11096
653
    lbm_dstream_substream_entry_t * dom_substream;
11097
653
    proto_item * last_initial_item = NULL;
11098
653
    uint8_t found_header[256];
11099
653
    lbm_uim_stream_info_t uim_stream_info;
11100
653
    lbm_uim_stream_info_t * puim_stream_info = NULL;
11101
653
    lbmc_tcp_sid_info_t tcp_sid_info;
11102
653
    bool has_source_index;
11103
653
    address tcp_addr;
11104
653
    uint16_t tcp_port = 0;
11105
653
    uint64_t actual_channel = channel;
11106
653
    bool tcp_address_valid = false;
11107
11108
1.05k
    while (tvb_reported_length_remaining(tvb, tvb_lbmc_offset) >= L_LBMC_MINIMAL_HDR_T)
11109
653
    {
11110
653
        proto_item * type_item = NULL;
11111
653
        const char * msg_type = NULL;
11112
11113
        /* Get the version and type. */
11114
653
        ver_type = tvb_get_uint8(tvb, tvb_lbmc_offset + O_LBMC_HDR_T_VER_TYPE);
11115
653
        type = LBMC_HDR_TYPE(ver_type);
11116
        /* Get the message length. */
11117
653
        msglen = tvb_get_ntohs(tvb, tvb_lbmc_offset + O_LBMC_MINIMAL_HDR_T_MSGLEN);
11118
653
        if (msglen == 0)
11119
0
        {
11120
0
            expert_add_info_format(pinfo, NULL, &ei_lbmc_analysis_zero_length, "LBMC packet header length is zero");
11121
0
            return (len_dissected);
11122
0
        }
11123
        /* Create a new tvb for just this LBMC message. */
11124
653
        lbmc_tvb = tvb_new_subset_length(tvb, tvb_lbmc_offset, (int)msglen);
11125
653
        if ((type == LBMC_TYPE_MESSAGE) || (type == LBMC_TYPE_RETRANS) || (type == LBMC_TYPE_PRORX))
11126
503
        {
11127
503
            topic_index = tvb_get_ntohl(lbmc_tvb, O_LBMC_HDR_T_TIDX);
11128
503
            if (lbm_channel_is_transport(channel) && lbm_channel_is_known(channel))
11129
1
            {
11130
1
                topic_name = lbm_topic_find(channel, topic_index);
11131
1
            }
11132
503
            lbmc_hdr_len = L_LBMC_HDR_T;
11133
503
        }
11134
150
        else
11135
150
        {
11136
150
            lbmc_hdr_len = L_LBMC_CNTL_HDR_T;
11137
150
        }
11138
11139
653
        if (topic_name == NULL)
11140
643
        {
11141
643
            if (tag_name == NULL)
11142
643
            {
11143
643
                subtree_item = proto_tree_add_protocol_format(tree, proto_lbmc, lbmc_tvb, 0, tvb_reported_length_remaining(tvb, 0), "LBMC Protocol");
11144
643
            }
11145
0
            else
11146
0
            {
11147
0
                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);
11148
0
            }
11149
643
        }
11150
10
        else
11151
10
        {
11152
10
            if (tag_name == NULL)
11153
0
            {
11154
0
                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);
11155
0
            }
11156
10
            else
11157
10
            {
11158
10
                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);
11159
10
            }
11160
10
        }
11161
653
        subtree = proto_item_add_subtree(subtree_item, ett_lbmc);
11162
653
        if (tag_name != NULL)
11163
0
        {
11164
0
            proto_item * pi = NULL;
11165
11166
0
            pi = proto_tree_add_string(subtree, hf_lbmc_tag, tvb, 0, 0, tag_name);
11167
0
            proto_item_set_generated(pi);
11168
0
        }
11169
653
        if (topic_name != NULL)
11170
0
        {
11171
0
            proto_item * pi = NULL;
11172
11173
0
            pi = proto_tree_add_string(subtree, hf_lbmc_topic, tvb, 0, 0, topic_name);
11174
0
            proto_item_set_generated(pi);
11175
0
        }
11176
653
        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);
11177
653
        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);
11178
653
        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);
11179
653
        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);
11180
653
        len_dissected += (L_LBMC_HDR_T_VER_TYPE + L_LBMC_HDR_T_NEXT_HDR + L_LBMC_HDR_T_MSGLEN);
11181
653
        switch (type)
11182
653
        {
11183
95
            case LBMC_TYPE_EOT:
11184
131
            case LBMC_TYPE_CONTROL:
11185
131
                packet_is_data = false;
11186
131
                break;
11187
377
            case LBMC_TYPE_MESSAGE:
11188
413
            case LBMC_TYPE_RETRANS:
11189
493
            case LBMC_TYPE_PRORX:
11190
493
                packet_is_data = true;
11191
493
                break;
11192
19
            default:
11193
19
                expert_add_info_format(pinfo, type_item, &ei_lbmc_analysis_invalid_value, "Invalid LBMC type 0x%02x", type);
11194
19
                tvb_lbmc_offset += msglen;
11195
19
                len_dissected += (msglen - (L_LBMC_HDR_T_VER_TYPE + L_LBMC_HDR_T_NEXT_HDR + L_LBMC_HDR_T_MSGLEN));
11196
19
                continue;
11197
0
                break;
11198
653
        }
11199
624
        next_hdr = tvb_get_uint8(lbmc_tvb, O_LBMC_HDR_T_NEXT_HDR);
11200
624
        pkt_offset = lbmc_hdr_len;
11201
624
        if ((type == LBMC_TYPE_MESSAGE) || (type == LBMC_TYPE_RETRANS) || (type == LBMC_TYPE_PRORX))
11202
493
        {
11203
493
            proto_tree_add_item(subtree, hf_lbmc_tidx, lbmc_tvb, O_LBMC_HDR_T_TIDX, L_LBMC_HDR_T_TIDX, ENC_BIG_ENDIAN);
11204
493
            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);
11205
493
        }
11206
624
        frag_info.fragment_found = 0;
11207
624
        frag_info.first_sqn = 0;
11208
624
        frag_info.offset = 0;
11209
624
        frag_info.len = 0;
11210
624
        proto_item *hdr_frag_item = NULL;
11211
624
        msgprop_len = 0;
11212
624
        if (reassembly == NULL)
11213
611
        {
11214
            /* Allocated (zeroed) once per call, not once per message. */
11215
611
            reassembly = wmem_new0(pinfo->pool, lbmc_extopt_reassembled_data_t);
11216
611
        }
11217
624
        lbmc_init_extopt_reassembled_data(reassembly);
11218
624
        data_is_umq_cmd_resp = false;
11219
624
        bool rxreq_is_tsni = false;
11220
624
        stream_info.set = false;
11221
624
        ctxinstd_info.set = false;
11222
624
        ctxinstr_info.set = false;
11223
624
        destination_info.set = false;
11224
624
        inst_stream = NULL;
11225
624
        inst_substream = NULL;
11226
624
        dom_stream = NULL;
11227
624
        dom_substream = NULL;
11228
624
        memset((void *)found_header, 0, sizeof(found_header));
11229
624
        puim_stream_info = NULL;
11230
624
        tcp_sid_info.set = false;
11231
624
        tcp_sid_info.session_id = UINT32_MAX;
11232
624
        has_source_index = false;
11233
11234
2.22k
        while ((tvb_reported_length_remaining(lbmc_tvb, pkt_offset) >= L_LBMC_BASIC_HDR_T) && (next_hdr != LBMC_NHDR_DATA) && (next_hdr != LBMC_NHDR_NONE))
11235
1.84k
        {
11236
1.84k
            tvbuff_t * hdr_tvb = NULL;
11237
1.84k
            int dissected_hdr_len;
11238
1.84k
            uint8_t opid;
11239
11240
1.84k
            bhdr.next_hdr = tvb_get_uint8(lbmc_tvb, pkt_offset + O_LBMC_BASIC_HDR_T_NEXT_HDR);
11241
1.84k
            bhdr.hdr_len = tvb_get_uint8(lbmc_tvb, pkt_offset + O_LBMC_BASIC_HDR_T_HDR_LEN);
11242
1.84k
            if (bhdr.hdr_len == 0)
11243
74
            {
11244
74
                expert_add_info_format(pinfo, NULL, &ei_lbmc_analysis_zero_length, "LBMC header length is zero");
11245
74
                return (len_dissected);
11246
74
            }
11247
1.76k
            hdr_tvb = tvb_new_subset_length(lbmc_tvb, pkt_offset, (int)bhdr.hdr_len);
11248
1.76k
            found_header[next_hdr] = 1;
11249
1.76k
            switch (next_hdr)
11250
1.76k
            {
11251
40
                case LBMC_NHDR_FRAG:
11252
40
                    dissected_hdr_len = dissect_nhdr_frag(hdr_tvb, 0, pinfo, subtree, &frag_info, &hdr_frag_item);
11253
40
                    break;
11254
47
                case LBMC_NHDR_BATCH:
11255
47
                    dissected_hdr_len = dissect_nhdr_batch(hdr_tvb, 0, pinfo, subtree);
11256
47
                    break;
11257
100
                case LBMC_NHDR_TGIDX:
11258
                    /* Not implemented */
11259
100
                    dissected_hdr_len = dissect_nhdr_unhandled(hdr_tvb, 0, pinfo, subtree, next_hdr);
11260
100
                    break;
11261
11
                case LBMC_NHDR_REQUEST:
11262
11
                    dissected_hdr_len = dissect_nhdr_request(hdr_tvb, 0, pinfo, subtree);
11263
11
                    break;
11264
41
                case LBMC_NHDR_TOPICNAME:
11265
41
                    dissected_hdr_len = dissect_nhdr_topicname(hdr_tvb, 0, pinfo, subtree);
11266
41
                    break;
11267
69
                case LBMC_NHDR_APPHDR:
11268
69
                    dissected_hdr_len = dissect_nhdr_apphdr(hdr_tvb, 0, pinfo, subtree);
11269
69
                    break;
11270
21
                case LBMC_NHDR_APPHDR_CHAIN:
11271
21
                    dissected_hdr_len = dissect_nhdr_apphdr_chain(hdr_tvb, 0, pinfo, subtree, &msgprop_len);
11272
21
                    break;
11273
14
                case LBMC_NHDR_UMQ_MSGID:
11274
14
                    dissected_hdr_len = dissect_nhdr_umq_msgid(hdr_tvb, 0, pinfo, subtree);
11275
14
                    break;
11276
10
                case LBMC_NHDR_UMQ_SQD_RCV:
11277
10
                    dissected_hdr_len = dissect_nhdr_umq_sqd_rcv(hdr_tvb, 0, pinfo, subtree, &data_is_umq_cmd_resp);
11278
10
                    break;
11279
12
                case LBMC_NHDR_UMQ_RESUB:
11280
12
                    dissected_hdr_len = dissect_nhdr_umq_resub(hdr_tvb, 0, pinfo, subtree);
11281
12
                    break;
11282
3
                case LBMC_NHDR_OTID:
11283
3
                    dissected_hdr_len = dissect_nhdr_otid(hdr_tvb, 0, pinfo, subtree);
11284
3
                    break;
11285
25
                case LBMC_NHDR_CTXINSTD:
11286
25
                    dissected_hdr_len = dissect_nhdr_ctxinstd(hdr_tvb, 0, pinfo, subtree, &ctxinstd_info);
11287
25
                    break;
11288
25
                case LBMC_NHDR_CTXINSTR:
11289
25
                    dissected_hdr_len = dissect_nhdr_ctxinstr(hdr_tvb, 0, pinfo, subtree, &ctxinstr_info);
11290
25
                    break;
11291
12
                case LBMC_NHDR_SRCIDX:
11292
12
                    dissected_hdr_len = dissect_nhdr_srcidx(hdr_tvb, 0, pinfo, subtree);
11293
12
                    has_source_index = true;
11294
12
                    break;
11295
17
                case LBMC_NHDR_UMQ_ULB_MSG:
11296
17
                    dissected_hdr_len = dissect_nhdr_umq_ulb_msg(hdr_tvb, 0, pinfo, subtree);
11297
17
                    break;
11298
8
                case LBMC_NHDR_SSF_INIT:
11299
8
                    dissected_hdr_len = dissect_nhdr_ssf_init(hdr_tvb, 0, pinfo, subtree);
11300
8
                    break;
11301
13
                case LBMC_NHDR_SSF_CREQ:
11302
13
                    dissected_hdr_len = dissect_nhdr_ssf_creq(hdr_tvb, 0, pinfo, subtree);
11303
13
                    break;
11304
2
                case LBMC_NHDR_UME_PREG:
11305
2
                    dissected_hdr_len = dissect_nhdr_ume_preg(hdr_tvb, 0, pinfo, subtree);
11306
2
                    break;
11307
7
                case LBMC_NHDR_UME_PREG_RESP:
11308
7
                    dissected_hdr_len = dissect_nhdr_ume_preg_resp(hdr_tvb, 0, pinfo, subtree);
11309
7
                    break;
11310
30
                case LBMC_NHDR_UME_ACK:
11311
30
                    dissected_hdr_len = dissect_nhdr_ume_ack(hdr_tvb, 0, pinfo, subtree);
11312
30
                    break;
11313
23
                case LBMC_NHDR_UME_RXREQ:
11314
23
                    dissected_hdr_len = dissect_nhdr_ume_rxreq(hdr_tvb, 0, pinfo, subtree, &rxreq_is_tsni);
11315
23
                    break;
11316
16
                case LBMC_NHDR_UME_KEEPALIVE:
11317
16
                    dissected_hdr_len = dissect_nhdr_ume_keepalive(hdr_tvb, 0, pinfo, subtree);
11318
16
                    break;
11319
4
                case LBMC_NHDR_UME_STOREID:
11320
4
                    dissected_hdr_len = dissect_nhdr_ume_storeid(hdr_tvb, 0, pinfo, subtree);
11321
4
                    break;
11322
21
                case LBMC_NHDR_UME_RANGED_ACK:
11323
21
                    dissected_hdr_len = dissect_nhdr_ume_ranged_ack(hdr_tvb, 0, pinfo, subtree);
11324
21
                    break;
11325
11
                case LBMC_NHDR_UME_ACK_ID:
11326
11
                    dissected_hdr_len = dissect_nhdr_ume_ack_id(hdr_tvb, 0, pinfo, subtree);
11327
11
                    break;
11328
12
                case LBMC_NHDR_UME_CAPABILITY:
11329
12
                    dissected_hdr_len = dissect_nhdr_ume_capability(hdr_tvb, 0, pinfo, subtree);
11330
12
                    break;
11331
24
                case LBMC_NHDR_UME_PROXY_SRC:
11332
24
                    dissected_hdr_len = dissect_nhdr_ume_proxy_src(hdr_tvb, 0, pinfo, subtree);
11333
24
                    break;
11334
4
                case LBMC_NHDR_UME_STORE_GROUP:
11335
4
                    dissected_hdr_len = dissect_nhdr_ume_store_group(hdr_tvb, 0, pinfo, subtree);
11336
4
                    break;
11337
48
                case LBMC_NHDR_UME_STORE_INFO:
11338
48
                    dissected_hdr_len = dissect_nhdr_ume_store(hdr_tvb, 0, pinfo, subtree);
11339
48
                    break;
11340
15
                case LBMC_NHDR_UME_LJ_INFO:
11341
15
                    dissected_hdr_len = dissect_nhdr_ume_lj_info(hdr_tvb, 0, pinfo, subtree);
11342
15
                    break;
11343
8
                case LBMC_NHDR_UME_RANGED_RXREQ:
11344
8
                    dissected_hdr_len = dissect_nhdr_ume_ranged_rxreq(hdr_tvb, 0, pinfo, subtree);
11345
8
                    break;
11346
69
                case LBMC_NHDR_TSNI:
11347
69
                    dissected_hdr_len = dissect_nhdr_tsni(hdr_tvb, 0, pinfo, subtree);
11348
69
                    break;
11349
36
                case LBMC_NHDR_UMQ_REG:
11350
36
                    dissected_hdr_len = dissect_nhdr_umq_reg(hdr_tvb, 0, pinfo, subtree);
11351
36
                    break;
11352
35
                case LBMC_NHDR_UMQ_REG_RESP:
11353
35
                    dissected_hdr_len = dissect_nhdr_umq_reg_resp(hdr_tvb, 0, pinfo, subtree);
11354
35
                    break;
11355
50
                case LBMC_NHDR_UMQ_ACK:
11356
50
                    dissected_hdr_len = dissect_nhdr_umq_ack(hdr_tvb, 0, pinfo, subtree);
11357
50
                    break;
11358
12
                case LBMC_NHDR_UMQ_RCR:
11359
12
                    dissected_hdr_len = dissect_nhdr_umq_rcr(hdr_tvb, 0, pinfo, subtree);
11360
12
                    break;
11361
22
                case LBMC_NHDR_UMQ_KA:
11362
22
                    dissected_hdr_len = dissect_nhdr_umq_ka(hdr_tvb, 0, pinfo, subtree);
11363
22
                    break;
11364
18
                case LBMC_NHDR_UMQ_RXREQ:
11365
18
                    dissected_hdr_len = dissect_nhdr_umq_rxreq(hdr_tvb, 0, pinfo, subtree);
11366
18
                    break;
11367
48
                case LBMC_NHDR_UMQ_QMGMT:
11368
48
                    dissected_hdr_len = dissect_nhdr_umq_qmgmt(hdr_tvb, 0, pinfo, subtree);
11369
48
                    break;
11370
10
                case LBMC_NHDR_UMQ_RESUB_REQ:
11371
10
                    dissected_hdr_len = dissect_nhdr_umq_resub_req(hdr_tvb, 0, pinfo, subtree);
11372
10
                    break;
11373
9
                case LBMC_NHDR_UMQ_RESUB_RESP:
11374
9
                    dissected_hdr_len = dissect_nhdr_umq_resub_resp(hdr_tvb, 0, pinfo, subtree);
11375
9
                    break;
11376
11
                case LBMC_NHDR_TOPIC_INTEREST:
11377
11
                    dissected_hdr_len = dissect_nhdr_topic_interest(hdr_tvb, 0, pinfo, subtree);
11378
11
                    break;
11379
15
                case LBMC_NHDR_PATTERN_INTEREST:
11380
15
                    dissected_hdr_len = dissect_nhdr_pattern_interest(hdr_tvb, 0, pinfo, subtree);
11381
15
                    break;
11382
13
                case LBMC_NHDR_ADVERTISEMENT:
11383
13
                    dissected_hdr_len = dissect_nhdr_advertisement(hdr_tvb, 0, pinfo, subtree);
11384
13
                    break;
11385
5
                case LBMC_NHDR_UME_CTXINSTS:
11386
5
                    dissected_hdr_len = dissect_nhdr_ctxinst(hdr_tvb, 0, pinfo, subtree, NULL);
11387
5
                    break;
11388
5
                case LBMC_NHDR_UME_STORENAME:
11389
5
                    dissected_hdr_len = dissect_nhdr_storename(hdr_tvb, 0, pinfo, subtree);
11390
5
                    break;
11391
5
                case LBMC_NHDR_UMQ_ULB_RCR:
11392
5
                    dissected_hdr_len = dissect_nhdr_umq_ulb_rcr(hdr_tvb, 0, pinfo, subtree);
11393
5
                    break;
11394
10
                case LBMC_NHDR_UMQ_LF:
11395
10
                    dissected_hdr_len = dissect_nhdr_umq_lf(hdr_tvb, 0, pinfo, subtree);
11396
10
                    break;
11397
15
                case LBMC_NHDR_CTXINFO:
11398
15
                    dissected_hdr_len = dissect_nhdr_ctxinfo(hdr_tvb, 0, pinfo, subtree);
11399
15
                    break;
11400
14
                case LBMC_NHDR_UME_PSER:
11401
14
                    dissected_hdr_len = dissect_nhdr_ume_pser(hdr_tvb, 0, pinfo, subtree);
11402
14
                    break;
11403
15
                case LBMC_NHDR_CTXINST:
11404
15
                    dissected_hdr_len = dissect_nhdr_ctxinst(hdr_tvb, 0, pinfo, subtree, NULL);
11405
15
                    break;
11406
12
                case LBMC_NHDR_DOMAIN:
11407
12
                    dissected_hdr_len = dissect_nhdr_domain(hdr_tvb, 0, pinfo, subtree);
11408
12
                    break;
11409
21
                case LBMC_NHDR_TNWG_CAPABILITIES:
11410
21
                    dissected_hdr_len = dissect_nhdr_tnwg_capabilities(hdr_tvb, 0, pinfo, subtree);
11411
21
                    break;
11412
19
                case LBMC_NHDR_PATIDX:
11413
19
                    dissected_hdr_len = dissect_nhdr_patidx(hdr_tvb, 0, pinfo, subtree);
11414
19
                    break;
11415
13
                case LBMC_NHDR_UME_CLIENT_LIFETIME:
11416
13
                    dissected_hdr_len = dissect_nhdr_ume_client_lifetime(hdr_tvb, 0, pinfo, subtree);
11417
13
                    break;
11418
11
                case LBMC_NHDR_UME_SID:
11419
11
                    dissected_hdr_len = dissect_nhdr_ume_sid(hdr_tvb, 0, pinfo, subtree);
11420
11
                    break;
11421
28
                case LBMC_NHDR_UMQ_IDX_CMD:
11422
28
                    dissected_hdr_len = dissect_nhdr_umq_idx_cmd(hdr_tvb, 0, pinfo, subtree);
11423
28
                    break;
11424
17
                case LBMC_NHDR_UMQ_IDX_CMD_RESP:
11425
17
                    dissected_hdr_len = dissect_nhdr_umq_idx_cmd_resp(hdr_tvb, 0, pinfo, subtree);
11426
17
                    break;
11427
14
                case LBMC_NHDR_ODOMAIN:
11428
14
                    dissected_hdr_len = dissect_nhdr_odomain(hdr_tvb, 0, pinfo, subtree);
11429
14
                    break;
11430
28
                case LBMC_NHDR_STREAM:
11431
28
                    dissected_hdr_len = dissect_nhdr_stream(hdr_tvb, 0, pinfo, subtree, &stream_info);
11432
28
                    break;
11433
8
                case LBMC_NHDR_TOPIC_MD_INTEREST:
11434
8
                    dissected_hdr_len = dissect_nhdr_topic_md_interest(hdr_tvb, 0, pinfo, subtree);
11435
8
                    break;
11436
7
                case LBMC_NHDR_PATTERN_MD_INTEREST:
11437
7
                    dissected_hdr_len = dissect_nhdr_pattern_md_interest(hdr_tvb, 0, pinfo, subtree);
11438
7
                    break;
11439
7
                case LBMC_NHDR_LJI_REQ:
11440
7
                    dissected_hdr_len = dissect_nhdr_lji_req(hdr_tvb, 0, pinfo, subtree);
11441
7
                    break;
11442
3
                case LBMC_NHDR_TNWG_KA:
11443
3
                    dissected_hdr_len = dissect_nhdr_tnwg_ka(hdr_tvb, 0, pinfo, subtree);
11444
3
                    break;
11445
8
                case LBMC_NHDR_UME_RCV_KEEPALIVE:
11446
8
                    dissected_hdr_len = dissect_nhdr_ume_receiver_keepalive(hdr_tvb, 0, pinfo, subtree);
11447
8
                    break;
11448
13
                case LBMC_NHDR_UMQ_CMD:
11449
13
                    dissected_hdr_len = dissect_nhdr_umq_cmd(hdr_tvb, 0, pinfo, subtree);
11450
13
                    break;
11451
39
                case LBMC_NHDR_UMQ_CMD_RESP:
11452
39
                    dissected_hdr_len = dissect_nhdr_umq_cmd_resp(hdr_tvb, 0, pinfo, subtree, packet_is_data);
11453
39
                    break;
11454
10
                case LBMC_NHDR_SRI_REQ:
11455
10
                    dissected_hdr_len = dissect_nhdr_sri_req(hdr_tvb, 0, pinfo, subtree);
11456
10
                    break;
11457
10
                case LBMC_NHDR_UME_STORE_DOMAIN:
11458
10
                    dissected_hdr_len = dissect_nhdr_ume_store_domain(hdr_tvb, 0, pinfo, subtree);
11459
10
                    break;
11460
12
                case LBMC_NHDR_SRI:
11461
12
                    dissected_hdr_len = dissect_nhdr_sri(hdr_tvb, 0, pinfo, subtree);
11462
12
                    break;
11463
9
                case LBMC_NHDR_ROUTE_INFO:
11464
9
                    dissected_hdr_len = dissect_nhdr_route_info(hdr_tvb, 0, pinfo, subtree);
11465
9
                    break;
11466
11
                case LBMC_NHDR_ROUTE_INFO_NEIGHBOR:
11467
11
                    dissected_hdr_len = dissect_nhdr_route_info_neighbor(hdr_tvb, 0, pinfo, subtree);
11468
11
                    break;
11469
10
                case LBMC_NHDR_ROUTE_INFO_NBR_EXT:
11470
10
                    dissected_hdr_len = dissect_nhdr_route_info_nbr_ext(hdr_tvb, 0, pinfo, subtree);
11471
10
                    break;
11472
10
                case LBMC_NHDR_GATEWAY_NAME:
11473
10
                    dissected_hdr_len = dissect_nhdr_gateway_name(hdr_tvb, 0, pinfo, subtree);
11474
10
                    break;
11475
20
                case LBMC_NHDR_AUTHENTICATION:
11476
20
                    opid = tvb_get_uint8(hdr_tvb, O_LBMC_CNTL_AUTH_GENERIC_HDR_T_OPID);
11477
20
                    switch (opid)
11478
20
                    {
11479
2
                        case AUTH_OP_REQ:
11480
2
                            dissected_hdr_len = dissect_nhdr_auth_request(hdr_tvb, 0, pinfo, subtree);
11481
2
                            break;
11482
1
                        case AUTH_OP_CHALLENGE:
11483
1
                            dissected_hdr_len = dissect_nhdr_auth_challenge(hdr_tvb, 0, pinfo, subtree);
11484
1
                            break;
11485
1
                        case AUTH_OP_CHALLENGE_RSP:
11486
1
                            dissected_hdr_len = dissect_nhdr_auth_challenge_rsp(hdr_tvb, 0, pinfo, subtree);
11487
1
                            break;
11488
0
                        case AUTH_OP_RESULT:
11489
0
                            dissected_hdr_len = dissect_nhdr_auth_result(hdr_tvb, 0, pinfo, subtree);
11490
0
                            break;
11491
15
                        default:
11492
15
                            dissected_hdr_len = dissect_nhdr_auth_unknown(hdr_tvb, 0, pinfo, subtree);
11493
15
                            break;
11494
20
                    }
11495
18
                    break;
11496
18
                case LBMC_NHDR_HMAC:
11497
5
                    dissected_hdr_len = dissect_nhdr_hmac(hdr_tvb, 0, pinfo, subtree);
11498
5
                    break;
11499
7
                case LBMC_NHDR_UMQ_SID:
11500
7
                    dissected_hdr_len = dissect_nhdr_umq_sid(hdr_tvb, 0, pinfo, subtree);
11501
7
                    break;
11502
16
                case LBMC_NHDR_DESTINATION:
11503
16
                    dissected_hdr_len = dissect_nhdr_destination(hdr_tvb, 0, pinfo, subtree, &destination_info);
11504
16
                    break;
11505
14
                case LBMC_NHDR_TOPIC_IDX:
11506
14
                    dissected_hdr_len = dissect_nhdr_topic_idx(hdr_tvb, 0, pinfo, subtree);
11507
14
                    break;
11508
7
                case LBMC_NHDR_TOPIC_SOURCE:
11509
7
                    dissected_hdr_len = dissect_nhdr_topic_source(hdr_tvb, 0, pinfo, subtree);
11510
7
                    break;
11511
7
                case LBMC_NHDR_TOPIC_SOURCE_EXFUNC:
11512
7
                    dissected_hdr_len = dissect_nhdr_topic_source_exfunc(hdr_tvb, 0, pinfo, subtree);
11513
7
                    break;
11514
3
                case LBMC_NHDR_UME_STORE_INFO_EXT:
11515
3
                    dissected_hdr_len = dissect_nhdr_ume_store_ext(hdr_tvb, 0, pinfo, subtree);
11516
3
                    break;
11517
7
                case LBMC_NHDR_UME_PSRC_ELECTION_TOKEN:
11518
7
                    dissected_hdr_len = dissect_nhdr_ume_psrc_election_token(hdr_tvb, 0, pinfo, subtree);
11519
7
                    break;
11520
6
                case LBMC_NHDR_TCP_SID:
11521
6
                    dissected_hdr_len = dissect_nhdr_tcp_sid(hdr_tvb, 0, pinfo, subtree, &tcp_sid_info);
11522
6
                    break;
11523
9
                case LBMC_NHDR_TRANSPORT_SECURITY:
11524
9
                    dissected_hdr_len = dissect_nhdr_transport_security(hdr_tvb, 0, pinfo, subtree);
11525
9
                    break;
11526
11
                case LBMC_NHDR_EXTOPT:
11527
11
                    dissected_hdr_len = dissect_nhdr_extopt(hdr_tvb, 0, pinfo, subtree, reassembly);
11528
11
                    break;
11529
                    /* Headers that are not implemented. */
11530
0
                case LBMC_NHDR_NONE:
11531
214
                default:
11532
214
                    dissected_hdr_len = dissect_nhdr_unhandled(hdr_tvb, 0, pinfo, subtree, next_hdr);
11533
214
                    break;
11534
1.76k
            }
11535
1.59k
            len_dissected += dissected_hdr_len;
11536
1.59k
            next_hdr = bhdr.next_hdr;
11537
1.59k
            pkt_offset += bhdr.hdr_len;
11538
1.59k
        }
11539
        /* If transport is TCP and we got a TCP SID header, process it. */
11540
382
        tcp_address_valid = true;
11541
382
        if (lbm_channel_is_unknown_transport_source_lbttcp(channel))
11542
6
        {
11543
6
            copy_address_shallow(&tcp_addr, &(pinfo->src));
11544
6
            tcp_port = (uint16_t)pinfo->srcport;
11545
6
        }
11546
376
        else if (lbm_channel_is_unknown_transport_client_lbttcp(channel))
11547
11
        {
11548
11
            copy_address_shallow(&tcp_addr, &(pinfo->dst));
11549
11
            tcp_port = (uint16_t)pinfo->destport;
11550
11
        }
11551
365
        else
11552
365
        {
11553
365
            tcp_address_valid = false;
11554
365
        }
11555
        /* Note: it *is* possible for a TCP SID to appear in an LBTTCP non-transport (UIM) message. */
11556
382
        if ((pinfo->fd->visited == 0) && (tcp_sid_info.set) && lbm_channel_is_unknown_transport_lbttcp(channel) && tcp_address_valid)
11557
1
        {
11558
1
            lbttcp_transport_sid_add(&tcp_addr, tcp_port, pinfo->num, tcp_sid_info.session_id);
11559
1
        }
11560
        /* Try to determine the TCP transport channel. */
11561
382
        if (lbm_channel_type(channel) == LBM_CHANNEL_TRANSPORT_LBTTCP)
11562
18
        {
11563
18
            if (lbm_channel_is_known(channel))
11564
1
            {
11565
1
                if (topic_name != NULL)
11566
0
                {
11567
0
                    topic_name = lbm_topic_find(channel, topic_index);
11568
0
                }
11569
1
            }
11570
17
            else
11571
17
            {
11572
17
                uint32_t tcp_session_id = 0;
11573
11574
17
                if (lbttcp_transport_sid_find(&tcp_addr, tcp_port, pinfo->num, &tcp_session_id))
11575
1
                {
11576
1
                    lbttcp_transport_t * tcp_transport = NULL;
11577
11578
1
                    tcp_transport = lbttcp_transport_find(&tcp_addr, tcp_port, tcp_session_id, pinfo->num);
11579
1
                    if (tcp_transport != NULL)
11580
1
                    {
11581
1
                        actual_channel = tcp_transport->channel;
11582
1
                        topic_name = lbm_topic_find(actual_channel, topic_index);
11583
1
                    }
11584
1
                }
11585
17
            }
11586
18
            if (topic_name != NULL)
11587
0
            {
11588
0
                if (tag_name == NULL)
11589
0
                {
11590
0
                    proto_item_set_text(subtree_item, "LBMC Protocol for topic [%s]", topic_name);
11591
0
                }
11592
0
                else
11593
0
                {
11594
0
                    proto_item_set_text(subtree_item, "LBMC Protocol (Tag: %s) for topic [%s]", tag_name, topic_name);
11595
0
                }
11596
0
            }
11597
18
        }
11598
11599
        /* If TCP, handle stream info. */
11600
382
        if (pinfo->ptype == PT_TCP)
11601
369
        {
11602
369
            if (stream_info.set && ctxinstd_info.set && !destination_info.set)
11603
4
            {
11604
4
                inst_stream = lbm_stream_istream_find(stream_info.ctxinst, ctxinstd_info.ctxinst);
11605
4
                if (inst_stream == NULL)
11606
4
                {
11607
4
                    inst_stream = lbm_stream_istream_add(stream_info.ctxinst, ctxinstd_info.ctxinst);
11608
4
                }
11609
4
                if (inst_stream != NULL)
11610
4
                {
11611
4
                    inst_substream = lbm_stream_istream_substream_find(inst_stream, &(pinfo->src), pinfo->srcport, &(pinfo->dst), pinfo->destport, stream_info.stream_id);
11612
4
                    if (inst_substream == NULL)
11613
4
                    {
11614
4
                        inst_substream = lbm_stream_istream_substream_add(inst_stream, &(pinfo->src), pinfo->srcport, &(pinfo->dst), pinfo->destport, stream_info.stream_id);
11615
4
                    }
11616
4
                    if (inst_substream != NULL)
11617
4
                    {
11618
4
                        proto_item * stream_item = NULL;
11619
4
                        proto_tree * stream_tree = NULL;
11620
4
                        proto_item * pi = NULL;
11621
4
                        lbm_uim_stream_tap_info_t * stream_tap_info = NULL;
11622
11623
4
                        lbm_stream_istream_substream_update(inst_substream, msglen, pinfo->num);
11624
4
                        stream_item = proto_tree_add_item(subtree, hf_lbm_stream, tvb, 0, 0, ENC_NA);
11625
4
                        proto_item_set_generated(stream_item);
11626
4
                        stream_tree = proto_item_add_subtree(stream_item, ett_lbm_stream);
11627
4
                        pi = proto_tree_add_uint64(stream_tree, hf_lbm_stream_stream_id, tvb, 0, 0, inst_stream->channel);
11628
4
                        proto_item_set_generated(pi);
11629
4
                        pi = proto_tree_add_uint(stream_tree, hf_lbm_stream_substream_id, tvb, 0, 0, inst_substream->substream_id);
11630
4
                        proto_item_set_generated(pi);
11631
4
                        proto_tree_move_item(subtree, last_initial_item, stream_item);
11632
11633
4
                        stream_tap_info = wmem_new0(pinfo->pool, lbm_uim_stream_tap_info_t);
11634
4
                        stream_tap_info->channel = inst_stream->channel;
11635
4
                        stream_tap_info->substream_id = inst_substream->substream_id;
11636
4
                        stream_tap_info->bytes = msglen;
11637
4
                        stream_tap_info->endpoint_a.type = lbm_uim_instance_stream;
11638
4
                        memcpy((void *) stream_tap_info->endpoint_a.stream_info.ctxinst.ctxinst, (const void *)stream_info.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
11639
4
                        stream_tap_info->endpoint_b.type = lbm_uim_instance_stream;
11640
4
                        memcpy((void *) stream_tap_info->endpoint_b.stream_info.ctxinst.ctxinst, (const void *)ctxinstd_info.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
11641
4
                        tap_queue_packet(lbmc_stream_tap_handle, pinfo, (void *) stream_tap_info);
11642
4
                    }
11643
4
                    uim_stream_info.channel = inst_stream->channel;
11644
4
                    uim_stream_info.sqn = stream_info.sqn;
11645
4
                    uim_stream_info.endpoint_a.type = lbm_uim_instance_stream;
11646
4
                    memcpy((void *)uim_stream_info.endpoint_a.stream_info.ctxinst.ctxinst, (const void *)stream_info.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
11647
4
                    uim_stream_info.endpoint_b.type = lbm_uim_instance_stream;
11648
4
                    memcpy((void *)uim_stream_info.endpoint_b.stream_info.ctxinst.ctxinst, (const void *)ctxinstd_info.ctxinst, LBM_CONTEXT_INSTANCE_BLOCK_SZ);
11649
4
                    puim_stream_info = &uim_stream_info;
11650
4
                }
11651
4
            }
11652
365
            else if (stream_info.set && destination_info.set)
11653
8
            {
11654
8
                dom_stream = lbm_stream_dstream_find(&(destination_info.endpoint_a), &(destination_info.endpoint_b));
11655
8
                if (dom_stream == NULL)
11656
6
                {
11657
6
                    dom_stream = lbm_stream_dstream_add(&(destination_info.endpoint_a), &(destination_info.endpoint_b));
11658
6
                }
11659
8
                if (dom_stream != NULL)
11660
8
                {
11661
8
                    dom_substream = lbm_stream_dstream_substream_find(dom_stream, &(pinfo->src), pinfo->srcport, &(pinfo->dst), pinfo->destport, stream_info.stream_id);
11662
8
                    if (dom_substream == NULL)
11663
6
                    {
11664
6
                        dom_substream = lbm_stream_dstream_substream_add(dom_stream, &(pinfo->src), pinfo->srcport, &(pinfo->dst), pinfo->destport, stream_info.stream_id);
11665
6
                    }
11666
8
                    if (dom_substream != NULL)
11667
8
                    {
11668
8
                        proto_item * stream_item = NULL;
11669
8
                        proto_tree * stream_tree = NULL;
11670
8
                        proto_item * pi = NULL;
11671
8
                        lbm_uim_stream_tap_info_t * stream_tap_info = NULL;
11672
11673
8
                        lbm_stream_dstream_substream_update(dom_substream, msglen, pinfo->num);
11674
8
                        stream_item = proto_tree_add_item(subtree, hf_lbm_stream, tvb, 0, 0, ENC_NA);
11675
8
                        proto_item_set_generated(stream_item);
11676
8
                        stream_tree = proto_item_add_subtree(stream_item, ett_lbm_stream);
11677
8
                        pi = proto_tree_add_uint64(stream_tree, hf_lbm_stream_stream_id, tvb, 0, 0, dom_stream->channel);
11678
8
                        proto_item_set_generated(pi);
11679
8
                        pi = proto_tree_add_uint(stream_tree, hf_lbm_stream_substream_id, tvb, 0, 0, dom_substream->substream_id);
11680
8
                        proto_item_set_generated(pi);
11681
8
                        proto_tree_move_item(subtree, last_initial_item, stream_item);
11682
11683
8
                        stream_tap_info = wmem_new0(pinfo->pool, lbm_uim_stream_tap_info_t);
11684
8
                        stream_tap_info->channel = dom_stream->channel;
11685
8
                        stream_tap_info->substream_id = dom_substream->substream_id;
11686
8
                        stream_tap_info->bytes = msglen;
11687
8
                        stream_tap_info->endpoint_a.type = lbm_uim_domain_stream;
11688
8
                        stream_tap_info->endpoint_a.stream_info.dest = destination_info.endpoint_a;
11689
8
                        stream_tap_info->endpoint_b.type = lbm_uim_domain_stream;
11690
8
                        stream_tap_info->endpoint_b.stream_info.dest = destination_info.endpoint_b;
11691
8
                        tap_queue_packet(lbmc_stream_tap_handle, pinfo, (void *) stream_tap_info);
11692
8
                    }
11693
8
                    uim_stream_info.channel = dom_stream->channel;
11694
8
                    uim_stream_info.sqn = stream_info.sqn;
11695
8
                    uim_stream_info.endpoint_a.type = lbm_uim_domain_stream;
11696
8
                    uim_stream_info.endpoint_a.stream_info.dest = destination_info.endpoint_a;
11697
8
                    uim_stream_info.endpoint_b.type = lbm_uim_domain_stream;
11698
8
                    uim_stream_info.endpoint_b.stream_info.dest = destination_info.endpoint_b;
11699
8
                    puim_stream_info = &uim_stream_info;
11700
8
                }
11701
8
            }
11702
369
        }
11703
382
        if (next_hdr == LBMC_NHDR_DATA)
11704
134
        {
11705
134
            int actual_data_len;
11706
134
            int msgprop_offset;
11707
134
            tvbuff_t * data_tvb = NULL;
11708
134
            tvbuff_t * msgprop_tvb = NULL;
11709
134
            bool msg_complete = true;
11710
134
            bool msg_reassembled = false;
11711
134
            bool can_call_subdissector = false;
11712
134
            lbmc_message_entry_t * msg = NULL;
11713
134
            bool dissector_found = false;
11714
134
            heur_dtbl_entry_t *hdtbl_entry;
11715
134
            bool retransmission = false;
11716
11717
            /* Note on heuristic subdissectors:
11718
               If the preference "lbmc.use_heuristic_subdissectors" is true, and a heuristic subdissector is
11719
               registered for "lbm_msg_payload", we can call the heuristic subdissector under one of the
11720
               following conditions:
11721
               - The message is unfragmented
11722
               - The message is fragmented, AND the preference "lbmc.reassemble_fragments" is true, AND
11723
                 the entire message has been reassembled.
11724
               This applies to the lbmpdm subdissector as well.
11725
             */
11726
11727
134
            if (frag_info.fragment_found == 0)
11728
130
            {
11729
                /* No fragment info */
11730
130
                if (msgprop_len > 0)
11731
0
                {
11732
                    /* Has message properties */
11733
0
                    actual_data_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset) - msgprop_len;
11734
0
                    msgprop_offset = pkt_offset + actual_data_len;
11735
0
                    data_tvb = tvb_new_subset_length(lbmc_tvb, pkt_offset, actual_data_len);
11736
0
                    msgprop_tvb = tvb_new_subset_length(lbmc_tvb, msgprop_offset, msgprop_len);
11737
0
                }
11738
130
                else
11739
130
                {
11740
130
                    data_tvb = tvb_new_subset_remaining(lbmc_tvb, pkt_offset);
11741
130
                    msgprop_tvb = NULL;
11742
130
                }
11743
130
                msg_complete = true;
11744
130
                msg_reassembled = false;
11745
130
                can_call_subdissector = true;
11746
130
            }
11747
4
            else
11748
4
            {
11749
                /* Fragment info is present */
11750
4
                if (!lbmc_reassemble_fragments)
11751
4
                {
11752
                    /* But don't reassemble them */
11753
4
                    actual_data_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset);
11754
4
                    data_tvb = tvb_new_subset_length(lbmc_tvb, pkt_offset, actual_data_len);
11755
4
                    msgprop_tvb = NULL;
11756
4
                    msg_complete = true;
11757
4
                }
11758
0
                else
11759
0
                {
11760
                    /* Fragment info is present and we should reassemble */
11761
0
                    uint32_t port;
11762
11763
0
                    port = (uint32_t)pinfo->destport;
11764
0
                    msg = lbmc_message_find(actual_channel, &(pinfo->dst), port, &frag_info);
11765
0
                    if (msg == NULL)
11766
0
                    {
11767
0
                        msg = lbmc_message_create(actual_channel, &(pinfo->dst), port, &frag_info, msgprop_len);
11768
0
                    }
11769
0
                    if (msg != NULL)
11770
0
                    {
11771
                        /* Check fragment against message */
11772
0
                        int frag_len = tvb_reported_length_remaining(lbmc_tvb, pkt_offset);
11773
0
                        if (!lbmc_message_add_fragment(msg, lbmc_tvb, pkt_offset, &frag_info, pinfo->num))
11774
0
                        {
11775
                            /* Indicate a malformed packet */
11776
0
                            expert_add_info_format(pinfo, hdr_frag_item, &ei_lbmc_analysis_invalid_fragment,
11777
0
                                "Invalid fragment for message (msglen=%" PRIu32 ", frag offset=%" PRIu32 ", frag len=%d",
11778
0
                                msg->total_len, frag_info.offset, frag_len);
11779
0
                        }
11780
0
                        else
11781
0
                        {
11782
0
                            if (data_is_umq_cmd_resp)
11783
0
                            {
11784
0
                                msg->data_is_umq_cmd_resp = true;
11785
0
                            }
11786
0
                            if (msg->total_len == msg->accumulated_len)
11787
0
                            {
11788
0
                                if (msg->reassembled_frame == 0)
11789
0
                                {
11790
                                    /* Store the frame number in which the message will be reassembled */
11791
0
                                    msg->reassembled_frame = pinfo->num;
11792
0
                                }
11793
0
                                msgprop_tvb = NULL;
11794
0
                                msg_reassembled = true;
11795
0
                                msg_complete = true;
11796
0
                                if (msg->reassembled_frame == pinfo->num)
11797
0
                                {
11798
                                    /* We can only call a subdissector if this is the frame in which the message is reassembled */
11799
0
                                    can_call_subdissector = true;
11800
0
                                }
11801
0
                            }
11802
0
                            else
11803
0
                            {
11804
                                /* This is not the last fragment of the message. */
11805
0
                                msgprop_tvb = NULL;
11806
0
                                msg_reassembled = true;
11807
0
                                msg_complete = false;
11808
0
                            }
11809
0
                        }
11810
0
                    }
11811
0
                    data_tvb = tvb_new_subset_remaining(lbmc_tvb, pkt_offset);
11812
0
                }
11813
4
            }
11814
11815
            /* Note:
11816
                - Data to be dissected is in data_tvb
11817
                - Message properties to be dissected is in msgprop_tvb
11818
            */
11819
            /* For reassembled messages, show the frame or reassembly information. */
11820
134
            if (msg_reassembled)
11821
0
            {
11822
0
                if (msg->reassembled_frame == pinfo->num)
11823
0
                {
11824
0
                    proto_tree * frag_tree = NULL;
11825
0
                    proto_item * frag_item = NULL;
11826
0
                    proto_item * pi = NULL;
11827
0
                    bool first_item = true;
11828
0
                    lbmc_fragment_entry_t * cur = NULL;
11829
0
                    uint8_t * buf = NULL;
11830
11831
                    /* Create a new real data tvb of the reassembled data. */
11832
0
                    buf = (uint8_t*)wmem_alloc0(pinfo->pool, (size_t)msg->total_len);
11833
0
                    cur = msg->entry;
11834
0
                    while (cur != NULL)
11835
0
                    {
11836
0
                        memcpy(buf + cur->fragment_start, cur->data, cur->fragment_len);
11837
0
                        cur = cur->next;
11838
0
                    }
11839
0
                    msg->reassembled_data = tvb_new_child_real_data(lbmc_tvb, buf, msg->total_len, msg->total_len);
11840
0
                    msg_complete = true;
11841
                    /* Create separate data and msgprop tvbs */
11842
0
                    msg->data = tvb_new_subset_length(msg->reassembled_data, 0, msg->total_len - msg->msgprop_len);
11843
0
                    if (msg->msgprop_len > 0)
11844
0
                    {
11845
0
                        msg->msgprop = tvb_new_subset_length(msg->reassembled_data, msg->total_len - msg->msgprop_len, msg->msgprop_len);
11846
0
                    }
11847
0
                    add_new_data_source(pinfo, msg->reassembled_data, "Reassembled Data");
11848
0
                    if (msg->data == NULL)
11849
0
                    {
11850
0
                        msg->data = tvb_new_subset_length(msg->reassembled_data, 0, msg->total_len - msg->msgprop_len);
11851
0
                    }
11852
0
                    if (msg->msgprop == NULL)
11853
0
                    {
11854
0
                        if (msg->msgprop_len > 0)
11855
0
                        {
11856
0
                            msg->msgprop = tvb_new_subset_length(msg->reassembled_data, msg->total_len - msg->msgprop_len, msg->msgprop_len);
11857
0
                        }
11858
0
                    }
11859
0
                    data_tvb = msg->data;
11860
0
                    msgprop_tvb = msg->msgprop;
11861
0
                    data_is_umq_cmd_resp = msg->data_is_umq_cmd_resp;
11862
11863
0
                    frag_item = proto_tree_add_none_format(subtree,
11864
0
                        hf_lbmc_reassembly,
11865
0
                        data_tvb,
11866
0
                        0,
11867
0
                        tvb_reported_length_remaining(data_tvb, 0),
11868
0
                        "%" PRIu32 " Reassembled Fragments (%" PRIu32 " bytes):",
11869
0
                        msg->fragment_count,
11870
0
                        msg->total_len);
11871
0
                    frag_tree = proto_item_add_subtree(frag_item, ett_lbmc_reassembly);
11872
0
                    cur = msg->entry;
11873
0
                    first_item = true;
11874
0
                    while (cur != NULL)
11875
0
                    {
11876
0
                        pi = proto_tree_add_uint_format_value(frag_tree,
11877
0
                            hf_lbmc_reassembly_fragment,
11878
0
                            msg->reassembled_data,
11879
0
                            cur->fragment_start,
11880
0
                            cur->fragment_len,
11881
0
                            cur->frame,
11882
0
                            "Frame: %" PRIu32 ", payload: %" PRIu32 "-%" PRIu32 " (%" PRIu32 " bytes)",
11883
0
                            cur->frame,
11884
0
                            cur->fragment_start,
11885
0
                            (cur->fragment_start + cur->fragment_len) - 1,
11886
0
                            cur->fragment_len);
11887
0
                        proto_item_set_generated(pi);
11888
0
                        if (first_item)
11889
0
                        {
11890
0
                            proto_item_append_text(frag_item, " #%" PRIu32 "(%" PRIu32 ")", cur->frame, cur->fragment_len);
11891
0
                        }
11892
0
                        else
11893
0
                        {
11894
0
                            proto_item_append_text(frag_item, ", #%" PRIu32 "(%" PRIu32 ")", cur->frame, cur->fragment_len);
11895
0
                        }
11896
0
                        first_item = false;
11897
0
                        cur = cur->next;
11898
0
                    }
11899
0
                    proto_item_set_generated(frag_item);
11900
0
                }
11901
0
                else
11902
0
                {
11903
0
                    proto_item * pi;
11904
11905
0
                    if (msg->reassembled_frame == 0)
11906
0
                    {
11907
0
                        proto_tree_add_expert_remaining(subtree, pinfo, &ei_lbmc_analysis_missing_reassembly_frame, data_tvb, 0);
11908
0
                    }
11909
0
                    else
11910
0
                    {
11911
0
                        pi = proto_tree_add_uint(subtree, hf_reassembly_frame, data_tvb, 0, tvb_reported_length(data_tvb), msg->reassembled_frame);
11912
0
                        proto_item_set_generated(pi);
11913
0
                    }
11914
0
                }
11915
0
            }
11916
11917
134
            if (data_is_umq_cmd_resp && msg_complete)
11918
1
            {
11919
1
                (void)dissect_nhdr_umq_cmd_resp(data_tvb, 0, pinfo, subtree, true);
11920
1
                col_append_sep_str(pinfo->cinfo, COL_INFO, " ", "UMQ-CMD-RESP");
11921
1
            }
11922
133
            else
11923
133
            {
11924
133
                if ((!lbm_channel_is_transport(channel)) && (!has_source_index))
11925
93
                {
11926
93
                    retransmission = true;
11927
93
                }
11928
133
                msg_type = lbmc_determine_data_msg_type(retransmission, found_header);
11929
133
                col_append_sep_str(pinfo->cinfo, COL_INFO, " ", msg_type);
11930
133
                if (can_call_subdissector)
11931
101
                {
11932
101
                    if (lbmc_use_heuristic_subdissectors)
11933
101
                    {
11934
101
                        dissector_found = dissector_try_heuristic(lbmc_heuristic_subdissector_list, data_tvb, pinfo, subtree, &hdtbl_entry, NULL);
11935
101
                    }
11936
101
                    if (!dissector_found)
11937
101
                    {
11938
101
                        if (lbmc_dissect_lbmpdm)
11939
0
                        {
11940
0
                            int encoding;
11941
0
                            uint32_t pdmlen;
11942
11943
0
                            dissector_found = (bool)lbmpdm_verify_payload(data_tvb, 0, &encoding, &pdmlen);
11944
0
                        }
11945
101
                        if (dissector_found)
11946
0
                        {
11947
0
                            lbmpdm_dissect_lbmpdm_payload(data_tvb, 0, pinfo, subtree, actual_channel);
11948
0
                        }
11949
101
                        else
11950
101
                        {
11951
101
                            call_data_dissector(data_tvb, pinfo, subtree);
11952
101
                        }
11953
101
                    }
11954
101
                }
11955
32
                else
11956
32
                {
11957
32
                    call_data_dissector(data_tvb, pinfo, subtree);
11958
32
                }
11959
133
            }
11960
134
            if (msgprop_tvb != NULL)
11961
0
            {
11962
0
                dissect_msg_properties(msgprop_tvb, 0, pinfo, subtree);
11963
0
            }
11964
134
            if (msg_complete)
11965
105
            {
11966
105
                if (puim_stream_info != NULL)
11967
2
                {
11968
2
                    lbm_uim_stream_info_t * msg_info;
11969
11970
2
                    puim_stream_info->description = msg_type;
11971
                    /* The dup is needed since there may be multiple stream infos per packet. */
11972
2
                    msg_info = lbmc_dup_stream_info(pinfo->pool, puim_stream_info);
11973
2
                    tap_queue_packet(lbmc_uim_tap_handle, pinfo, (void *)msg_info);
11974
2
                }
11975
105
            }
11976
134
            len_dissected += tvb_reported_length_remaining(lbmc_tvb, pkt_offset);
11977
134
        }
11978
248
        else
11979
248
        {
11980
248
            msg_type = lbmc_determine_msg_type(found_header, rxreq_is_tsni);
11981
11982
248
            if (msg_type != NULL)
11983
164
            {
11984
164
                col_append_sep_str(pinfo->cinfo, COL_INFO, " ", msg_type);
11985
164
                if (puim_stream_info != NULL)
11986
5
                {
11987
5
                    lbm_uim_stream_info_t * msg_info;
11988
11989
5
                    puim_stream_info->description = msg_type;
11990
                    /* The dup is needed since there may be multiple stream infos per packet. */
11991
5
                    msg_info = lbmc_dup_stream_info(pinfo->pool, puim_stream_info);
11992
5
                    tap_queue_packet(lbmc_uim_tap_handle, pinfo, (void *)msg_info);
11993
5
                }
11994
164
            }
11995
248
        }
11996
382
        tvb_lbmc_offset += msglen;
11997
382
    }
11998
401
    return (len_dissected);
11999
653
}
12000
12001
int lbmc_get_minimum_length(void)
12002
520
{
12003
520
    return (O_LBMC_HDR_T_MSGLEN + L_LBMC_HDR_T_MSGLEN);
12004
520
}
12005
12006
uint16_t lbmc_get_message_length(tvbuff_t * tvb, unsigned offset)
12007
661
{
12008
661
    return (tvb_get_ntohs(tvb, offset + O_LBMC_HDR_T_MSGLEN));
12009
661
}
12010
12011
/* Register all the bits needed with the filtering engine */
12012
void proto_register_lbmc(void)
12013
16
{
12014
16
    static hf_register_info hf[] =
12015
16
    {
12016
16
        { &hf_lbmc_tag,
12017
16
            { "Tag", "lbmc.tag", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12018
16
        { &hf_lbmc_topic,
12019
16
            { "Topic", "lbmc.topic", FT_STRING, BASE_NONE, NULL, 0x0, "Topic string", HFILL } },
12020
16
        { &hf_lbmc_version,
12021
16
            { "Version", "lbmc.version", FT_UINT8, BASE_DEC, NULL, LBMC_HDR_VER_TYPE_VER_MASK, "LBMC protocol version", HFILL } },
12022
16
        { &hf_lbmc_type,
12023
16
            { "Type", "lbmc.type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_message_type), LBMC_HDR_VER_TYPE_TYPE_MASK, "LBMC packet type", HFILL } },
12024
16
        { &hf_lbmc_next_hdr,
12025
16
            { "Next Header", "lbmc.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12026
16
        { &hf_lbmc_msglen,
12027
16
            { "Message Length", "lbmc.msglen", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12028
16
        { &hf_lbmc_tidx,
12029
16
            { "Topic Index", "lbmc.tidx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12030
16
        { &hf_lbmc_sqn,
12031
16
            { "Sequence Number", "lbmc.sqn", FT_UINT32, BASE_DEC, NULL, 0x0, "Topic sequence number", HFILL } },
12032
16
        { &hf_lbmc_frag,
12033
16
            { "Fragment", "lbmc.frag", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12034
16
        { &hf_lbmc_frag_next_hdr,
12035
16
            { "Next Header", "lbmc.frag.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12036
16
        { &hf_lbmc_frag_hdr_len,
12037
16
            { "Header Length", "lbmc.frag.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12038
16
        { &hf_lbmc_frag_flags,
12039
16
            { "Flags", "lbmc.frag.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12040
16
        { &hf_lbmc_frag_flags_ignore,
12041
16
            { "Ignore", "lbmc.frag.flags.ignore", FT_BOOLEAN, L_LBMC_FRAG_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
12042
16
        { &hf_lbmc_frag_first_sqn,
12043
16
            { "First Sequence Number", "lbmc.frag.first_sqn", FT_UINT32, BASE_DEC, NULL, 0x0, "First sqn of fragment for this message", HFILL } },
12044
16
        { &hf_lbmc_frag_offset,
12045
16
            { "Offset", "lbmc.frag.offset", FT_UINT32, BASE_DEC, NULL, 0x0, "Offset of this fragment within message", HFILL } },
12046
16
        { &hf_lbmc_frag_len,
12047
16
            { "Length", "lbmc.frag.len", FT_UINT32, BASE_DEC, NULL, 0x0, "Total length of message", HFILL } },
12048
16
        { &hf_lbmc_batch,
12049
16
            { "Batch", "lbmc.batch", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12050
16
        { &hf_lbmc_batch_next_hdr,
12051
16
            { "Next Header", "lbmc.batch.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12052
16
        { &hf_lbmc_batch_hdr_len,
12053
16
            { "Header Length", "lbmc.batch.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12054
16
        { &hf_lbmc_batch_flags,
12055
16
            { "Flags", "lbmc.batch.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12056
16
        { &hf_lbmc_batch_flags_ignore,
12057
16
            { "Ignore", "lbmc.batch.flags.ignore", FT_BOOLEAN, L_LBMC_BATCH_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
12058
16
        { &hf_lbmc_batch_flags_batch_start,
12059
16
            { "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 } },
12060
16
        { &hf_lbmc_batch_flags_batch_end,
12061
16
            { "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 } },
12062
16
        { &hf_lbmc_tcp_request,
12063
16
            { "Request", "lbmc.tcp_request", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12064
16
        { &hf_lbmc_tcp_request_next_hdr,
12065
16
            { "Next Header", "lbmc.tcp_request.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12066
16
        { &hf_lbmc_tcp_request_hdr_len,
12067
16
            { "Header Length", "lbmc.tcp_request.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12068
16
        { &hf_lbmc_tcp_request_flags,
12069
16
            { "Flags", "lbmc.tcp_request.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12070
16
        { &hf_lbmc_tcp_request_flags_ignore,
12071
16
            { "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 } },
12072
16
        { &hf_lbmc_tcp_request_transport,
12073
16
            { "Transport", "lbmc.tcp_request.transport", FT_UINT8, BASE_HEX, VALS(lbmc_req_transport_type), 0x0, "Transport type", HFILL } },
12074
16
        { &hf_lbmc_tcp_request_qidx,
12075
16
            { "Request Index", "lbmc.tcp_request.qidx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12076
16
        { &hf_lbmc_tcp_request_port,
12077
16
            { "Port", "lbmc.tcp_request.port", FT_UINT16, BASE_PT_TCP, NULL, 0x0, NULL, HFILL } },
12078
16
        { &hf_lbmc_tcp_request_reserved,
12079
16
            { "Reserved", "lbmc.tcp_request.reserved", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12080
16
        { &hf_lbmc_tcp_request_ipaddr,
12081
16
            { "Requester IP Address", "lbmc.tcp_request.ipaddr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12082
16
        { &hf_lbmc_topicname,
12083
16
            { "Topicname", "lbmc.topicname", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12084
16
        { &hf_lbmc_topicname_next_hdr,
12085
16
            { "Next Header", "lbmc.topicname.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12086
16
        { &hf_lbmc_topicname_hdr_len,
12087
16
            { "Header Length", "lbmc.topicname.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12088
16
        { &hf_lbmc_topicname_flags,
12089
16
            { "Flags", "lbmc.topicname.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12090
16
        { &hf_lbmc_topicname_flags_ignore,
12091
16
            { "Ignore", "lbmc.topicname.flags.ignore", FT_BOOLEAN, L_LBMC_TOPICNAME_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
12092
16
        { &hf_lbmc_topicname_topicname,
12093
16
            { "Topic", "lbmc.topicname.topic", FT_STRING, BASE_NONE, NULL, 0x0, "Topic name", HFILL } },
12094
16
        { &hf_lbmc_apphdr,
12095
16
            { "AppHeader", "lbmc.apphdr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12096
16
        { &hf_lbmc_apphdr_next_hdr,
12097
16
            { "Next Header", "lbmc.apphdr.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12098
16
        { &hf_lbmc_apphdr_hdr_len,
12099
16
            { "Header Length", "lbmc.apphdr.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12100
16
        { &hf_lbmc_apphdr_ignore,
12101
16
            { "Ignore", "lbmc.apphdr.ignore", FT_BOOLEAN, L_LBMC_APPHDR_HDR_T_CODE * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
12102
16
        { &hf_lbmc_apphdr_code,
12103
16
            { "Application Code", "lbmc.apphdr.code", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_APPHDR_CODE_MASK, "Application header code", HFILL } },
12104
16
        { &hf_lbmc_apphdr_data,
12105
16
            { "Data", "lbmc.apphdr.data", FT_NONE, BASE_NONE, NULL, 0x0, "Application header data", HFILL } },
12106
16
        { &hf_lbmc_apphdr_chain,
12107
16
            { "AppHeader Chain", "lbmc.apphdr_chain", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12108
16
        { &hf_lbmc_apphdr_chain_next_hdr,
12109
16
            { "Next Header", "lbmc.apphdr_chain.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12110
16
        { &hf_lbmc_apphdr_chain_hdr_len,
12111
16
            { "Header Length", "lbmc.apphdr_chain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12112
16
        { &hf_lbmc_apphdr_chain_res,
12113
16
            { "Reserved", "lbmc.apphdr_chain.res", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12114
16
        { &hf_lbmc_apphdr_chain_first_chain_hdr,
12115
16
            { "First chain hdr", "lbmc.apphdr_chain.first_chain_hdr", FT_UINT8, BASE_HEX_DEC, VALS(lbmc_apphdr_chain_type), 0x0, NULL, HFILL } },
12116
16
        { &hf_lbmc_apphdr_chain_element,
12117
16
            { "AppHeader Chain Element", "lbmc.apphdr_chain.element", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12118
16
        { &hf_lbmc_apphdr_chain_element_next_hdr,
12119
16
            { "Next Header", "lbmc.apphdr_chain.element.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_apphdr_chain_type), 0x0, NULL, HFILL } },
12120
16
        { &hf_lbmc_apphdr_chain_element_hdr_len,
12121
16
            { "Header Length", "lbmc.apphdr_chain.element.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12122
16
        { &hf_lbmc_apphdr_chain_element_res,
12123
16
            { "Reserved", "lbmc.apphdr_chain.element.res", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12124
16
        { &hf_lbmc_apphdr_chain_element_data,
12125
16
            { "Data", "lbmc.apphdr_chain.element.data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12126
16
        { &hf_lbmc_apphdr_chain_msgprop,
12127
16
            { "AppHeader Chain Message Properties Element", "lbmc.apphdr_chain.msgprop", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12128
16
        { &hf_lbmc_apphdr_chain_msgprop_next_hdr,
12129
16
            { "Next Header", "lbmc.apphdr_chain.msgprop.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_apphdr_chain_type), 0x0, NULL, HFILL } },
12130
16
        { &hf_lbmc_apphdr_chain_msgprop_hdr_len,
12131
16
            { "Header Length", "lbmc.apphdr_chain.msgprop.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12132
16
        { &hf_lbmc_apphdr_chain_msgprop_res,
12133
16
            { "Reserved", "lbmc.apphdr_chain.msgprop.res", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12134
16
        { &hf_lbmc_apphdr_chain_msgprop_len,
12135
16
            { "Properties Length", "lbmc.apphdr_chain.msgprop.proplen", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12136
16
        { &hf_lbmc_umq_msgid,
12137
16
            { "UMQ MessageID", "lbmc.umq_msgid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12138
16
        { &hf_lbmc_umq_msgid_next_hdr,
12139
16
            { "Next Header", "lbmc.umq_msgid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12140
16
        { &hf_lbmc_umq_msgid_hdr_len,
12141
16
            { "Header Length", "lbmc.umq_msgid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12142
16
        { &hf_lbmc_umq_msgid_flags,
12143
16
            { "Flags", "lbmc.umq_msgid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12144
16
        { &hf_lbmc_umq_msgid_flags_ignore,
12145
16
            { "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 } },
12146
16
        { &hf_lbmc_umq_msgid_msgid_regid,
12147
16
            { "Message ID RegID", "lbmc.umq_msgid.msgid_regid", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, "Message ID registration ID", HFILL } },
12148
16
        { &hf_lbmc_umq_msgid_msgid_stamp,
12149
16
            { "MessageID Stamp", "lbmc.umq_msgid.msgid_stamp", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, "Message ID stamp", HFILL } },
12150
16
        { &hf_lbmc_umq_sqd_rcv,
12151
16
            { "UMQ SQD Receiver", "lbmc.umq_sqd_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12152
16
        { &hf_lbmc_umq_sqd_rcv_next_hdr,
12153
16
            { "Next Header", "lbmc.umq_sqd_rcv.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12154
16
        { &hf_lbmc_umq_sqd_rcv_hdr_len,
12155
16
            { "Header Length", "lbmc.umq_sqd_rcv.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12156
16
        { &hf_lbmc_umq_sqd_rcv_flags,
12157
16
            { "Flags", "lbmc.umq_sqd_rcv.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12158
16
        { &hf_lbmc_umq_sqd_rcv_flags_ignore,
12159
16
            { "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 } },
12160
16
        { &hf_lbmc_umq_sqd_rcv_flags_r_flag,
12161
16
            { "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 } },
12162
16
        { &hf_lbmc_umq_sqd_rcv_flags_s_flag,
12163
16
            { "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 } },
12164
16
        { &hf_lbmc_umq_sqd_rcv_flags_re_flag,
12165
16
            { "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 } },
12166
16
        { &hf_lbmc_umq_sqd_rcv_flags_eoi_flag,
12167
16
            { "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 } },
12168
16
        { &hf_lbmc_umq_sqd_rcv_flags_boi_flag,
12169
16
            { "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 } },
12170
16
        { &hf_lbmc_umq_sqd_rcv_queue_id,
12171
16
            { "Queue ID", "lbmc.umq_sqd_rcv.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12172
16
        { &hf_lbmc_umq_sqd_rcv_queue_ver,
12173
16
            { "Queue Version", "lbmc.umq_sqd_rcv.queue_ver", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12174
16
        { &hf_lbmc_umq_sqd_rcv_rcr_idx,
12175
16
            { "RCR Index", "lbmc.umq_sqd_rcv.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12176
16
        { &hf_lbmc_umq_sqd_rcv_assign_id,
12177
16
            { "Assignment ID", "lbmc.umq_sqd_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12178
16
        { &hf_lbmc_umq_resub,
12179
16
            { "UMQ Resubmission", "lbmc.umq_resub", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12180
16
        { &hf_lbmc_umq_resub_next_hdr,
12181
16
            { "Next Header", "lbmc.umq_resub.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12182
16
        { &hf_lbmc_umq_resub_hdr_len,
12183
16
            { "Header Length", "lbmc.umq_resub.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12184
16
        { &hf_lbmc_umq_resub_flags,
12185
16
            { "Flags", "lbmc.umq_resub.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12186
16
        { &hf_lbmc_umq_resub_flags_ignore,
12187
16
            { "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 } },
12188
16
        { &hf_lbmc_umq_resub_flags_q_flag,
12189
16
            { "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 } },
12190
16
        { &hf_lbmc_umq_resub_rcr_idx,
12191
16
            { "RCR Index", "lbmc.umq_resub.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "Receiver control record index", HFILL } },
12192
16
        { &hf_lbmc_umq_resub_resp_ip,
12193
16
            { "Response IP Address", "lbmc.umq_resub.resp_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12194
16
        { &hf_lbmc_umq_resub_resp_port,
12195
16
            { "Response Port", "lbmc.umq_resub.resp_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12196
16
        { &hf_lbmc_umq_resub_appset_idx,
12197
16
            { "AppSet Index", "lbmc.umq_resub.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12198
16
        { &hf_lbmc_otid,
12199
16
            { "OTID", "lbmc.otid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12200
16
        { &hf_lbmc_otid_next_hdr,
12201
16
            { "Next Header", "lbmc.otid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12202
16
        { &hf_lbmc_otid_hdr_len,
12203
16
            { "Header Length", "lbmc.otid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12204
16
        { &hf_lbmc_otid_flags,
12205
16
            { "Flags", "lbmc.otid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12206
16
        { &hf_lbmc_otid_flags_ignore,
12207
16
            { "Ignore", "lbmc.otid.flags.ignore", FT_BOOLEAN, L_LBMC_OTID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
12208
16
        { &hf_lbmc_otid_otid,
12209
16
            { "OTID", "lbmc.otid.otid", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12210
16
        { &hf_lbmc_ctxinst,
12211
16
            { "Context Instance", "lbmc.ctxinst", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12212
16
        { &hf_lbmc_ctxinst_next_hdr,
12213
16
            { "Next Header", "lbmc.ctxinst.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12214
16
        { &hf_lbmc_ctxinst_hdr_len,
12215
16
            { "Header Length", "lbmc.ctxinst.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12216
16
        { &hf_lbmc_ctxinst_flags,
12217
16
            { "Flags", "lbmc.ctxinst.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12218
16
        { &hf_lbmc_ctxinst_flags_ignore,
12219
16
            { "Ignore", "lbmc.ctxinst_flags.ignore", FT_BOOLEAN, L_LBMC_CTXINST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
12220
16
        { &hf_lbmc_ctxinst_ctxinst,
12221
16
            { "Context Instance", "lbmc.ctxinst.ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12222
16
        { &hf_lbmc_ctxinstd,
12223
16
            { "Context Instance Destination", "lbmc.ctxinstd", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12224
16
        { &hf_lbmc_ctxinstr,
12225
16
            { "Context Instance Return", "lbmc.ctxinstr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12226
16
        { &hf_lbmc_srcidx,
12227
16
            { "Source Index", "lbmc.srcidx", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12228
16
        { &hf_lbmc_srcidx_next_hdr,
12229
16
            { "Next Header", "lbmc.srcidx.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12230
16
        { &hf_lbmc_srcidx_hdr_len,
12231
16
            { "Header Length", "lbmc.srcidx.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12232
16
        { &hf_lbmc_srcidx_flags,
12233
16
            { "Flags", "lbmc.srcidx.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12234
16
        { &hf_lbmc_srcidx_flags_ignore,
12235
16
            { "Ignore", "lbmc.srcidx.flags.ignore", FT_BOOLEAN, L_LBMC_SRCIDX_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
12236
16
        { &hf_lbmc_srcidx_srcidx,
12237
16
            { "Source Index", "lbmc.srcidx.srcidx", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12238
16
        { &hf_lbmc_umq_ulb_msg,
12239
16
            { "UMQ ULB Message", "lbmc.umq_ulb_msg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12240
16
        { &hf_lbmc_umq_ulb_msg_next_hdr,
12241
16
            { "Next Header", "lbmc.umq_ulb_msg.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12242
16
        { &hf_lbmc_umq_ulb_msg_hdr_len,
12243
16
            { "Header Length", "lbmc.umq_ulb_msg.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12244
16
        { &hf_lbmc_umq_ulb_msg_flags,
12245
16
            { "Flags", "lbmc.umq_ulb_msg.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12246
16
        { &hf_lbmc_umq_ulb_msg_flags_ignore,
12247
16
            { "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 } },
12248
16
        { &hf_lbmc_umq_ulb_msg_flags_a_flag,
12249
16
            { "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 } },
12250
16
        { &hf_lbmc_umq_ulb_msg_flags_r_flag,
12251
16
            { "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 } },
12252
16
        { &hf_lbmc_umq_ulb_msg_queue_id,
12253
16
            { "Queue ID", "lbmc.umq_ulb_msg.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12254
16
        { &hf_lbmc_umq_ulb_msg_ulb_src_id,
12255
16
            { "ULB Source ID", "lbmc.umq_ulb_msg.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12256
16
        { &hf_lbmc_umq_ulb_msg_assign_id,
12257
16
            { "Assignment ID", "lbmc.umq_ulb_msg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12258
16
        { &hf_lbmc_umq_ulb_msg_appset_idx,
12259
16
            { "AppSet Index", "lbmc.umq_ulb_msg.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12260
16
        { &hf_lbmc_umq_ulb_msg_num_ras,
12261
16
            { "Number of RAs", "lbmc.umq_ulb_msg.num_ras", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, "Number of reassignments", HFILL } },
12262
16
        { &hf_lbmc_ssf_init,
12263
16
            { "SSF Init", "lbmc.ssf_init", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12264
16
        { &hf_lbmc_ssf_init_next_hdr,
12265
16
            { "Next Header", "lbmc.ssf_init.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12266
16
        { &hf_lbmc_ssf_init_hdr_len,
12267
16
            { "Header Length", "lbmc.ssf_init.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12268
16
        { &hf_lbmc_ssf_init_transport,
12269
16
            { "Transport", "lbmc.ssf_init.transport", FT_UINT8, BASE_DEC, VALS(lbmc_ssf_transport_type), 0x0, NULL, HFILL } },
12270
16
        { &hf_lbmc_ssf_init_flags,
12271
16
            { "Flags", "lbmc.ssf_init.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12272
16
        { &hf_lbmc_ssf_init_flags_ignore,
12273
16
            { "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 } },
12274
16
        { &hf_lbmc_ssf_init_flags_default_inclusions,
12275
16
            { "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 } },
12276
16
        { &hf_lbmc_ssf_init_flags_default_exclusions,
12277
16
            { "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 } },
12278
16
        { &hf_lbmc_ssf_init_transport_idx,
12279
16
            { "Transport Index", "lbmc.ssf_init.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12280
16
        { &hf_lbmc_ssf_init_client_idx,
12281
16
            { "Client Index", "lbmc.ssf_init.client_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12282
16
        { &hf_lbmc_ssf_init_ssf_port,
12283
16
            { "SSF Port", "lbmc.ssf_init.ssf_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12284
16
        { &hf_lbmc_ssf_init_res,
12285
16
            { "Reserved", "lbmc.ssf_init.res", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12286
16
        { &hf_lbmc_ssf_init_ssf_ip,
12287
16
            { "SSF IP Address", "lbmc.ssf_init.ssf_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12288
16
        { &hf_lbmc_ssf_creq,
12289
16
            { "SSF CReq", "lbmc.ssf_creq", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12290
16
        { &hf_lbmc_ssf_creq_next_hdr,
12291
16
            { "Next Header", "lbmc.ssf_creq.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12292
16
        { &hf_lbmc_ssf_creq_hdr_len,
12293
16
            { "Header Length", "lbmc.ssf_creq.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12294
16
        { &hf_lbmc_ssf_creq_flags,
12295
16
            { "Flags", "lbmc.ssf_creq.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12296
16
        { &hf_lbmc_ssf_creq_flags_ignore,
12297
16
            { "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 } },
12298
16
        { &hf_lbmc_ssf_creq_mode,
12299
16
            { "Mode", "lbmc.ssf_creq.mode", FT_UINT8, BASE_HEX, VALS(lbmc_ssf_creq_mode), 0x0, NULL, HFILL } },
12300
16
        { &hf_lbmc_ssf_creq_transport_idx,
12301
16
            { "Transport Index", "lbmc.ssf_creq.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12302
16
        { &hf_lbmc_ssf_creq_topic_idx,
12303
16
            { "Topic Index", "lbmc.ssf_creq.topic_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12304
16
        { &hf_lbmc_ssf_creq_client_idx,
12305
16
            { "Client Index", "lbmc.ssf_creq.client_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12306
16
        { &hf_lbmc_ume_preg,
12307
16
            { "UME PReg", "lbmc.ume_preg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12308
16
        { &hf_lbmc_ume_preg_next_hdr,
12309
16
            { "Next Header", "lbmc.ume_preg.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12310
16
        { &hf_lbmc_ume_preg_hdr_len,
12311
16
            { "Header Length", "lbmc.ume_preg.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12312
16
        { &hf_lbmc_ume_preg_flags,
12313
16
            { "Flags", "lbmc.ume_preg.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12314
16
        { &hf_lbmc_ume_preg_flags_ignore,
12315
16
            { "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 } },
12316
16
        { &hf_lbmc_ume_preg_flags_f_flag,
12317
16
            { "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 } },
12318
16
        { &hf_lbmc_ume_preg_flags_p_flag,
12319
16
            { "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 } },
12320
16
        { &hf_lbmc_ume_preg_flags_w_flag,
12321
16
            { "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 } },
12322
16
        { &hf_lbmc_ume_preg_flags_d_flag,
12323
16
            { "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 } },
12324
16
        { &hf_lbmc_ume_preg_s_flag,
12325
16
            { "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 } },
12326
16
        { &hf_lbmc_ume_preg_marker,
12327
16
            { "Marker", "lbmc.ume_preg.marker", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_PREG_MARKER_MASK, NULL, HFILL } },
12328
16
        { &hf_lbmc_ume_preg_reg_id,
12329
16
            { "Registration ID", "lbmc.ume_preg.reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12330
16
        { &hf_lbmc_ume_preg_transport_idx,
12331
16
            { "Transport Index", "lbmc.ume_preg.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12332
16
        { &hf_lbmc_ume_preg_topic_idx,
12333
16
            { "Topic Index", "lbmc.ume_preg.topic_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12334
16
        { &hf_lbmc_ume_preg_src_reg_id,
12335
16
            { "Source Registration ID", "lbmc.ume_preg.src_reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12336
16
        { &hf_lbmc_ume_preg_resp_port,
12337
16
            { "Response Port", "lbmc.ume_preg.resp_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12338
16
        { &hf_lbmc_ume_preg_res2,
12339
16
            { "Reserved2", "lbmc.ume_preg.res2", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12340
16
        { &hf_lbmc_ume_preg_resp_ip,
12341
16
            { "Response IP Address", "lbmc.ume_preg.resp_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12342
16
        { &hf_lbmc_ume_preg_resp,
12343
16
            { "UME PReg Resp", "lbmc.ume_preg_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12344
16
        { &hf_lbmc_ume_preg_resp_next_hdr,
12345
16
            { "Next Header", "lbmc.ume_preg_resp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12346
16
        { &hf_lbmc_ume_preg_resp_hdr_len,
12347
16
            { "Header Length", "lbmc.ume_preg_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12348
16
        { &hf_lbmc_ume_preg_resp_code,
12349
16
            { "Code", "lbmc.ume_preg_resp.code", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12350
16
        { &hf_lbmc_ume_preg_resp_code_ignore,
12351
16
            { "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 } },
12352
16
        { &hf_lbmc_ume_preg_resp_code_e_flag,
12353
16
            { "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 } },
12354
16
        { &hf_lbmc_ume_preg_resp_code_o_flag,
12355
16
            { "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 } },
12356
16
        { &hf_lbmc_ume_preg_resp_code_n_flag,
12357
16
            { "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 } },
12358
16
        { &hf_lbmc_ume_preg_resp_code_w_flag,
12359
16
            { "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 } },
12360
16
        { &hf_lbmc_ume_preg_resp_code_d_flag,
12361
16
            { "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 } },
12362
16
        { &hf_lbmc_ume_preg_resp_code_code,
12363
16
            { "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 } },
12364
16
        { &hf_lbmc_ume_preg_resp_s_flag,
12365
16
            { "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 } },
12366
16
        { &hf_lbmc_ume_preg_resp_marker,
12367
16
            { "Marker", "lbmc.ume_preg_resp.marker", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_PREG_MARKER_MASK, NULL, HFILL } },
12368
16
        { &hf_lbmc_ume_preg_resp_reg_id,
12369
16
            { "Registration ID", "lbmc.ume_preg_resp.reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12370
16
        { &hf_lbmc_ume_preg_resp_transport_idx,
12371
16
            { "Transport Index", "lbmc.ume_preg_resp.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12372
16
        { &hf_lbmc_ume_preg_resp_topic_idx,
12373
16
            { "Topic Index", "lbmc.ume_preg_resp.topic_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12374
16
        { &hf_lbmc_ume_preg_resp_low_seqnum,
12375
16
            { "Low Sequence Number", "lbmc.ume_preg_resp.low_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12376
16
        { &hf_lbmc_ume_preg_resp_high_seqnum,
12377
16
            { "High Sequence Number", "lbmc.ume_preg_resp.high_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12378
16
        { &hf_lbmc_ume_ack,
12379
16
            { "UME ACK", "lbmc.ume_ack", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12380
16
        { &hf_lbmc_ume_ack_next_hdr,
12381
16
            { "Next Header", "lbmc.ume_ack.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12382
16
        { &hf_lbmc_ume_ack_hdr_len,
12383
16
            { "Header Length", "lbmc.ume_ack.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12384
16
        { &hf_lbmc_ume_ack_flags,
12385
16
            { "Flags", "lbmc.ume_ack.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12386
16
        { &hf_lbmc_ume_ack_flags_ignore,
12387
16
            { "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 } },
12388
16
        { &hf_lbmc_ume_ack_flags_o_flag,
12389
16
            { "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 } },
12390
16
        { &hf_lbmc_ume_ack_flags_f_flag,
12391
16
            { "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 } },
12392
16
        { &hf_lbmc_ume_ack_flags_u_flag,
12393
16
            { "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 } },
12394
16
        { &hf_lbmc_ume_ack_flags_e_flag,
12395
16
            { "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 } },
12396
16
        { &hf_lbmc_ume_ack_type,
12397
16
            { "Type", "lbmc.ume_ack.type", FT_UINT8, BASE_HEX, VALS(lbmc_ume_ack_type), 0x0, NULL, HFILL } },
12398
16
        { &hf_lbmc_ume_ack_transport_idx,
12399
16
            { "Transport Index", "lbmc.ume_ack.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12400
16
        { &hf_lbmc_ume_ack_id_2,
12401
16
            { "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 } },
12402
16
        { &hf_lbmc_ume_ack_rcv_reg_id,
12403
16
            { "Receiver Registration ID", "lbmc.ume_ack.rcv_reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12404
16
        { &hf_lbmc_ume_ack_seqnum,
12405
16
            { "Sequence Number", "lbmc.ume_ack.seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12406
16
        { &hf_lbmc_ume_rxreq,
12407
16
            { "UME RX Request", "lbmc.ume_rxreq", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12408
16
        { &hf_lbmc_ume_rxreq_next_hdr,
12409
16
            { "Next Header", "lbmc.ume_rxreq.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12410
16
        { &hf_lbmc_ume_rxreq_hdr_len,
12411
16
            { "Header Length", "lbmc.ume_rxreq.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12412
16
        { &hf_lbmc_ume_rxreq_flags,
12413
16
            { "Flags", "lbmc.ume_rxreq.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12414
16
        { &hf_lbmc_ume_rxreq_flags_ignore,
12415
16
            { "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 } },
12416
16
        { &hf_lbmc_ume_rxreq_flags_tsni_req,
12417
16
            { "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 } },
12418
16
        { &hf_lbmc_ume_rxreq_marker,
12419
16
            { "Marker", "lbmc.ume_rxreq.marker", FT_UINT16, BASE_HEX_DEC, NULL, LBMC_UME_RXREQ_MARKER_MASK, NULL, HFILL } },
12420
16
        { &hf_lbmc_ume_rxreq_request_idx,
12421
16
            { "Request Index", "lbmc.ume_rxreq.request_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12422
16
        { &hf_lbmc_ume_rxreq_transport_idx,
12423
16
            { "Transport Index", "lbmc.ume_rxreq.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12424
16
        { &hf_lbmc_ume_rxreq_id_2,
12425
16
            { "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 } },
12426
16
        { &hf_lbmc_ume_rxreq_seqnum,
12427
16
            { "Sequence Number", "lbmc.ume_rxreq.seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12428
16
        { &hf_lbmc_ume_rxreq_rx_port,
12429
16
            { "Retransmission Port", "lbmc.ume_rxreq.rx_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12430
16
        { &hf_lbmc_ume_rxreq_res,
12431
16
            { "Reserved", "lbmc.ume_rxreq.res", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12432
16
        { &hf_lbmc_ume_rxreq_rx_ip,
12433
16
            { "Retransmission IP Address", "lbmc.ume_rxreq.rx_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12434
16
        { &hf_lbmc_ume_ranged_rxreq,
12435
16
            { "UME Ranged RX Request", "lbmc.ume_ranged_rxreq", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12436
16
        { &hf_lbmc_ume_ranged_rxreq_next_hdr,
12437
16
            { "Next Header", "lbmc.ume_ranged_rxreq.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12438
16
        { &hf_lbmc_ume_ranged_rxreq_hdr_len,
12439
16
            { "Header Length", "lbmc.ume_ranged_rxreq.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12440
16
        { &hf_lbmc_ume_ranged_rxreq_flags,
12441
16
            { "Flags", "lbmc.ume_ranged_rxreq.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12442
16
        { &hf_lbmc_ume_ranged_rxreq_flags_ignore,
12443
16
            { "Ignore", "lbmc.ume_ranged_rxreq.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_RANGED_RXREQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
12444
16
        { &hf_lbmc_ume_ranged_rxreq_first_seqnum,
12445
16
            { "First Sequence Number", "lbmc.ume_ranged_rxreq.first_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12446
16
        { &hf_lbmc_ume_ranged_rxreq_last_seqnum,
12447
16
            { "Last Sequence Number", "lbmc.ume_ranged_rxreq.last_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12448
16
        { &hf_lbmc_ume_keepalive,
12449
16
            { "UME Keepalive", "lbmc.ume_keepalive", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12450
16
        { &hf_lbmc_ume_keepalive_next_hdr,
12451
16
            { "Next Header", "lbmc.ume_keepalive.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12452
16
        { &hf_lbmc_ume_keepalive_hdr_len,
12453
16
            { "Header Length", "lbmc.ume_keepalive.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12454
16
        { &hf_lbmc_ume_keepalive_flags,
12455
16
            { "Flags", "lbmc.ume_keepalive.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12456
16
        { &hf_lbmc_ume_keepalive_flags_ignore,
12457
16
            { "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 } },
12458
16
        { &hf_lbmc_ume_keepalive_flags_r_flag,
12459
16
            { "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 } },
12460
16
        { &hf_lbmc_ume_keepalive_flags_t_flag,
12461
16
            { "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 } },
12462
16
        { &hf_lbmc_ume_keepalive_type,
12463
16
            { "Type", "lbmc.ume_keepalive.type", FT_UINT8, BASE_HEX, VALS(lbmc_ume_ka_type), 0x0, NULL, HFILL } },
12464
16
        { &hf_lbmc_ume_keepalive_transport_idx,
12465
16
            { "Transport Index", "lbmc.ume_keepalive.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12466
16
        { &hf_lbmc_ume_keepalive_topic_idx,
12467
16
            { "Topic Index", "lbmc.ume_keepalive.topic_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12468
16
        { &hf_lbmc_ume_keepalive_reg_id,
12469
16
            { "Registration ID", "lbmc.ume_keepalive.reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12470
16
        { &hf_lbmc_ume_storeid,
12471
16
            { "UME Store ID", "lbmc.ume_storeid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12472
16
        { &hf_lbmc_ume_storeid_next_hdr,
12473
16
            { "Next Header", "lbmc.ume_storeid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12474
16
        { &hf_lbmc_ume_storeid_hdr_len,
12475
16
            { "Header Length", "lbmc.ume_storeid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12476
16
        { &hf_lbmc_ume_storeid_ignore,
12477
16
            { "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 } },
12478
16
        { &hf_lbmc_ume_storeid_store_id,
12479
16
            { "Store ID", "lbmc.ume_storeid.store_id", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_STOREID_STOREID_MASK, NULL, HFILL } },
12480
16
        { &hf_lbmc_ume_ranged_ack,
12481
16
            { "UME Ranged ACK", "lbmc.ume_ranged_ack", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12482
16
        { &hf_lbmc_ume_ranged_ack_next_hdr,
12483
16
            { "Next Header", "lbmc.ume_ranged_ack.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12484
16
        { &hf_lbmc_ume_ranged_ack_hdr_len,
12485
16
            { "Header Length", "lbmc.ume_ranged_ack.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12486
16
        { &hf_lbmc_ume_ranged_ack_flags,
12487
16
            { "Flags", "lbmc.ume_ranged_ack.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12488
16
        { &hf_lbmc_ume_ranged_ack_flags_ignore,
12489
16
            { "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 } },
12490
16
        { &hf_lbmc_ume_ranged_ack_first_seqnum,
12491
16
            { "First Sequence Number", "lbmc.ume_ranged_ack.first_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12492
16
        { &hf_lbmc_ume_ranged_ack_last_seqnum,
12493
16
            { "Last Sequence Number", "lbmc.ume_ranged_ack.last_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12494
16
        { &hf_lbmc_ume_ack_id,
12495
16
            { "UME ACK ID", "lbmc.ume_ack_id", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12496
16
        { &hf_lbmc_ume_ack_id_next_hdr,
12497
16
            { "Next Header", "lbmc.ume_ack_id.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12498
16
        { &hf_lbmc_ume_ack_id_hdr_len,
12499
16
            { "Header Length", "lbmc.ume_ack_id.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12500
16
        { &hf_lbmc_ume_ack_id_flags,
12501
16
            { "Flags", "lbmc.ume_ack_id.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12502
16
        { &hf_lbmc_ume_ack_id_flags_ignore,
12503
16
            { "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 } },
12504
16
        { &hf_lbmc_ume_ack_id_id,
12505
16
            { "Acknowledgement ID", "lbmc.ume_ack_id.id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12506
16
        { &hf_lbmc_ume_capability,
12507
16
            { "UME Capability", "lbmc.ume_capability", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12508
16
        { &hf_lbmc_ume_capability_next_hdr,
12509
16
            { "Next Header", "lbmc.ume_capability.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12510
16
        { &hf_lbmc_ume_capability_hdr_len,
12511
16
            { "Header Length", "lbmc.ume_capability.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12512
16
        { &hf_lbmc_ume_capability_flags,
12513
16
            { "Flags", "lbmc.ume_capability.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12514
16
        { &hf_lbmc_ume_capability_flags_ignore,
12515
16
            { "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 } },
12516
16
        { &hf_lbmc_ume_capability_flags_qc_flag,
12517
16
            { "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 } },
12518
16
        { &hf_lbmc_ume_capability_flags_client_lifetime_flag,
12519
16
            { "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 } },
12520
16
        { &hf_lbmc_ume_capability_flags_ranged_rx_flag,
12521
16
            { "Ranged RX Capability", "lbmc.ume_capability.flags.ranged_rx_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_CAPABILITY_RANGED_RX_FLAG, "Set if Ranged RX is supported", HFILL } },
12522
16
        { &hf_lbmc_ume_proxy_src,
12523
16
            { "UME Proxy Source", "lbmc.ume_proxy_src", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12524
16
        { &hf_lbmc_ume_proxy_src_next_hdr,
12525
16
            { "Next Header", "lbmc.ume_proxy_src.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12526
16
        { &hf_lbmc_ume_proxy_src_hdr_len,
12527
16
            { "Header Length", "lbmc.ume_proxy_src.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12528
16
        { &hf_lbmc_ume_proxy_src_flags,
12529
16
            { "Flags", "lbmc.ume_proxy_src.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12530
16
        { &hf_lbmc_ume_proxy_src_flags_ignore,
12531
16
            { "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 } },
12532
16
        { &hf_lbmc_ume_proxy_src_flags_enable,
12533
16
            { "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 } },
12534
16
        { &hf_lbmc_ume_proxy_src_flags_compatibility,
12535
16
            { "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 } },
12536
16
        { &hf_lbmc_ume_store_group,
12537
16
            { "UME Store Group", "lbmc.ume_store_group", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12538
16
        { &hf_lbmc_ume_store_group_next_hdr,
12539
16
            { "Next Header", "lbmc.ume_store_group.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12540
16
        { &hf_lbmc_ume_store_group_hdr_len,
12541
16
            { "Header Length", "lbmc.ume_store_group.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12542
16
        { &hf_lbmc_ume_store_group_flags,
12543
16
            { "Flags", "lbmc.ume_store_group.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12544
16
        { &hf_lbmc_ume_store_group_flags_ignore,
12545
16
            { "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 } },
12546
16
        { &hf_lbmc_ume_store_group_grp_idx,
12547
16
            { "Group Index", "lbmc.ume_store_group.grp_idx", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12548
16
        { &hf_lbmc_ume_store_group_grp_sz,
12549
16
            { "Group Size", "lbmc.ume_store_group.grp_sz", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12550
16
        { &hf_lbmc_ume_store_group_res1,
12551
16
            { "Reserved", "lbmc.ume_store_group.res1", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12552
16
        { &hf_lbmc_ume_store,
12553
16
            { "UME Store", "lbmc.ume_store", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12554
16
        { &hf_lbmc_ume_store_next_hdr,
12555
16
            { "Next Header", "lbmc.ume_store.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12556
16
        { &hf_lbmc_ume_store_hdr_len,
12557
16
            { "Header Length", "lbmc.ume_store.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12558
16
        { &hf_lbmc_ume_store_flags,
12559
16
            { "Flags", "lbmc.ume_store.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12560
16
        { &hf_lbmc_ume_store_flags_ignore,
12561
16
            { "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 } },
12562
16
        { &hf_lbmc_ume_store_grp_idx,
12563
16
            { "Group Index", "lbmc.ume_store.grp_idx", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12564
16
        { &hf_lbmc_ume_store_store_tcp_port,
12565
16
            { "Store TCP Port", "lbmc.ume_store.store_tcp_port", FT_UINT16, BASE_PT_TCP, NULL, 0x0, NULL, HFILL } },
12566
16
        { &hf_lbmc_ume_store_store_idx,
12567
16
            { "Store Index", "lbmc.ume_store.store_idx", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12568
16
        { &hf_lbmc_ume_store_store_ip_addr,
12569
16
            { "Store IP Address", "lbmc.ume_store.store_ip_addr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12570
16
        { &hf_lbmc_ume_store_src_reg_id,
12571
16
            { "Source RegID", "lbmc.ume_store.src_reg_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12572
16
        { &hf_lbmc_ume_lj_info,
12573
16
            { "UME Late Join", "lbmc.ume_lj_info", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12574
16
        { &hf_lbmc_ume_lj_info_next_hdr,
12575
16
            { "Next Header", "lbmc.ume_lj_info.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12576
16
        { &hf_lbmc_ume_lj_info_hdr_len,
12577
16
            { "Header Length", "lbmc.ume_lj_info.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12578
16
        { &hf_lbmc_ume_lj_info_flags,
12579
16
            { "Flags", "lbmc.ume_lj_info.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12580
16
        { &hf_lbmc_ume_lj_info_flags_ignore,
12581
16
            { "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 } },
12582
16
        { &hf_lbmc_ume_lj_info_low_seqnum,
12583
16
            { "Low sequence", "lbmc.ume_lj_info.low_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12584
16
        { &hf_lbmc_ume_lj_info_high_seqnum,
12585
16
            { "High sequence", "lbmc.ume_lj_info.high_seqnum", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12586
16
        { &hf_lbmc_ume_lj_info_qidx,
12587
16
            { "Request index", "lbmc.ume_lj_info.qidx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12588
16
        { &hf_lbmc_tsni,
12589
16
            { "TSNI", "lbmc.tsni", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12590
16
        { &hf_lbmc_tsni_next_hdr,
12591
16
            { "Next Header", "lbmc.tsni.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12592
16
        { &hf_lbmc_tsni_hdr_len,
12593
16
            { "Header Length", "lbmc.tsni.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12594
16
        { &hf_lbmc_tsni_ignore,
12595
16
            { "Ignore", "lbmc.tsni.ignore", FT_BOOLEAN, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
12596
16
        { &hf_lbmc_tsni_num_recs,
12597
16
            { "Num Recs", "lbmc.tsni.num_recs", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_CNTL_TSNI_NUM_RECS_MASK, NULL, HFILL } },
12598
16
        { &hf_lbmc_tsni_rec,
12599
16
            { "TSNIs", "lbmc.tsni.tsni_rec", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12600
16
        { &hf_lbmc_tsni_rec_tidx,
12601
16
            { "Topic Index", "lbmc.tsni.tsni_rec.tidx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12602
16
        { &hf_lbmc_tsni_rec_sqn,
12603
16
            { "Sequence Number", "lbmc.tsni.tsni_rec.sqn", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12604
16
        { &hf_lbmc_umq_reg,
12605
16
            { "UMQ Registration", "lbmc.umq_reg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12606
16
        { &hf_lbmc_umq_reg_next_hdr,
12607
16
            { "Next Header", "lbmc.umq_reg.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12608
16
        { &hf_lbmc_umq_reg_hdr_len,
12609
16
            { "Header Length", "lbmc.umq_reg.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12610
16
        { &hf_lbmc_umq_reg_flags,
12611
16
            { "Flags", "lbmc.umq_reg.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12612
16
        { &hf_lbmc_umq_reg_flags_ignore,
12613
16
            { "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 } },
12614
16
        { &hf_lbmc_umq_reg_flags_r_flag,
12615
16
            { "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 } },
12616
16
        { &hf_lbmc_umq_reg_flags_t_flag,
12617
16
            { "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 } },
12618
16
        { &hf_lbmc_umq_reg_flags_i_flag,
12619
16
            { "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 } },
12620
16
        { &hf_lbmc_umq_reg_flags_msg_sel_flag,
12621
16
            { "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 } },
12622
16
        { &hf_lbmc_umq_reg_reg_type,
12623
16
            { "Registration Type", "lbmc.umq_reg.reg_type", FT_UINT8, BASE_DEC, VALS(lbmc_umq_reg_type), 0x0, NULL, HFILL } },
12624
16
        { &hf_lbmc_umq_reg_queue_id,
12625
16
            { "Queue ID", "lbmc.umq_reg.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12626
16
        { &hf_lbmc_umq_reg_cmd_id,
12627
16
            { "Command ID", "lbmc.umq_reg.cmd_id", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12628
16
        { &hf_lbmc_umq_reg_inst_idx,
12629
16
            { "Instance Index", "lbmc.umq_reg.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12630
16
        { &hf_lbmc_umq_reg_regid,
12631
16
            { "Registration ID", "lbmc.umq_reg.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12632
16
        { &hf_lbmc_umq_reg_reg_ctx,
12633
16
            { "Context Registration", "lbmc.umq_reg.reg_ctx", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12634
16
        { &hf_lbmc_umq_reg_reg_ctx_port,
12635
16
            { "Port", "lbmc.umq_reg.reg_ctx.port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12636
16
        { &hf_lbmc_umq_reg_reg_ctx_reserved,
12637
16
            { "Reserved", "lbmc.umq_reg.reg_ctx.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12638
16
        { &hf_lbmc_umq_reg_reg_ctx_ip,
12639
16
            { "IP Address", "lbmc.umq_reg.reg_ctx.ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12640
16
        { &hf_lbmc_umq_reg_reg_ctx_capabilities,
12641
16
            { "Capabilities", "lbmc.umq_reg.reg_ctx.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12642
16
        { &hf_lbmc_umq_reg_reg_src,
12643
16
            { "Source Registration", "lbmc.umq_reg.reg_src", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12644
16
        { &hf_lbmc_umq_reg_reg_src_transport_idx,
12645
16
            { "Transport Index", "lbmc.umq_reg.reg_src.transport_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12646
16
        { &hf_lbmc_umq_reg_reg_src_topic_idx,
12647
16
            { "Topic Index", "lbmc.umq_reg.reg_src.topic_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12648
16
        { &hf_lbmc_umq_reg_reg_rcv,
12649
16
            { "Receiver Registration", "lbmc.umq_reg.reg_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12650
16
        { &hf_lbmc_umq_reg_reg_rcv_assign_id,
12651
16
            { "Assignment ID", "lbmc.umq_reg.reg_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12652
16
        { &hf_lbmc_umq_reg_reg_rcv_rcv_type_id,
12653
16
            { "Receiver Type ID", "lbmc.umq_reg.reg_rcv.rcv_type_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12654
16
        { &hf_lbmc_umq_reg_reg_rcv_last_topic_rcr_tsp,
12655
16
            { "Last Topic RCR TSP", "lbmc.umq_reg.reg_rcv.last_topic_rcr_tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12656
16
        { &hf_lbmc_umq_reg_rcv_dereg,
12657
16
            { "Receiver deregistration", "lbmc.umq_reg.rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12658
16
        { &hf_lbmc_umq_reg_rcv_dereg_rcr_idx,
12659
16
            { "RCR Index", "lbmc.umq_reg.rcv_dereg.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12660
16
        { &hf_lbmc_umq_reg_rcv_dereg_assign_id,
12661
16
            { "Assignment ID", "lbmc.umq_reg.rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12662
16
        { &hf_lbmc_umq_reg_reg_ulb_rcv,
12663
16
            { "ULB Receiver registration", "lbmc.umq_reg.reg_ulb_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12664
16
        { &hf_lbmc_umq_reg_reg_ulb_rcv_ulb_src_id,
12665
16
            { "ULB Source ID", "lbmc.umq_reg.reg_ulb_rcv.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12666
16
        { &hf_lbmc_umq_reg_reg_ulb_rcv_assign_id,
12667
16
            { "Assignment ID", "lbmc.umq_reg.reg_ulb_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12668
16
        { &hf_lbmc_umq_reg_reg_ulb_rcv_rcv_type_id,
12669
16
            { "Receiver Type ID", "lbmc.umq_reg.reg_ulb_rcv.rcv_type_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12670
16
        { &hf_lbmc_umq_reg_reg_ulb_rcv_port,
12671
16
            { "Port", "lbmc.umq_reg.reg_ulb_rcv.port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
12672
16
        { &hf_lbmc_umq_reg_reg_ulb_rcv_reserved,
12673
16
            { "Reserved", "lbmc.umq_reg.reg_ulb_rcv.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12674
16
        { &hf_lbmc_umq_reg_reg_ulb_rcv_ip,
12675
16
            { "IP Address", "lbmc.umq_reg.reg_ulb_rcv.ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12676
16
        { &hf_lbmc_umq_reg_reg_ulb_rcv_capabilities,
12677
16
            { "Capabilities", "lbmc.umq_reg.reg_ulb_rcv.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12678
16
        { &hf_lbmc_umq_reg_ulb_rcv_dereg,
12679
16
            { "ULB Receiver Deregistration", "lbmc.umq_reg.ulb_rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12680
16
        { &hf_lbmc_umq_reg_ulb_rcv_dereg_ulb_src_id,
12681
16
            { "ULB Source ID", "lbmc.umq_reg.ulb_rcv_dereg.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12682
16
        { &hf_lbmc_umq_reg_ulb_rcv_dereg_assign_id,
12683
16
            { "Assignment ID", "lbmc.umq_reg.ulb_rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12684
16
        { &hf_lbmc_umq_reg_reg_observer_rcv,
12685
16
            { "Observer Receiver Registration", "lbmc.umq_reg.reg_observer_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12686
16
        { &hf_lbmc_umq_reg_reg_observer_rcv_assign_id,
12687
16
            { "Assignment ID", "lbmc.umq_reg.reg_observer_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12688
16
        { &hf_lbmc_umq_reg_reg_observer_rcv_rcv_type_id,
12689
16
            { "Receiver Type ID", "lbmc.umq_reg.reg_observer_rcv.rcv_type_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12690
16
        { &hf_lbmc_umq_reg_reg_observer_rcv_last_topic_rcr_tsp,
12691
16
            { "Last Topic RCR TSP", "lbmc.umq_reg.reg_observer_rcv.last_topic_rcr_tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12692
16
        { &hf_lbmc_umq_reg_observer_rcv_dereg,
12693
16
            { "Observer Receiver Deregistration", "lbmc.umq_reg.observer_rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12694
16
        { &hf_lbmc_umq_reg_observer_rcv_dereg_rcr_idx,
12695
16
            { "RCR Index", "lbmc.umq_reg.observer_rcv_dereg.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12696
16
        { &hf_lbmc_umq_reg_observer_rcv_dereg_assign_id,
12697
16
            { "Assignment ID", "lbmc.umq_reg.observer_rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12698
16
        { &hf_lbmc_umq_reg_resp,
12699
16
            { "UMQ Registration Response", "lbmc.umq_reg_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12700
16
        { &hf_lbmc_umq_reg_resp_next_hdr,
12701
16
            { "Next Header", "lbmc.umq_reg_resp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12702
16
        { &hf_lbmc_umq_reg_resp_hdr_len,
12703
16
            { "Header Length", "lbmc.umq_reg_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12704
16
        { &hf_lbmc_umq_reg_resp_flags,
12705
16
            { "Flags", "lbmc.umq_reg_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12706
16
        { &hf_lbmc_umq_reg_resp_flags_ignore,
12707
16
            { "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 } },
12708
16
        { &hf_lbmc_umq_reg_resp_flags_r_flag,
12709
16
            { "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 } },
12710
16
        { &hf_lbmc_umq_reg_resp_flags_l_flag,
12711
16
            { "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 } },
12712
16
        { &hf_lbmc_umq_reg_resp_flags_src_s_flag,
12713
16
            { "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 } },
12714
16
        { &hf_lbmc_umq_reg_resp_flags_src_d_flag,
12715
16
            { "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 } },
12716
16
        { &hf_lbmc_umq_reg_resp_resp_type,
12717
16
            { "Registration Response Type", "lbmc.umq_reg_resp.resp_type", FT_UINT8, BASE_DEC, VALS(lbmc_umq_reg_response_type), 0x0, NULL, HFILL } },
12718
16
        { &hf_lbmc_umq_reg_resp_queue_id,
12719
16
            { "Queue ID", "lbmc.umq_reg_resp.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12720
16
        { &hf_lbmc_umq_reg_resp_cmd_id,
12721
16
            { "Command ID", "lbmc.umq_reg_resp.cmd_id", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12722
16
        { &hf_lbmc_umq_reg_resp_inst_idx,
12723
16
            { "Instance Index", "lbmc.umq_reg_resp.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12724
16
        { &hf_lbmc_umq_reg_resp_regid,
12725
16
            { "Registration ID", "lbmc.umq_reg_resp.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12726
16
        { &hf_lbmc_umq_reg_resp_reg_ctx,
12727
16
            { "Context Registration Response", "lbmc.umq_reg_resp.reg_ctx", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12728
16
        { &hf_lbmc_umq_reg_resp_reg_ctx_capabilities,
12729
16
            { "Capabilities", "lbmc.umq_reg_resp.reg_ctx.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12730
16
        { &hf_lbmc_umq_reg_resp_reg_ctx_ex,
12731
16
            { "Extended Context Registration Response", "lbmc.umq_reg_resp.reg_ctx_ex", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12732
16
        { &hf_lbmc_umq_reg_resp_reg_ctx_ex_capabilities,
12733
16
            { "Capabilities", "lbmc.umq_reg_resp.reg_ctx_ex.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12734
16
        { &hf_lbmc_umq_reg_resp_reg_ctx_ex_reserved,
12735
16
            { "Reserved", "lbmc.umq_reg_resp.reg_ctx_ex.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12736
16
        { &hf_lbmc_umq_reg_resp_reg_ctx_ex_flags,
12737
16
            { "Flags", "lbmc.umq_reg_resp.reg_ctx_ex.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12738
16
        { &hf_lbmc_umq_reg_resp_reg_ctx_ex_flags_firstmsg,
12739
16
            { "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 } },
12740
16
        { &hf_lbmc_umq_reg_resp_reg_ctx_ex_stamp,
12741
16
            { "Stamp", "lbmc.umq_reg_resp.reg_ctx_ex.stamp", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12742
16
        { &hf_lbmc_umq_reg_resp_err,
12743
16
            { "Registration Error Response", "lbmc.umq_reg_resp.err", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12744
16
        { &hf_lbmc_umq_reg_resp_err_reserved,
12745
16
            { "Reserved", "lbmc.umq_reg_resp.err.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12746
16
        { &hf_lbmc_umq_reg_resp_err_code,
12747
16
            { "Code", "lbmc.umq_reg_resp.err.code", FT_UINT16, BASE_HEX_DEC, VALS(lbmc_umq_reg_response_error_code), 0x0, NULL, HFILL } },
12748
16
        { &hf_lbmc_umq_reg_resp_reg_src,
12749
16
            { "Source Registration Response", "lbmc.umq_reg_resp.reg_src", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12750
16
        { &hf_lbmc_umq_reg_resp_reg_src_rcr_idx,
12751
16
            { "RCR Index", "lbmc.umq_reg_resp.reg_src.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12752
16
        { &hf_lbmc_umq_reg_resp_reg_rcv,
12753
16
            { "Receiver Registration Response", "lbmc.umq_reg_resp.reg_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12754
16
        { &hf_lbmc_umq_reg_resp_reg_rcv_rcr_idx,
12755
16
            { "RCR Index", "lbmc.umq_reg_resp.reg_rcv.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12756
16
        { &hf_lbmc_umq_reg_resp_reg_rcv_assign_id,
12757
16
            { "Assignment ID", "lbmc.umq_reg_resp.reg_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12758
16
        { &hf_lbmc_umq_reg_resp_reg_rcv_appset_idx,
12759
16
            { "Application Set Index", "lbmc.umq_reg_resp.reg_rcv.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12760
16
        { &hf_lbmc_umq_reg_resp_reg_rcv_reserved,
12761
16
            { "Reserved", "lbmc.umq_reg_resp.reg_rcv.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12762
16
        { &hf_lbmc_umq_reg_resp_rcv_dereg,
12763
16
            { "Receiver Deregistration Response", "lbmc.umq_reg_resp.rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12764
16
        { &hf_lbmc_umq_reg_resp_rcv_dereg_rcr_idx,
12765
16
            { "RCR Index", "lbmc.umq_reg_resp.rcv_dereg.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12766
16
        { &hf_lbmc_umq_reg_resp_rcv_dereg_assign_id,
12767
16
            { "Assignment ID", "lbmc.umq_reg_resp.rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12768
16
        { &hf_lbmc_umq_reg_resp_reg_ulb_rcv,
12769
16
            { "ULB Receiver Registration Response", "lbmc.umq_reg_resp.reg_ulb_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12770
16
        { &hf_lbmc_umq_reg_resp_reg_ulb_rcv_ulb_src_id,
12771
16
            { "ULB Source ID", "lbmc.umq_reg_resp.reg_ulb_rcv.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12772
16
        { &hf_lbmc_umq_reg_resp_reg_ulb_rcv_assign_id,
12773
16
            { "Assignment ID", "lbmc.umq_reg_resp.reg_ulb_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12774
16
        { &hf_lbmc_umq_reg_resp_reg_ulb_rcv_appset_idx,
12775
16
            { "Application Set Index", "lbmc.umq_reg_resp.reg_ulb_rcv.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12776
16
        { &hf_lbmc_umq_reg_resp_reg_ulb_rcv_reserved,
12777
16
            { "Reserved", "lbmc.umq_reg_resp.reg_ulb_rcv.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12778
16
        { &hf_lbmc_umq_reg_resp_reg_ulb_rcv_capabilities,
12779
16
            { "Capabilities", "lbmc.umq_reg_resp.reg_ulb_rcv.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12780
16
        { &hf_lbmc_umq_reg_resp_ulb_rcv_dereg,
12781
16
            { "ULB Receiver Deregistration Response", "lbmc.umq_reg_resp.ulb_rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12782
16
        { &hf_lbmc_umq_reg_resp_ulb_rcv_dereg_ulb_src_id,
12783
16
            { "ULB Source ID", "lbmc.umq_reg_resp.ulb_rcv_dereg.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12784
16
        { &hf_lbmc_umq_reg_resp_ulb_rcv_dereg_assign_id,
12785
16
            { "Assignment ID", "lbmc.umq_reg_resp.ulb_rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12786
16
        { &hf_lbmc_umq_reg_resp_reg_observer_rcv,
12787
16
            { "Observer Receiver Registration Response", "lbmc.umq_reg_resp.reg_observer_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12788
16
        { &hf_lbmc_umq_reg_resp_reg_observer_rcv_rcr_idx,
12789
16
            { "RCR Index", "lbmc.umq_reg_resp.reg_observer_rcv.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12790
16
        { &hf_lbmc_umq_reg_resp_reg_observer_rcv_assign_id,
12791
16
            { "Assignment ID", "lbmc.umq_reg_resp.reg_observer_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12792
16
        { &hf_lbmc_umq_reg_resp_reg_observer_rcv_appset_idx,
12793
16
            { "Application Set Index", "lbmc.umq_reg_resp.reg_observer_rcv.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12794
16
        { &hf_lbmc_umq_reg_resp_reg_observer_rcv_reserved,
12795
16
            { "Reserved", "lbmc.umq_reg_resp.reg_observer_rcv.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12796
16
        { &hf_lbmc_umq_reg_resp_observer_rcv_dereg,
12797
16
            { "Observer Receiver Deregistration Response", "lbmc.umq_reg_resp.observer_rcv_dereg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12798
16
        { &hf_lbmc_umq_reg_resp_observer_rcv_dereg_rcr_idx,
12799
16
            { "RCR Index", "lbmc.umq_reg_resp.observer_rcv_dereg.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12800
16
        { &hf_lbmc_umq_reg_resp_observer_rcv_dereg_assign_id,
12801
16
            { "Assignment ID", "lbmc.umq_reg_resp.observer_rcv_dereg.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12802
16
        { &hf_lbmc_umq_ack,
12803
16
            { "UMQ ACK", "lbmc.umq_ack", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12804
16
        { &hf_lbmc_umq_ack_next_hdr,
12805
16
            { "Next Header", "lbmc.umq_ack.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12806
16
        { &hf_lbmc_umq_ack_hdr_len,
12807
16
            { "Header Length", "lbmc.umq_ack.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12808
16
        { &hf_lbmc_umq_ack_msgs,
12809
16
            { "Msgs", "lbmc.umq_ack.msgs", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12810
16
        { &hf_lbmc_umq_ack_msgs_ignore,
12811
16
            { "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 } },
12812
16
        { &hf_lbmc_umq_ack_msgs_t_flag,
12813
16
            { "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 } },
12814
16
        { &hf_lbmc_umq_ack_msgs_d_flag,
12815
16
            { "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 } },
12816
16
        { &hf_lbmc_umq_ack_numids,
12817
16
            { "Number of Message IDs", "lbmc.umq_ack.num_ids", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_UMQ_ACK_NUMIDS_MASK, NULL, HFILL } },
12818
16
        { &hf_lbmc_umq_ack_ack_type,
12819
16
            { "ACK Type", "lbmc.umq_ack.ack_type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_umq_ack_type), 0x0, NULL, HFILL } },
12820
16
        { &hf_lbmc_umq_ack_msgid,
12821
16
            { "Message ID", "lbmc.umq_ack.msgid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12822
16
        { &hf_lbmc_umq_ack_msgid_regid,
12823
16
            { "Registration ID", "lbmc.umq_ack.msgid.regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12824
16
        { &hf_lbmc_umq_ack_msgid_stamp,
12825
16
            { "Stamp", "lbmc.umq_ack.msgid.stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12826
16
        { &hf_lbmc_umq_ack_stable,
12827
16
            { "Stable", "lbmc.umq_ack.stable", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12828
16
        { &hf_lbmc_umq_ack_stable_queue_id,
12829
16
            { "Queue ID", "lbmc.umq_ack.stable.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12830
16
        { &hf_lbmc_umq_ack_stable_inst_idx,
12831
16
            { "Instance Index", "lbmc.umq_ack.stable.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12832
16
        { &hf_lbmc_umq_ack_stable_reserved,
12833
16
            { "Reserved", "lbmc.umq_ack.stable.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12834
16
        { &hf_lbmc_umq_ack_cr,
12835
16
            { "Consumption Report", "lbmc.umq_ack.cr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12836
16
        { &hf_lbmc_umq_ack_cr_rcr_idx,
12837
16
            { "RCR Index", "lbmc.umq_ack.cr.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12838
16
        { &hf_lbmc_umq_ack_cr_assign_id,
12839
16
            { "Assignment ID", "lbmc.umq_ack.cr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12840
16
        { &hf_lbmc_umq_ack_cr_appset_idx,
12841
16
            { "Application Set Index", "lbmc.umq_ack.cr.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12842
16
        { &hf_lbmc_umq_ack_cr_reserved,
12843
16
            { "Reserved", "lbmc.umq_ack.cr.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12844
16
        { &hf_lbmc_umq_ack_ulb_cr,
12845
16
            { "ULB Consumption Report", "lbmc.umq_ack.ulb_cr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12846
16
        { &hf_lbmc_umq_ack_ulb_cr_ulb_src_id,
12847
16
            { "ULB Source ID", "lbmc.umq_ack.ulb_cr.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12848
16
        { &hf_lbmc_umq_ack_ulb_cr_assign_id,
12849
16
            { "Assignment ID", "lbmc.umq_ack.ulb_cr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12850
16
        { &hf_lbmc_umq_ack_ulb_cr_appset_idx,
12851
16
            { "Application Set Index", "lbmc.umq_ack.ulb_cr.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12852
16
        { &hf_lbmc_umq_ack_ulb_cr_reserved,
12853
16
            { "Reserved", "lbmc.umq_ack.ulb_cr.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12854
16
        { &hf_lbmc_umq_rcr,
12855
16
            { "UMQ Receiver Control Record", "lbmc.umq_rcr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12856
16
        { &hf_lbmc_umq_rcr_next_hdr,
12857
16
            { "Next Header", "lbmc.umq_rcr.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12858
16
        { &hf_lbmc_umq_rcr_hdr_len,
12859
16
            { "Header Length", "lbmc.umq_rcr.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12860
16
        { &hf_lbmc_umq_rcr_flags,
12861
16
            { "Flags", "lbmc.umq_rcr.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12862
16
        { &hf_lbmc_umq_rcr_flags_ignore,
12863
16
            { "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 } },
12864
16
        { &hf_lbmc_umq_rcr_flags_r_flag,
12865
16
            { "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 } },
12866
16
        { &hf_lbmc_umq_rcr_flags_d_flag,
12867
16
            { "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 } },
12868
16
        { &hf_lbmc_umq_rcr_flags_s_flag,
12869
16
            { "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 } },
12870
16
        { &hf_lbmc_umq_rcr_flags_eoi_flag,
12871
16
            { "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 } },
12872
16
        { &hf_lbmc_umq_rcr_flags_boi_flag,
12873
16
            { "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 } },
12874
16
        { &hf_lbmc_umq_rcr_queue_id,
12875
16
            { "Queue ID", "lbmc.umq_rcr.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12876
16
        { &hf_lbmc_umq_rcr_rcr_idx,
12877
16
            { "RCR Index", "lbmc.umq_rcr.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12878
16
        { &hf_lbmc_umq_rcr_msgid_regid,
12879
16
            { "Message ID Registration ID", "lbmc.umq_rcr.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12880
16
        { &hf_lbmc_umq_rcr_msgid_stamp,
12881
16
            { "Message ID Stamp", "lbmc.umq_rcr.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12882
16
        { &hf_lbmc_umq_rcr_topic_tsp,
12883
16
            { "Topic TSP", "lbmc.umq_rcr.topic_tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12884
16
        { &hf_lbmc_umq_rcr_q_tsp,
12885
16
            { "Queue TSP", "lbmc.umq_rcr.q_tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12886
16
        { &hf_lbmc_umq_rcr_assign_id,
12887
16
            { "Assignment ID", "lbmc.umq_rcr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12888
16
        { &hf_lbmc_umq_rcr_appset_idx,
12889
16
            { "Application Set Index", "lbmc.umq_rcr.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12890
16
        { &hf_lbmc_umq_rcr_num_ras,
12891
16
            { "Number of Reassigns", "lbmc.umq_rcr.num_ras", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12892
16
        { &hf_lbmc_umq_rcr_queue_ver,
12893
16
            { "Queue Version", "lbmc.umq_rcr.queue_ver", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12894
16
        { &hf_lbmc_cntl_umq_ka,
12895
16
            { "UMQ Keepalive", "lbmc.umq_ka", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12896
16
        { &hf_lbmc_cntl_umq_ka_next_hdr,
12897
16
            { "Next Header", "lbmc.umq_ka.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12898
16
        { &hf_lbmc_cntl_umq_ka_hdr_len,
12899
16
            { "Header Length", "lbmc.umq_ka.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12900
16
        { &hf_lbmc_cntl_umq_ka_flags,
12901
16
            { "Flags", "lbmc.umq_ka.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12902
16
        { &hf_lbmc_cntl_umq_ka_flags_ignore,
12903
16
            { "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 } },
12904
16
        { &hf_lbmc_cntl_umq_ka_flags_r_flag,
12905
16
            { "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 } },
12906
16
        { &hf_lbmc_cntl_umq_ka_ka_type,
12907
16
            { "Keepalive Type", "lbmc.umq_ka.ka_type", FT_UINT8, BASE_HEX_DEC, VALS(lbmc_umq_ka_type), 0x0, NULL, HFILL } },
12908
16
        { &hf_lbmc_cntl_umq_ka_queue_id,
12909
16
            { "Queue ID", "lbmc.umq_ka.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12910
16
        { &hf_lbmc_cntl_umq_ka_regid,
12911
16
            { "Registration ID", "lbmc.umq_ka.regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12912
16
        { &hf_lbmc_cntl_umq_ka_inst_idx,
12913
16
            { "Instance Index", "lbmc.umq_ka.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12914
16
        { &hf_lbmc_cntl_umq_ka_reserved,
12915
16
            { "Reserved", "lbmc.umq_ka.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12916
16
        { &hf_lbmc_umq_ka_src,
12917
16
            { "Source", "lbmc.umq_ka.src", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12918
16
        { &hf_lbmc_umq_ka_src_transport_idx,
12919
16
            { "Transport Index", "lbmc.umq_ka.src.transport_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12920
16
        { &hf_lbmc_umq_ka_src_topic_idx,
12921
16
            { "Topic Index", "lbmc.umq_ka.src.topic_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12922
16
        { &hf_lbmc_umq_ka_rcv,
12923
16
            { "Receiver", "lbmc.umq_ka.rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12924
16
        { &hf_lbmc_umq_ka_rcv_rcr_idx,
12925
16
            { "RCR Index", "lbmc.umq_ka.rcv.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12926
16
        { &hf_lbmc_umq_ka_rcv_assign_id,
12927
16
            { "Assignment ID", "lbmc.umq_ka.rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12928
16
        { &hf_lbmc_umq_ka_ulb_rcv,
12929
16
            { "ULB Receiver", "lbmc.umq_ka.ulb_rcv", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12930
16
        { &hf_lbmc_umq_ka_ulb_rcv_ulb_src_id,
12931
16
            { "ULB Source ID", "lbmc.umq_ka.ulb_rcv.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12932
16
        { &hf_lbmc_umq_ka_ulb_rcv_assign_id,
12933
16
            { "Assignment ID", "lbmc.umq_ka.ulb_rcv.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12934
16
        { &hf_lbmc_umq_ka_ulb_rcv_resp,
12935
16
            { "ULB Receiver Response", "lbmc.umq_ka.ulb_rcv_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12936
16
        { &hf_lbmc_umq_ka_ulb_rcv_resp_ulb_src_id,
12937
16
            { "ULB Source ID", "lbmc.umq_ka.ulb_rcv_resp.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12938
16
        { &hf_lbmc_umq_ka_ulb_rcv_resp_assign_id,
12939
16
            { "Assignment ID", "lbmc.umq_ka.ulb_rcv_resp.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12940
16
        { &hf_lbmc_umq_ka_ulb_rcv_resp_appset_idx,
12941
16
            { "Application Set Index", "lbmc.umq_ka.ulb_rcv_resp.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12942
16
        { &hf_lbmc_umq_ka_ulb_rcv_resp_reserved,
12943
16
            { "Reserved", "lbmc.umq_ka.ulb_rcv_resp.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12944
16
        { &hf_lbmc_umq_rxreq,
12945
16
            { "UMQ Retransmission Request", "lbmc.umq_rxreq", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12946
16
        { &hf_lbmc_umq_rxreq_next_hdr,
12947
16
            { "Next Header", "lbmc.umq_rxreq.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
12948
16
        { &hf_lbmc_umq_rxreq_hdr_len,
12949
16
            { "Header Length", "lbmc.umq_rxreq.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12950
16
        { &hf_lbmc_umq_rxreq_flags,
12951
16
            { "Flags", "lbmc.umq_rxreq.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12952
16
        { &hf_lbmc_umq_rxreq_flags_ignore,
12953
16
            { "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 } },
12954
16
        { &hf_lbmc_umq_rxreq_flags_r_flag,
12955
16
            { "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 } },
12956
16
        { &hf_lbmc_umq_rxreq_rxreq_type,
12957
16
            { "Retransmission Request Type", "lbmc.umq_rxreq.rxreq_type", FT_UINT8, BASE_HEX_DEC, VALS(lbmc_umq_rxreq_type), 0x0, NULL, HFILL } },
12958
16
        { &hf_lbmc_umq_rxreq_regid_resp,
12959
16
            { "RegID Response", "lbmc.umq_rxreq.regid_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12960
16
        { &hf_lbmc_umq_rxreq_regid_resp_regid,
12961
16
            { "Registration ID", "lbmc.umq_rxreq.regid_resp.regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12962
16
        { &hf_lbmc_umq_rxreq_addr_resp,
12963
16
            { "Address Response", "lbmc.umq_rxreq.addr_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12964
16
        { &hf_lbmc_umq_rxreq_addr_resp_ip,
12965
16
            { "IP Address", "lbmc.umq_rxreq.addr_resp.ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12966
16
        { &hf_lbmc_umq_rxreq_addr_resp_port,
12967
16
            { "Port", "lbmc.umq_rxreq.addr_resp.port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
12968
16
        { &hf_lbmc_umq_rxreq_addr_resp_reserved,
12969
16
            { "Reserved", "lbmc.umq_rxreq.addr_resp.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12970
16
        { &hf_lbmc_umq_rxreq_mr,
12971
16
            { "Message Request", "lbmc.umq_rxreq.mr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12972
16
        { &hf_lbmc_umq_rxreq_mr_assign_id,
12973
16
            { "Assignment ID", "lbmc.umq_rxreq.mr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12974
16
        { &hf_lbmc_umq_rxreq_mr_msgid_regid,
12975
16
            { "Message ID Registration ID", "lbmc.umq_rxreq.mr.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12976
16
        { &hf_lbmc_umq_rxreq_mr_msgid_stamp,
12977
16
            { "Message ID Stamp", "lbmc.umq_rxreq.mr.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12978
16
        { &hf_lbmc_umq_rxreq_ulb_mr,
12979
16
            { "ULB MR", "lbmc.umq_rxreq.ulb_mr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12980
16
        { &hf_lbmc_umq_rxreq_ulb_mr_ulb_src_id,
12981
16
            { "ULB Source ID", "lbmc.umq_rxreq.ulb_mr.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12982
16
        { &hf_lbmc_umq_rxreq_ulb_mr_assign_id,
12983
16
            { "Assignment ID", "lbmc.umq_rxreq.ulb_mr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12984
16
        { &hf_lbmc_umq_rxreq_ulb_mr_appset_idx,
12985
16
            { "Application Set Index", "lbmc.umq_rxreq.ulb_mr.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12986
16
        { &hf_lbmc_umq_rxreq_ulb_mr_reserved,
12987
16
            { "Reserved", "lbmc.umq_rxreq.ulb_mr.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12988
16
        { &hf_lbmc_umq_rxreq_ulb_mr_msgid_regid,
12989
16
            { "Message ID Registration ID", "lbmc.umq_rxreq.ulb_mr.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12990
16
        { &hf_lbmc_umq_rxreq_ulb_mr_msgid_stamp,
12991
16
            { "Message ID Stamp", "lbmc.umq_rxreq.ulb_mr.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
12992
16
        { &hf_lbmc_umq_rxreq_ulb_mr_abort,
12993
16
            { "ULB MR Abort", "lbmc.umq_rxreq.ulb_mr_abort", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
12994
16
        { &hf_lbmc_umq_rxreq_ulb_mr_abort_ulb_src_id,
12995
16
            { "ULB Source ID", "lbmc.umq_rxreq.ulb_mr_abort.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12996
16
        { &hf_lbmc_umq_rxreq_ulb_mr_abort_assign_id,
12997
16
            { "Assignment ID", "lbmc.umq_rxreq.ulb_mr_abort.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
12998
16
        { &hf_lbmc_umq_rxreq_ulb_mr_abort_msgid_regid,
12999
16
            { "Message ID Registration ID", "lbmc.umq_rxreq.ulb_mr_abort.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13000
16
        { &hf_lbmc_umq_rxreq_ulb_mr_abort_msgid_stamp,
13001
16
            { "Message ID Stamp", "lbmc.umq_rxreq.ulb_mr_abort.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13002
16
        { &hf_lbmc_umq_rxreq_qrcrr,
13003
16
            { "Queue RCR Request", "lbmc.umq_rxreq.qrrcr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13004
16
        { &hf_lbmc_umq_rxreq_qrcrr_tsp,
13005
16
            { "TSP", "lbmc.umq_rxreq.qrrcr.tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13006
16
        { &hf_lbmc_umq_rxreq_trcrr,
13007
16
            { "Topic RCR Request", "lbmc.umq_rxreq.trcrr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13008
16
        { &hf_lbmc_umq_rxreq_trcrr_rcr_idx,
13009
16
            { "RCR Index", "lbmc.umq_rxreq.trcrr.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13010
16
        { &hf_lbmc_umq_rxreq_trcrr_tsp,
13011
16
            { "TSP", "lbmc.umq_rxreq.trcrr.tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13012
16
        { &hf_lbmc_umq_rxreq_ulb_trcrr,
13013
16
            { "ULB Topic RCR Request", "lbmc.umq_rxreq.ulb_trcrr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13014
16
        { &hf_lbmc_umq_rxreq_ulb_trcrr_ulb_src_id,
13015
16
            { "ULB Source ID", "lbmc.umq_rxreq.ulb_trcrr.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13016
16
        { &hf_lbmc_umq_rxreq_ulb_trcrr_assign_id,
13017
16
            { "Assignment ID", "lbmc.umq_rxreq.ulb_trcrr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13018
16
        { &hf_lbmc_umq_rxreq_ulb_trcrr_tsp,
13019
16
            { "TSP", "lbmc.umq_rxreq.ulb_trcrr.tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13020
16
        { &hf_lbmc_umq_rxreq_ulb_trcrr_abort,
13021
16
            { "ULB TRCRR Abort", "lbmc.umq_rxreq.ulb_trcrr_abort", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13022
16
        { &hf_lbmc_umq_rxreq_ulb_trcrr_abort_ulb_src_id,
13023
16
            { "ULB Source ID", "lbmc.umq_rxreq.ulb_trcrr_abort.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13024
16
        { &hf_lbmc_umq_rxreq_ulb_trcrr_abort_assign_id,
13025
16
            { "Assignment ID", "lbmc.umq_rxreq.ulb_trcrr_abort.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13026
16
        { &hf_lbmc_umq_rxreq_ulb_trcrr_abort_tsp,
13027
16
            { "TSP", "lbmc.umq_rxreq.ulb_trcrr_abort.tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13028
16
        { &hf_lbmc_umq_qmgmt,
13029
16
            { "Queue Management", "lbmc.umq_qmgmt", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13030
16
        { &hf_lbmc_umq_qmgmt_next_hdr,
13031
16
            { "Next Header", "lbmc.umq_qmgmt.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13032
16
        { &hf_lbmc_umq_qmgmt_hdr_len,
13033
16
            { "Header Length", "lbmc.umq_qmgmt.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13034
16
        { &hf_lbmc_umq_resub_req,
13035
16
            { "UMQ Resubmission Request", "lbmc.umq_resub_req", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13036
16
        { &hf_lbmc_umq_resub_req_next_hdr,
13037
16
            { "Next Header", "lbmc.umq_resub_req.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13038
16
        { &hf_lbmc_umq_resub_req_hdr_len,
13039
16
            { "Header Length", "lbmc.umq_resub_req.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13040
16
        { &hf_lbmc_umq_resub_req_flags,
13041
16
            { "Flags", "lbmc.umq_resub_req.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13042
16
        { &hf_lbmc_umq_resub_req_flags_ignore,
13043
16
            { "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 } },
13044
16
        { &hf_lbmc_umq_resub_req_msgid_regid,
13045
16
            { "Message ID Registration ID", "lbmc.umq_resub_req.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13046
16
        { &hf_lbmc_umq_resub_req_msgid_stamp,
13047
16
            { "Message ID Stamp", "lbmc.umq_resub_req.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13048
16
        { &hf_lbmc_umq_resub_req_rcr_idx,
13049
16
            { "RCR Index", "lbmc.umq_resub_req.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13050
16
        { &hf_lbmc_umq_resub_req_resp_ip,
13051
16
            { "Response IP Address", "lbmc.umq_resub_req.resp_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13052
16
        { &hf_lbmc_umq_resub_req_resp_port,
13053
16
            { "Response Port", "lbmc.umq_resub_req.resp_port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13054
16
        { &hf_lbmc_umq_resub_req_appset_idx,
13055
16
            { "Application Set Index", "lbmc.umq_resub_req.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13056
16
        { &hf_lbmc_umq_resub_resp,
13057
16
            { "UMQ Resubmission Response", "lbmc.umq_resub_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13058
16
        { &hf_lbmc_umq_resub_resp_next_hdr,
13059
16
            { "Next Header", "lbmc.umq_resub_resp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13060
16
        { &hf_lbmc_umq_resub_resp_hdr_len,
13061
16
            { "Header Length", "lbmc.umq_resub_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13062
16
        { &hf_lbmc_umq_resub_resp_flags,
13063
16
            { "Flags", "lbmc.umq_resub_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13064
16
        { &hf_lbmc_umq_resub_resp_flags_ignore,
13065
16
            { "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 } },
13066
16
        { &hf_lbmc_umq_resub_resp_code,
13067
16
            { "Code", "lbmc.umq_resub_resp.code", FT_UINT8, BASE_HEX_DEC, VALS(lbmc_umq_resub_response_code), 0x0, NULL, HFILL } },
13068
16
        { &hf_lbmc_umq_resub_resp_msgid_regid,
13069
16
            { "Message ID Registration ID", "lbmc.umq_resub_resp.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13070
16
        { &hf_lbmc_umq_resub_resp_msgid_stamp,
13071
16
            { "Message ID Stamp", "lbmc.umq_resub_resp.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13072
16
        { &hf_lbmc_umq_resub_resp_rcr_idx,
13073
16
            { "RCR Index", "lbmc.umq_resub_resp.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13074
16
        { &hf_lbmc_umq_resub_resp_reserved,
13075
16
            { "Reserved", "lbmc.umq_resub_resp.resp_ip", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13076
16
        { &hf_lbmc_umq_resub_resp_appset_idx,
13077
16
            { "Application Set Index", "lbmc.umq_resub_resp.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13078
16
        { &hf_lbmc_topic_interest,
13079
16
            { "Topic Interest", "lbmc.topic_interest", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13080
16
        { &hf_lbmc_topic_interest_next_hdr,
13081
16
            { "Next Header", "lbmc.topic_interest.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13082
16
        { &hf_lbmc_topic_interest_hdr_len,
13083
16
            { "Header Length", "lbmc.topic_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13084
16
        { &hf_lbmc_topic_interest_flags,
13085
16
            { "Flags", "lbmc.topic_interest.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13086
16
        { &hf_lbmc_topic_interest_flags_ignore,
13087
16
            { "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 } },
13088
16
        { &hf_lbmc_topic_interest_flags_cancel,
13089
16
            { "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 } },
13090
16
        { &hf_lbmc_topic_interest_flags_refresh,
13091
16
            { "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 } },
13092
16
        { &hf_lbmc_topic_interest_domain_id,
13093
16
            { "Domain ID", "lbmc.topic_interest.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13094
16
        { &hf_lbmc_pattern_interest,
13095
16
            { "Pattern Interest", "lbmc.pattern_interest", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13096
16
        { &hf_lbmc_pattern_interest_next_hdr,
13097
16
            { "Next Header", "lbmc.pattern_interest.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13098
16
        { &hf_lbmc_pattern_interest_hdr_len,
13099
16
            { "Header Length", "lbmc.pattern_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13100
16
        { &hf_lbmc_pattern_interest_flags,
13101
16
            { "Flags", "lbmc.pattern_interest.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13102
16
        { &hf_lbmc_pattern_interest_flags_ignore,
13103
16
            { "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 } },
13104
16
        { &hf_lbmc_pattern_interest_flags_cancel,
13105
16
            { "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 } },
13106
16
        { &hf_lbmc_pattern_interest_flags_refresh,
13107
16
            { "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 } },
13108
16
        { &hf_lbmc_pattern_interest_type,
13109
16
            { "Type", "lbmc.pattern_interest.type", FT_UINT8, BASE_DEC_HEX, VALS(lbm_wildcard_pattern_type), 0x0, NULL, HFILL } },
13110
16
        { &hf_lbmc_pattern_interest_domain_id,
13111
16
            { "Domain ID", "lbmc.pattern_interest.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13112
16
        { &hf_lbmc_pattern_interest_index,
13113
16
            { "Index", "lbmc.pattern_interest.index", FT_INT64, BASE_DEC, NULL, 0x0, NULL, HFILL } },
13114
16
        { &hf_lbmc_advertisement,
13115
16
            { "Advertisement", "lbmc.advertisement", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13116
16
        { &hf_lbmc_advertisement_next_hdr,
13117
16
            { "Next Header", "lbmc.advertisement.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13118
16
        { &hf_lbmc_advertisement_hdr_len,
13119
16
            { "Header Length", "lbmc.advertisement.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13120
16
        { &hf_lbmc_advertisement_flags,
13121
16
            { "Flags", "lbmc.advertisement.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13122
16
        { &hf_lbmc_advertisement_flags_ignore,
13123
16
            { "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 } },
13124
16
        { &hf_lbmc_advertisement_flags_eos,
13125
16
            { "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 } },
13126
16
        { &hf_lbmc_advertisement_flags_pattern,
13127
16
            { "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 } },
13128
16
        { &hf_lbmc_advertisement_flags_change,
13129
16
            { "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 } },
13130
16
        { &hf_lbmc_advertisement_flags_ctxinst,
13131
16
            { "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 } },
13132
16
        { &hf_lbmc_advertisement_hop_count,
13133
16
            { "Hop Count", "lbmc.advertisement.hop_count", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13134
16
        { &hf_lbmc_advertisement_ad_flags,
13135
16
            { "Ad Flags", "lbmc.advertisement.ad_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13136
16
        { &hf_lbmc_advertisement_ad_flags_lj,
13137
16
            { "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 } },
13138
16
        { &hf_lbmc_advertisement_ad_flags_ume,
13139
16
            { "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 } },
13140
16
        { &hf_lbmc_advertisement_ad_flags_acktosrc,
13141
16
            { "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 } },
13142
16
        { &hf_lbmc_advertisement_ad_flags_queue,
13143
16
            { "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 } },
13144
16
        { &hf_lbmc_advertisement_ad_flags_ulb,
13145
16
            { "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 } },
13146
16
        { &hf_lbmc_advertisement_cost,
13147
16
            { "Cost", "lbmc.advertisement.cost", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13148
16
        { &hf_lbmc_advertisement_transport_idx,
13149
16
            { "Transport Index", "lbmc.advertisement.transport_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13150
16
        { &hf_lbmc_advertisement_topic_idx,
13151
16
            { "Topic Index", "lbmc.advertisement.topic_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13152
16
        { &hf_lbmc_advertisement_low_seqno,
13153
16
            { "Low Sequence Number", "lbmc.advertisement.low_seqno", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13154
16
        { &hf_lbmc_advertisement_high_seqno,
13155
16
            { "High Sequence Number", "lbmc.advertisement.high_seqno", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13156
16
        { &hf_lbmc_advertisement_domain_id,
13157
16
            { "Domain ID", "lbmc.advertisement.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13158
16
        { &hf_lbmc_advertisement_pat_idx,
13159
16
            { "Pattern Index", "lbmc.advertisement.pat_idx", FT_INT64, BASE_DEC, NULL, 0x0, NULL, HFILL } },
13160
16
        { &hf_lbmc_advertisement_ctxinst,
13161
16
            { "Context Instance", "lbmc.advertisement.ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13162
16
        { &hf_lbmc_ume_storename,
13163
16
            { "Store Name", "lbmc.ume_storename", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13164
16
        { &hf_lbmc_ume_storename_next_hdr,
13165
16
            { "Next Header", "lbmc.ume_storename.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13166
16
        { &hf_lbmc_ume_storename_hdr_len,
13167
16
            { "Header Length", "lbmc.ume_storename.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13168
16
        { &hf_lbmc_ume_storename_flags,
13169
16
            { "Flags", "lbmc.ume_storename.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13170
16
        { &hf_lbmc_ume_storename_flags_ignore,
13171
16
            { "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 } },
13172
16
        { &hf_lbmc_ume_storename_store,
13173
16
            { "Store Name", "lbmc.ume_storename.store", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13174
16
        { &hf_lbmc_umq_ulb_rcr,
13175
16
            { "UMQ ULB Receiver Control Record", "lbmc.umq_ulb_rcr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13176
16
        { &hf_lbmc_umq_ulb_rcr_next_hdr,
13177
16
            { "Next Header", "lbmc.umq_ulb_rcr.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13178
16
        { &hf_lbmc_umq_ulb_rcr_hdr_len,
13179
16
            { "Header Length", "lbmc.umq_ulb_rcr.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13180
16
        { &hf_lbmc_umq_ulb_rcr_flags,
13181
16
            { "Flags", "lbmc.umq_ulb_rcr.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13182
16
        { &hf_lbmc_umq_ulb_rcr_flags_ignore,
13183
16
            { "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 } },
13184
16
        { &hf_lbmc_umq_ulb_rcr_flags_r_flag,
13185
16
            { "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 } },
13186
16
        { &hf_lbmc_umq_ulb_rcr_flags_d_flag,
13187
16
            { "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 } },
13188
16
        { &hf_lbmc_umq_ulb_rcr_flags_eoi_flag,
13189
16
            { "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 } },
13190
16
        { &hf_lbmc_umq_ulb_rcr_flags_boi_flag,
13191
16
            { "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 } },
13192
16
        { &hf_lbmc_umq_ulb_rcr_queue_id,
13193
16
            { "Queue ID", "lbmc.umq_ulb_rcr.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13194
16
        { &hf_lbmc_umq_ulb_rcr_ulb_src_id,
13195
16
            { "ULB Source ID", "lbmc.umq_ulb_rcr.ulb_src_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13196
16
        { &hf_lbmc_umq_ulb_rcr_msgid_regid,
13197
16
            { "Message ID Registration ID", "lbmc.umq_ulb_rcr.msgid_regid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13198
16
        { &hf_lbmc_umq_ulb_rcr_msgid_stamp,
13199
16
            { "Message ID Stamp", "lbmc.umq_ulb_rcr.msgid_stamp", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13200
16
        { &hf_lbmc_umq_ulb_rcr_topic_tsp,
13201
16
            { "Topic TSP", "lbmc.umq_ulb_rcr.topic_tsp", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13202
16
        { &hf_lbmc_umq_ulb_rcr_assign_id,
13203
16
            { "Assignment ID", "lbmc.umq_ulb_rcr.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13204
16
        { &hf_lbmc_umq_ulb_rcr_appset_idx,
13205
16
            { "Application Set Index", "lbmc.umq_ulb_rcr.appset_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13206
16
        { &hf_lbmc_umq_ulb_rcr_num_ras,
13207
16
            { "Number of RAs", "lbmc.umq_ulb_rcr.num_ras", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13208
16
        { &hf_lbmc_umq_lf,
13209
16
            { "UMQ Load Factor", "lbmc.umq_lf", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13210
16
        { &hf_lbmc_umq_lf_next_hdr,
13211
16
            { "Next Header", "lbmc.umq_lf.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13212
16
        { &hf_lbmc_umq_lf_hdr_len,
13213
16
            { "Header Length", "lbmc.umq_lf.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13214
16
        { &hf_lbmc_umq_lf_flags,
13215
16
            { "Flags", "lbmc.umq_lf.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13216
16
        { &hf_lbmc_umq_lf_flags_ignore,
13217
16
            { "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 } },
13218
16
        { &hf_lbmc_umq_lf_type,
13219
16
            { "Type", "lbmc.umq_lf.type", FT_UINT8, BASE_HEX_DEC, VALS(lbmc_umq_lf_type), 0x0, NULL, HFILL } },
13220
16
        { &hf_lbmc_umq_lf_num_srcs,
13221
16
            { "Number of Sources", "lbmc.umq_lf.resp_ip", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13222
16
        { &hf_lbmc_umq_lf_lf,
13223
16
            { "Load Factor", "lbmc.umq_lf.lf", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13224
16
        { &hf_lbmc_ctxinfo,
13225
16
            { "Context Information", "lbmc.ctxinfo", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13226
16
        { &hf_lbmc_ctxinfo_next_hdr,
13227
16
            { "Next Header", "lbmc.ctxinfo.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13228
16
        { &hf_lbmc_ctxinfo_hdr_len,
13229
16
            { "Header Length", "lbmc.ctxinfo.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13230
16
        { &hf_lbmc_ctxinfo_flags,
13231
16
            { "Flags", "lbmc.ctxinfo.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13232
16
        { &hf_lbmc_ctxinfo_flags_ignore,
13233
16
            { "Ignore", "lbmc.ctxinfo.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
13234
16
        { &hf_lbmc_ctxinfo_flags_query,
13235
16
            { "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 } },
13236
16
        { &hf_lbmc_ctxinfo_flags_addr,
13237
16
            { "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 } },
13238
16
        { &hf_lbmc_ctxinfo_flags_ctxinst,
13239
16
            { "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 } },
13240
16
        { &hf_lbmc_ctxinfo_flags_name,
13241
16
            { "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 } },
13242
16
        { &hf_lbmc_ctxinfo_flags_tnwgsrc,
13243
16
            { "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 } },
13244
16
        { &hf_lbmc_ctxinfo_flags_tnwgrcv,
13245
16
            { "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 } },
13246
16
        { &hf_lbmc_ctxinfo_flags_proxy,
13247
16
            { "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 } },
13248
16
        { &hf_lbmc_ctxinfo_reserved,
13249
16
            { "Reserved", "lbmc.ctxinfo.reserved", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13250
16
        { &hf_lbmc_ctxinfo_hop_count,
13251
16
            { "Hop Count", "lbmc.ctxinfo.hop_count", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13252
16
        { &hf_lbmc_ctxinfo_port,
13253
16
            { "Port", "lbmc.ctxinfo.port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13254
16
        { &hf_lbmc_ctxinfo_addr,
13255
16
            { "Address", "lbmc.ctxinfo.addr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13256
16
        { &hf_lbmc_ctxinfo_domain_id,
13257
16
            { "Domain ID", "lbmc.ctxinfo.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13258
16
        { &hf_lbmc_ctxinfo_ctxinst,
13259
16
            { "Context Instance", "lbmc.ctxinfo.ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13260
16
        { &hf_lbmc_ctxinfo_name,
13261
16
            { "Name", "lbmc.ctxinfo.name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13262
16
        { &hf_lbmc_ume_pser,
13263
16
            { "UME Proxy Source Election Record", "lbmc.ume_pser", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13264
16
        { &hf_lbmc_ume_pser_next_hdr,
13265
16
            { "Next Header", "lbmc.ume_pser.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13266
16
        { &hf_lbmc_ume_pser_hdr_len,
13267
16
            { "Header Length", "lbmc.ume_pser.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13268
16
        { &hf_lbmc_ume_pser_flags,
13269
16
            { "Flags", "lbmc.ume_pser.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13270
16
        { &hf_lbmc_ume_pser_flags_ignore,
13271
16
            { "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 } },
13272
16
        { &hf_lbmc_ume_pser_flags_source_ctxinst,
13273
16
            { "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 } },
13274
16
        { &hf_lbmc_ume_pser_flags_store_ctxinst,
13275
16
            { "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 } },
13276
16
        { &hf_lbmc_ume_pser_flags_reelect,
13277
16
            { "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 } },
13278
16
        { &hf_lbmc_ume_pser_source_ip,
13279
16
            { "Source Address", "lbmc.ume_pser.source_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13280
16
        { &hf_lbmc_ume_pser_store_ip,
13281
16
            { "Store Address", "lbmc.ume_pser.store_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13282
16
        { &hf_lbmc_ume_pser_transport_idx,
13283
16
            { "Transport Index", "lbmc.ume_pser.transport_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13284
16
        { &hf_lbmc_ume_pser_topic_idx,
13285
16
            { "Topic Index", "lbmc.ume_pser.topic_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13286
16
        { &hf_lbmc_ume_pser_source_port,
13287
16
            { "Source Port", "lbmc.ume_pser.source_port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13288
16
        { &hf_lbmc_ume_pser_store_port,
13289
16
            { "Store Port", "lbmc.ume_pser.store_port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13290
16
        { &hf_lbmc_ume_pser_source_ctxinst,
13291
16
            { "Source Context Instance", "lbmc.ume_pser.source_ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13292
16
        { &hf_lbmc_ume_pser_store_ctxinst,
13293
16
            { "Store Context Instance", "lbmc.ume_pser.store_ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13294
16
        { &hf_lbmc_domain,
13295
16
            { "Domain", "lbmc.domain", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13296
16
        { &hf_lbmc_domain_next_hdr,
13297
16
            { "Next Header", "lbmc.domain.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13298
16
        { &hf_lbmc_domain_hdr_len,
13299
16
            { "Header Length", "lbmc.domain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13300
16
        { &hf_lbmc_domain_flags,
13301
16
            { "Flags", "lbmc.domain.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13302
16
        { &hf_lbmc_domain_flags_ignore,
13303
16
            { "Ignore", "lbmc.domain.flags.ignore", FT_BOOLEAN, L_LBMC_DOMAIN_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
13304
16
        { &hf_lbmc_domain_flags_active,
13305
16
            { "Active", "lbmc.domain.flags.active", FT_BOOLEAN, L_LBMC_DOMAIN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_DOMAIN_ACTIVE_FLAG, NULL, HFILL } },
13306
16
        { &hf_lbmc_domain_domain,
13307
16
            { "Domain ID", "lbmc.domain.domain", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13308
16
        { &hf_lbmc_tnwg_capabilities,
13309
16
            { "TNWG Capabilities", "lbmc.tnwg_capabilities", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13310
16
        { &hf_lbmc_tnwg_capabilities_next_hdr,
13311
16
            { "Next Header", "lbmc.tnwg_capabilities.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13312
16
        { &hf_lbmc_tnwg_capabilities_hdr_len,
13313
16
            { "Header Length", "lbmc.tnwg_capabilities.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13314
16
        { &hf_lbmc_tnwg_capabilities_flags,
13315
16
            { "Flags", "lbmc.tnwg_capabilities.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13316
16
        { &hf_lbmc_tnwg_capabilities_flags_ignore,
13317
16
            { "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 } },
13318
16
        { &hf_lbmc_tnwg_capabilities_flags_version,
13319
16
            { "Version", "lbmc.tnwg_capabilities.flags.version", FT_UINT16, BASE_DEC, NULL, LBMC_CNTL_TNWG_CAPABILITIES_VERSION_MASK, NULL, HFILL } },
13320
16
        { &hf_lbmc_tnwg_capabilities_capabilities1,
13321
16
            { "Capabilities1", "lbmc.tnwg_capabilities.capabilities1", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13322
16
        { &hf_lbmc_tnwg_capabilities_capabilities1_ume,
13323
16
            { "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 } },
13324
16
        { &hf_lbmc_tnwg_capabilities_capabilities1_umq,
13325
16
            { "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 } },
13326
16
        { &hf_lbmc_tnwg_capabilities_capabilities2,
13327
16
            { "Capabilities2", "lbmc.tnwg_capabilities.capabilities2", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13328
16
        { &hf_lbmc_tnwg_capabilities_capabilities3,
13329
16
            { "Capabilities3", "lbmc.tnwg_capabilities.capabilities3", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13330
16
        { &hf_lbmc_tnwg_capabilities_capabilities3_pcre,
13331
16
            { "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 } },
13332
16
        { &hf_lbmc_tnwg_capabilities_capabilities3_regex,
13333
16
            { "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 } },
13334
16
        { &hf_lbmc_tnwg_capabilities_capabilities4,
13335
16
            { "Capabilities4", "lbmc.tnwg_capabilities.capabilities4", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13336
16
        { &hf_lbmc_patidx,
13337
16
            { "Pattern Index", "lbmc.patidx", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13338
16
        { &hf_lbmc_patidx_next_hdr,
13339
16
            { "Next Header", "lbmc.patidx.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13340
16
        { &hf_lbmc_patidx_hdr_len,
13341
16
            { "Header Length", "lbmc.patidx.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13342
16
        { &hf_lbmc_patidx_flags,
13343
16
            { "Flags", "lbmc.patidx.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13344
16
        { &hf_lbmc_patidx_flags_ignore,
13345
16
            { "Ignore", "lbmc.patidx.flags.ignore", FT_BOOLEAN, L_LBMC_PATIDX_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
13346
16
        { &hf_lbmc_patidx_patidx,
13347
16
            { "Source Index", "lbmc.patidx.patidx", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13348
16
        { &hf_lbmc_ume_client_lifetime,
13349
16
            { "UME Client Lifetime", "lbmc.ume_client_lifetime", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13350
16
        { &hf_lbmc_ume_client_lifetime_next_hdr,
13351
16
            { "Next Header", "lbmc.ume_client_lifetime.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13352
16
        { &hf_lbmc_ume_client_lifetime_hdr_len,
13353
16
            { "Header Length", "lbmc.ume_client_lifetime.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13354
16
        { &hf_lbmc_ume_client_lifetime_flags,
13355
16
            { "Flags", "lbmc.ume_client_lifetime.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13356
16
        { &hf_lbmc_ume_client_lifetime_flags_ignore,
13357
16
            { "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 } },
13358
16
        { &hf_lbmc_ume_client_lifetime_activity_tmo,
13359
16
            { "Activity Timeout", "lbmc.ume_client_lifetime.activity_tmo", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13360
16
        { &hf_lbmc_ume_client_lifetime_lifetime,
13361
16
            { "Lifetime", "lbmc.ume_client_lifetime.lifetime", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13362
16
        { &hf_lbmc_ume_client_lifetime_ttl,
13363
16
            { "Time to Live", "lbmc.ume_client_lifetime.ttl", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13364
16
        { &hf_lbmc_ume_sid,
13365
16
            { "UME Session ID", "lbmc.ume_sid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13366
16
        { &hf_lbmc_ume_sid_next_hdr,
13367
16
            { "Next Header", "lbmc.ume_sid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13368
16
        { &hf_lbmc_ume_sid_hdr_len,
13369
16
            { "Header Length", "lbmc.ume_sid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13370
16
        { &hf_lbmc_ume_sid_flags,
13371
16
            { "Flags", "lbmc.ume_sid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13372
16
        { &hf_lbmc_ume_sid_flags_ignore,
13373
16
            { "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 } },
13374
16
        { &hf_lbmc_ume_sid_sid,
13375
16
            { "Session ID", "lbmc.ume_sid.sid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13376
16
        { &hf_lbmc_umq_idx_cmd,
13377
16
            { "UMQ Index Command", "lbmc.umq_idx_cmd", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13378
16
        { &hf_lbmc_umq_idx_cmd_next_hdr,
13379
16
            { "Next Header", "lbmc.umq_idx_cmd.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13380
16
        { &hf_lbmc_umq_idx_cmd_hdr_len,
13381
16
            { "Header Length", "lbmc.umq_idx_cmd.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13382
16
        { &hf_lbmc_umq_idx_cmd_flags,
13383
16
            { "Flags", "lbmc.umq_idx_cmd.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13384
16
        { &hf_lbmc_umq_idx_cmd_flags_ignore,
13385
16
            { "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 } },
13386
16
        { &hf_lbmc_umq_idx_cmd_cmd_type,
13387
16
            { "Command Type", "lbmc.umq_idx_cmd.cmd_type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_umq_index_cmd_type), 0x0, NULL, HFILL } },
13388
16
        { &hf_lbmc_umq_idx_cmd_queue_id,
13389
16
            { "Queue ID", "lbmc.umq_idx_cmd.queue_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13390
16
        { &hf_lbmc_umq_idx_cmd_cmd_id,
13391
16
            { "Command ID", "lbmc.umq_idx_cmd.cmd_id", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13392
16
        { &hf_lbmc_umq_idx_cmd_inst_idx,
13393
16
            { "Instance Index", "lbmc.umq_idx_cmd.inst_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13394
16
        { &hf_lbmc_umq_idx_cmd_regid,
13395
16
            { "RegID", "lbmc.umq_idx_cmd.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13396
16
        { &hf_lbmc_umq_idx_cmd_stop_assign,
13397
16
            { "Stop Assign", "lbmc.umq_idx_cmd.stop_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13398
16
        { &hf_lbmc_umq_idx_cmd_stop_assign_rcr_idx,
13399
16
            { "RCR Index", "lbmc.umq_idx_cmd.stop_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13400
16
        { &hf_lbmc_umq_idx_cmd_stop_assign_assign_id,
13401
16
            { "Assignment ID", "lbmc.umq_idx_cmd.stop_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13402
16
        { &hf_lbmc_umq_idx_cmd_start_assign,
13403
16
            { "Start Assign", "lbmc.umq_idx_cmd.start_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13404
16
        { &hf_lbmc_umq_idx_cmd_start_assign_rcr_idx,
13405
16
            { "RCR Index", "lbmc.umq_idx_cmd.start_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13406
16
        { &hf_lbmc_umq_idx_cmd_start_assign_assign_id,
13407
16
            { "Assignment ID", "lbmc.umq_idx_cmd.start_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13408
16
        { &hf_lbmc_umq_idx_cmd_release_assign,
13409
16
            { "Release Assign", "lbmc.umq_idx_cmd.release_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13410
16
        { &hf_lbmc_umq_idx_cmd_release_assign_rcr_idx,
13411
16
            { "RCR Index", "lbmc.umq_idx_cmd.release_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13412
16
        { &hf_lbmc_umq_idx_cmd_release_assign_assign_id,
13413
16
            { "Assignment ID", "lbmc.umq_idx_cmd.release_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13414
16
        { &hf_lbmc_umq_idx_cmd_release_assign_flags,
13415
16
            { "Flags", "lbmc.umq_idx_cmd.release_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13416
16
        { &hf_lbmc_umq_idx_cmd_release_assign_flags_numeric,
13417
16
            { "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 } },
13418
16
        { &hf_lbmc_umq_idx_cmd_release_assign_index_len,
13419
16
            { "Index Length", "lbmc.umq_idx_cmd.release_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13420
16
        { &hf_lbmc_umq_idx_cmd_release_assign_reserved,
13421
16
            { "Reserved", "lbmc.umq_idx_cmd.release_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13422
16
        { &hf_lbmc_umq_idx_cmd_release_assign_numeric_index,
13423
16
            { "Index", "lbmc.umq_idx_cmd.release_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13424
16
        { &hf_lbmc_umq_idx_cmd_release_assign_string_index,
13425
16
            { "Index", "lbmc.umq_idx_cmd.release_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13426
16
        { &hf_lbmc_umq_idx_cmd_ulb_stop_assign,
13427
16
            { "ULB Stop Assign", "lbmc.umq_idx_cmd.ulb_stop_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13428
16
        { &hf_lbmc_umq_idx_cmd_ulb_stop_assign_src_id,
13429
16
            { "Source ID", "lbmc.umq_idx_cmd.ulb_stop_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13430
16
        { &hf_lbmc_umq_idx_cmd_ulb_stop_assign_assign_id,
13431
16
            { "Assignment ID", "lbmc.umq_idx_cmd.ulb_stop_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13432
16
        { &hf_lbmc_umq_idx_cmd_ulb_stop_assign_appset_idx,
13433
16
            { "Application Set Index", "lbmc.umq_idx_cmd.ulb_stop_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13434
16
        { &hf_lbmc_umq_idx_cmd_ulb_stop_assign_reserved,
13435
16
            { "Reserved", "lbmc.umq_idx_cmd.ulb_stop_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13436
16
        { &hf_lbmc_umq_idx_cmd_ulb_start_assign,
13437
16
            { "ULB Start Assign", "lbmc.umq_idx_cmd.ulb_start_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13438
16
        { &hf_lbmc_umq_idx_cmd_ulb_start_assign_src_id,
13439
16
            { "Source ID", "lbmc.umq_idx_cmd.ulb_start_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13440
16
        { &hf_lbmc_umq_idx_cmd_ulb_start_assign_assign_id,
13441
16
            { "Assignment ID", "lbmc.umq_idx_cmd.ulb_start_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13442
16
        { &hf_lbmc_umq_idx_cmd_ulb_start_assign_appset_idx,
13443
16
            { "Application Set Index", "lbmc.umq_idx_cmd.ulb_start_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13444
16
        { &hf_lbmc_umq_idx_cmd_ulb_start_assign_reserved,
13445
16
            { "Reserved", "lbmc.umq_idx_cmd.ulb_start_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13446
16
        { &hf_lbmc_umq_idx_cmd_ulb_release_assign,
13447
16
            { "ULB Release Assign", "lbmc.umq_idx_cmd.ulb_release_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13448
16
        { &hf_lbmc_umq_idx_cmd_ulb_release_assign_src_id,
13449
16
            { "Source ID", "lbmc.umq_idx_cmd.ulb_release_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13450
16
        { &hf_lbmc_umq_idx_cmd_ulb_release_assign_assign_id,
13451
16
            { "Assignment ID", "lbmc.umq_idx_cmd.ulb_release_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13452
16
        { &hf_lbmc_umq_idx_cmd_ulb_release_assign_flags,
13453
16
            { "Flags", "lbmc.umq_idx_cmd.ulb_release_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13454
16
        { &hf_lbmc_umq_idx_cmd_ulb_release_assign_flags_numeric,
13455
16
            { "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 } },
13456
16
        { &hf_lbmc_umq_idx_cmd_ulb_release_assign_appset_idx,
13457
16
            { "Application Set Index", "lbmc.umq_idx_cmd.ulb_release_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13458
16
        { &hf_lbmc_umq_idx_cmd_ulb_release_assign_index_len,
13459
16
            { "Index Length", "lbmc.umq_idx_cmd.ulb_release_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13460
16
        { &hf_lbmc_umq_idx_cmd_ulb_release_assign_reserved,
13461
16
            { "Reserved", "lbmc.umq_idx_cmd.ulb_release_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13462
16
        { &hf_lbmc_umq_idx_cmd_ulb_release_assign_numeric_index,
13463
16
            { "Index", "lbmc.umq_idx_cmd.ulb_release_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13464
16
        { &hf_lbmc_umq_idx_cmd_ulb_release_assign_string_index,
13465
16
            { "Index", "lbmc.umq_idx_cmd.ulb_release_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13466
16
        { &hf_lbmc_umq_idx_cmd_reserve_assign,
13467
16
            { "Reserve Assign", "lbmc.umq_idx_cmd.reserve_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13468
16
        { &hf_lbmc_umq_idx_cmd_reserve_assign_rcr_idx,
13469
16
            { "RCR Index", "lbmc.umq_idx_cmd.reserve_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13470
16
        { &hf_lbmc_umq_idx_cmd_reserve_assign_assign_id,
13471
16
            { "Assignment ID", "lbmc.umq_idx_cmd.reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13472
16
        { &hf_lbmc_umq_idx_cmd_reserve_assign_flags,
13473
16
            { "Flags", "lbmc.umq_idx_cmd.reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13474
16
        { &hf_lbmc_umq_idx_cmd_reserve_assign_flags_numeric,
13475
16
            { "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 } },
13476
16
        { &hf_lbmc_umq_idx_cmd_reserve_assign_index_len,
13477
16
            { "Index Length", "lbmc.umq_idx_cmd.reserve_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13478
16
        { &hf_lbmc_umq_idx_cmd_reserve_assign_reserved,
13479
16
            { "Reserved", "lbmc.umq_idx_cmd.reserve_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13480
16
        { &hf_lbmc_umq_idx_cmd_reserve_assign_numeric_index,
13481
16
            { "Index", "lbmc.umq_idx_cmd.reserve_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13482
16
        { &hf_lbmc_umq_idx_cmd_reserve_assign_string_index,
13483
16
            { "Index", "lbmc.umq_idx_cmd.reserve_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13484
16
        { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign,
13485
16
            { "ULB Reserve Assign", "lbmc.umq_idx_cmd.ulb_reserve_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13486
16
        { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_src_id,
13487
16
            { "Source ID", "lbmc.umq_idx_cmd.ulb_reserve_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13488
16
        { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_assign_id,
13489
16
            { "Assignment ID", "lbmc.umq_idx_cmd.ulb_reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13490
16
        { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags,
13491
16
            { "Flags", "lbmc.umq_idx_cmd.ulb_reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13492
16
        { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags_numeric,
13493
16
            { "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 } },
13494
16
        { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_appset_idx,
13495
16
            { "Application Set Index", "lbmc.umq_idx_cmd.ulb_reserve_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13496
16
        { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_index_len,
13497
16
            { "Index Length", "lbmc.umq_idx_cmd.ulb_reserve_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13498
16
        { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_reserved,
13499
16
            { "Reserved", "lbmc.umq_idx_cmd.ulb_reserve_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13500
16
        { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_numeric_index,
13501
16
            { "Index", "lbmc.umq_idx_cmd.ulb_reserve_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13502
16
        { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_string_index,
13503
16
            { "Index", "lbmc.umq_idx_cmd.ulb_reserve_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13504
16
        { &hf_lbmc_umq_idx_cmd_resp,
13505
16
            { "UMQ Index Command Response", "lbmc.umq_idx_cmd_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13506
16
        { &hf_lbmc_umq_idx_cmd_resp_next_hdr,
13507
16
            { "Next Header", "lbmc.umq_idx_cmd_resp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13508
16
        { &hf_lbmc_umq_idx_cmd_resp_hdr_len,
13509
16
            { "Header Length", "lbmc.umq_idx_cmd_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13510
16
        { &hf_lbmc_umq_idx_cmd_resp_flags,
13511
16
            { "Flags", "lbmc.umq_idx_cmd_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13512
16
        { &hf_lbmc_umq_idx_cmd_resp_flags_ignore,
13513
16
            { "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 } },
13514
16
        { &hf_lbmc_umq_idx_cmd_resp_flags_ulb,
13515
16
            { "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 } },
13516
16
        { &hf_lbmc_umq_idx_cmd_resp_resp_type,
13517
16
            { "Response Type", "lbmc.umq_idx_cmd_resp.resp_type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_umq_index_cmd_response_type), 0x0, NULL, HFILL } },
13518
16
        { &hf_lbmc_umq_idx_cmd_resp_queue_id,
13519
16
            { "Queue ID", "lbmc.umq_idx_cmd_resp.queue_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13520
16
        { &hf_lbmc_umq_idx_cmd_resp_cmd_id,
13521
16
            { "Command ID", "lbmc.umq_idx_cmd_resp.cmd_id", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13522
16
        { &hf_lbmc_umq_idx_cmd_resp_inst_idx,
13523
16
            { "Instance Index", "lbmc.umq_idx_cmd_resp.inst_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13524
16
        { &hf_lbmc_umq_idx_cmd_resp_regid,
13525
16
            { "RegID", "lbmc.umq_idx_cmd_resp.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13526
16
        { &hf_lbmc_umq_idx_cmd_resp_err,
13527
16
            { "Error", "lbmc.umq_idx_cmd_resp.err", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13528
16
        { &hf_lbmc_umq_idx_cmd_resp_err_reserved,
13529
16
            { "Reserved", "lbmc.umq_idx_cmd_resp.err.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13530
16
        { &hf_lbmc_umq_idx_cmd_resp_err_code,
13531
16
            { "Code", "lbmc.umq_idx_cmd_resp.err.code", FT_UINT16, BASE_DEC_HEX, VALS(lbmc_umq_idx_cmd_response_error_code), 0x0, NULL, HFILL } },
13532
16
        { &hf_lbmc_umq_idx_cmd_resp_err_error_string,
13533
16
            { "Error String", "lbmc.umq_idx_cmd_resp.err.error_string", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13534
16
        { &hf_lbmc_umq_idx_cmd_resp_stop_assign,
13535
16
            { "Stop Assign", "lbmc.umq_idx_cmd_resp.stop_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13536
16
        { &hf_lbmc_umq_idx_cmd_resp_stop_assign_rcr_idx,
13537
16
            { "RCR Index", "lbmc.umq_idx_cmd_resp.stop_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13538
16
        { &hf_lbmc_umq_idx_cmd_resp_stop_assign_assign_id,
13539
16
            { "Assignment ID", "lbmc.umq_idx_cmd_resp.stop_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13540
16
        { &hf_lbmc_umq_idx_cmd_resp_start_assign,
13541
16
            { "Start Assign", "lbmc.umq_idx_cmd_resp.start_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13542
16
        { &hf_lbmc_umq_idx_cmd_resp_start_assign_rcr_idx,
13543
16
            { "RCR Index", "lbmc.umq_idx_cmd_resp.start_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13544
16
        { &hf_lbmc_umq_idx_cmd_resp_start_assign_assign_id,
13545
16
            { "Assignment ID", "lbmc.umq_idx_cmd_resp.start_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13546
16
        { &hf_lbmc_umq_idx_cmd_resp_start_assign_appset_idx,
13547
16
            { "Application Set Index", "lbmc.umq_idx_cmd_resp.start_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13548
16
        { &hf_lbmc_umq_idx_cmd_resp_start_assign_reserved,
13549
16
            { "Reserved", "lbmc.umq_idx_cmd_resp.start_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13550
16
        { &hf_lbmc_umq_idx_cmd_resp_release_assign,
13551
16
            { "Release Assign", "lbmc.umq_idx_cmd_resp.release_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13552
16
        { &hf_lbmc_umq_idx_cmd_resp_release_assign_rcr_idx,
13553
16
            { "RCR Index", "lbmc.umq_idx_cmd_resp.release_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13554
16
        { &hf_lbmc_umq_idx_cmd_resp_release_assign_assign_id,
13555
16
            { "Assignment ID", "lbmc.umq_idx_cmd_resp.release_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13556
16
        { &hf_lbmc_umq_idx_cmd_resp_release_assign_appset_idx,
13557
16
            { "Application Set Index", "lbmc.umq_idx_cmd_resp.release_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13558
16
        { &hf_lbmc_umq_idx_cmd_resp_release_assign_reserved,
13559
16
            { "Reserved", "lbmc.umq_idx_cmd_resp.release_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13560
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign,
13561
16
            { "ULB Stop Assign", "lbmc.umq_idx_cmd_resp.ulb_stop_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13562
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_src_id,
13563
16
            { "Source ID", "lbmc.umq_idx_cmd_resp.ulb_stop_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13564
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_assign_id,
13565
16
            { "Assignment ID", "lbmc.umq_idx_cmd_resp.ulb_stop_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13566
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_appset_idx,
13567
16
            { "Application Set Index", "lbmc.umq_idx_cmd_resp.ulb_stop_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13568
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_stop_assign_reserved,
13569
16
            { "Reserved", "lbmc.umq_idx_cmd_resp.ulb_stop_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13570
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_start_assign,
13571
16
            { "ULB Start Assign", "lbmc.umq_idx_cmd_resp.ulb_start_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13572
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_src_id,
13573
16
            { "Source ID", "lbmc.umq_idx_cmd_resp.ulb_start_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13574
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_assign_id,
13575
16
            { "Assignment ID", "lbmc.umq_idx_cmd_resp.ulb_start_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13576
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_appset_idx,
13577
16
            { "Application Set Index", "lbmc.umq_idx_cmd_resp.ulb_start_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13578
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_start_assign_reserved,
13579
16
            { "Reserved", "lbmc.umq_idx_cmd_resp.ulb_start_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13580
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_release_assign,
13581
16
            { "ULB Release Assign", "lbmc.umq_idx_cmd_resp.ulb_release_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13582
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_src_id,
13583
16
            { "Source ID", "lbmc.umq_idx_cmd_resp.ulb_release_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13584
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_assign_id,
13585
16
            { "Assignment ID", "lbmc.umq_idx_cmd_resp.ulb_release_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13586
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_appset_idx,
13587
16
            { "Application Set Index", "lbmc.umq_idx_cmd_resp.ulb_release_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13588
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_release_assign_reserved,
13589
16
            { "Reserved", "lbmc.umq_idx_cmd_resp.ulb_release_assign.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13590
16
        { &hf_lbmc_umq_idx_cmd_resp_reserve_assign,
13591
16
            { "Reserve Assign", "lbmc.umq_idx_cmd_resp.reserve_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13592
16
        { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_rcr_idx,
13593
16
            { "RCR Index", "lbmc.umq_idx_cmd_resp.reserve_assign.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13594
16
        { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_assign_id,
13595
16
            { "Assignment ID", "lbmc.umq_idx_cmd_resp.reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13596
16
        { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags,
13597
16
            { "Flags", "lbmc.umq_idx_cmd_resp.reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13598
16
        { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags_numeric,
13599
16
            { "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 } },
13600
16
        { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_appset_idx,
13601
16
            { "AppSet Index", "lbmc.umq_idx_cmd_resp.reserve_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13602
16
        { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_index_len,
13603
16
            { "Index Length", "lbmc.umq_idx_cmd_resp.reserve_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13604
16
        { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_reserved,
13605
16
            { "Reserved", "lbmc.umq_idx_cmd_resp.reserve_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13606
16
        { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_numeric_index,
13607
16
            { "Index", "lbmc.umq_idx_cmd_resp.reserve_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13608
16
        { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_string_index,
13609
16
            { "Index", "lbmc.umq_idx_cmd_resp.reserve_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13610
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign,
13611
16
            { "ULB Reserve Assign", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13612
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_src_id,
13613
16
            { "Source ID", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.src_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13614
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_assign_id,
13615
16
            { "Assignment ID", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13616
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags,
13617
16
            { "Flags", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13618
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags_numeric,
13619
16
            { "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 } },
13620
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_appset_idx,
13621
16
            { "AppSet Index", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13622
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_index_len,
13623
16
            { "Index Length", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.index_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13624
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_reserved,
13625
16
            { "Reserved", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13626
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_numeric_index,
13627
16
            { "Index", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.numeric_index", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13628
16
        { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_string_index,
13629
16
            { "Index", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.string_index", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13630
16
        { &hf_lbmc_odomain,
13631
16
            { "Originating Domain", "lbmc.odomain", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13632
16
        { &hf_lbmc_odomain_next_hdr,
13633
16
            { "Next Header", "lbmc.odomain.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13634
16
        { &hf_lbmc_odomain_hdr_len,
13635
16
            { "Header Length", "lbmc.odomain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13636
16
        { &hf_lbmc_odomain_flags,
13637
16
            { "Flags", "lbmc.odomain.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13638
16
        { &hf_lbmc_odomain_flags_ignore,
13639
16
            { "Ignore", "lbmc.odomain.flags.ignore", FT_BOOLEAN, L_LBMC_ODOMAIN_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
13640
16
        { &hf_lbmc_odomain_domain,
13641
16
            { "Domain ID", "lbmc.odomain.domain", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13642
16
        { &hf_lbmc_stream,
13643
16
            { "Stream", "lbmc.stream", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13644
16
        { &hf_lbmc_stream_next_hdr,
13645
16
            { "Next Header", "lbmc.stream.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13646
16
        { &hf_lbmc_stream_hdr_len,
13647
16
            { "Header Length", "lbmc.stream.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13648
16
        { &hf_lbmc_stream_flags,
13649
16
            { "Flags", "lbmc.stream.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13650
16
        { &hf_lbmc_stream_flags_ignore,
13651
16
            { "Ignore", "lbmc.stream.flags.ignore", FT_BOOLEAN, L_LBMC_STREAM_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
13652
16
        { &hf_lbmc_stream_stream_id,
13653
16
            { "Stream ID", "lbmc.stream.stream_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13654
16
        { &hf_lbmc_stream_sqn,
13655
16
            { "Sequence Number", "lbmc.stream.sqn", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13656
16
        { &hf_lbmc_stream_ctxinst,
13657
16
            { "Context Instance", "lbmc.stream.ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13658
16
        { &hf_lbmc_topic_md_interest,
13659
16
            { "Topic Multi-Domain Interest", "lbmc.topic_md_interest", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13660
16
        { &hf_lbmc_topic_md_interest_next_hdr,
13661
16
            { "Next Header", "lbmc.topic_md_interest.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13662
16
        { &hf_lbmc_topic_md_interest_hdr_len,
13663
16
            { "Header Length", "lbmc.topic_md_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13664
16
        { &hf_lbmc_topic_md_interest_flags,
13665
16
            { "Flags", "lbmc.topic_md_interest.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13666
16
        { &hf_lbmc_topic_md_interest_flags_ignore,
13667
16
            { "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 } },
13668
16
        { &hf_lbmc_topic_md_interest_flags_cancel,
13669
16
            { "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 } },
13670
16
        { &hf_lbmc_topic_md_interest_flags_refresh,
13671
16
            { "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 } },
13672
16
        { &hf_lbmc_topic_md_interest_domain_count,
13673
16
            { "Domain Count", "lbmc.topic_md_interest.domain_count", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13674
16
        { &hf_lbmc_topic_md_interest_res1,
13675
16
            { "Reserved", "lbmc.topic_md_interest.res1", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13676
16
        { &hf_lbmc_topic_md_interest_domain_id,
13677
16
            { "Domain ID", "lbmc.topic_md_interest.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13678
16
        { &hf_lbmc_pattern_md_interest,
13679
16
            { "Pattern Multi-Domain Interest", "lbmc.pattern_md_interest", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13680
16
        { &hf_lbmc_pattern_md_interest_next_hdr,
13681
16
            { "Next Header", "lbmc.pattern_md_interest.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13682
16
        { &hf_lbmc_pattern_md_interest_hdr_len,
13683
16
            { "Header Length", "lbmc.pattern_md_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13684
16
        { &hf_lbmc_pattern_md_interest_flags,
13685
16
            { "Flags", "lbmc.pattern_md_interest.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13686
16
        { &hf_lbmc_pattern_md_interest_flags_ignore,
13687
16
            { "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 } },
13688
16
        { &hf_lbmc_pattern_md_interest_flags_cancel,
13689
16
            { "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 } },
13690
16
        { &hf_lbmc_pattern_md_interest_flags_refresh,
13691
16
            { "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 } },
13692
16
        { &hf_lbmc_pattern_md_interest_type,
13693
16
            { "Type", "lbmc.pattern_md_interest.type", FT_UINT8, BASE_DEC_HEX, VALS(lbm_wildcard_pattern_type), 0x0, NULL, HFILL } },
13694
16
        { &hf_lbmc_pattern_md_interest_domain_count,
13695
16
            { "Domain Count", "lbmc.pattern_md_interest.domain_count", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13696
16
        { &hf_lbmc_pattern_md_interest_res1,
13697
16
            { "Reserved", "lbmc.pattern_md_interest.res1", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13698
16
        { &hf_lbmc_pattern_md_interest_index,
13699
16
            { "Index", "lbmc.pattern_md_interest.index", FT_INT64, BASE_DEC, NULL, 0x0, NULL, HFILL } },
13700
16
        { &hf_lbmc_pattern_md_interest_domain_id,
13701
16
            { "Domain ID", "lbmc.pattern_md_interest.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13702
16
        { &hf_lbmc_lji_req,
13703
16
            { "Late Join Information Request", "lbmc.lji_req", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13704
16
        { &hf_lbmc_lji_req_next_hdr,
13705
16
            { "Next Header", "lbmc.lji_req.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13706
16
        { &hf_lbmc_lji_req_hdr_len,
13707
16
            { "Header Length", "lbmc.lji_req.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13708
16
        { &hf_lbmc_lji_req_flags,
13709
16
            { "Flags", "lbmc.lji_req.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13710
16
        { &hf_lbmc_lji_req_flags_ignore,
13711
16
            { "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 } },
13712
16
        { &hf_lbmc_lji_req_flags_l_flag,
13713
16
            { "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 } },
13714
16
        { &hf_lbmc_lji_req_flags_m_flag,
13715
16
            { "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 } },
13716
16
        { &hf_lbmc_lji_req_flags_o_flag,
13717
16
            { "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 } },
13718
16
        { &hf_lbmc_lji_req_request_idx,
13719
16
            { "Request Index", "lbmc.lji_req.request_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
13720
16
        { &hf_lbmc_lji_req_transport_idx,
13721
16
            { "Transport Index", "lbmc.lji_req.transport_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
13722
16
        { &hf_lbmc_lji_req_topic_idx,
13723
16
            { "Topic Index", "lbmc.lji_req.topic_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
13724
16
        { &hf_lbmc_lji_req_req_ip,
13725
16
            { "Request IP", "lbmc.lji_req.req_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13726
16
        { &hf_lbmc_lji_req_req_port,
13727
16
            { "Request Port", "lbmc.lji_req.req_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
13728
16
        { &hf_lbmc_lji_req_res,
13729
16
            { "Reserved", "lbmc.lji_req.res", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13730
16
        { &hf_lbmc_lji_req_tx_low_sqn,
13731
16
            { "Transmitted Low SQN", "lbmc.lji_req.tx_low_sqn", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
13732
16
        { &hf_lbmc_lji_req_rx_req_max,
13733
16
            { "Maximum RX Requests", "lbmc.lji_req.rx_req_max", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
13734
16
        { &hf_lbmc_lji_req_rx_req_outstanding_max,
13735
16
            { "Maximum Outstanding RX Requests", "lbmc.lji_req.rx_req_outstanding_max", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
13736
16
        { &hf_lbmc_tnwg_ka,
13737
16
            { "TNWG Keepalive", "lbmc.tnwg_ka", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13738
16
        { &hf_lbmc_tnwg_ka_next_hdr,
13739
16
            { "Next Header", "lbmc.tnwg_ka.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13740
16
        { &hf_lbmc_tnwg_ka_hdr_len,
13741
16
            { "Header Length", "lbmc.tnwg_ka.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13742
16
        { &hf_lbmc_tnwg_ka_flags,
13743
16
            { "Flags", "lbmc.tnwg_ka.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13744
16
        { &hf_lbmc_tnwg_ka_flags_ignore,
13745
16
            { "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 } },
13746
16
        { &hf_lbmc_tnwg_ka_flags_q_flag,
13747
16
            { "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 } },
13748
16
        { &hf_lbmc_tnwg_ka_flags_r_flag,
13749
16
            { "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 } },
13750
16
        { &hf_lbmc_tnwg_ka_index,
13751
16
            { "Index", "lbmc.tnwg_ka.index", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13752
16
        { &hf_lbmc_tnwg_ka_ts_seconds,
13753
16
            { "TS Seconds", "lbmc.tnwg_ka.ts_seconds", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13754
16
        { &hf_lbmc_tnwg_ka_ts_microseconds,
13755
16
            { "TS Microseconds", "lbmc.tnwg_ka.ts_microseconds", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13756
16
        { &hf_lbmc_tnwg_ka_reserved_1,
13757
16
            { "Reserved 1", "lbmc.tnwg_ka.reserved_1", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13758
16
        { &hf_lbmc_tnwg_ka_reserved_2,
13759
16
            { "Reserved 2", "lbmc.tnwg_ka.reserved_2", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13760
16
        { &hf_lbmc_tnwg_ka_reserved_3,
13761
16
            { "Reserved 3", "lbmc.tnwg_ka.reserved_3", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13762
16
        { &hf_lbmc_tnwg_ka_reserved_4,
13763
16
            { "Reserved 4", "lbmc.tnwg_ka.reserved_4", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13764
16
        { &hf_lbmc_tnwg_ka_reserved_5,
13765
16
            { "Reserved 5", "lbmc.tnwg_ka.reserved_5", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13766
16
        { &hf_lbmc_tnwg_ka_reserved_6,
13767
16
            { "Reserved 6", "lbmc.tnwg_ka.reserved_6", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13768
16
        { &hf_lbmc_ume_receiver_keepalive,
13769
16
            { "UME Receiver Keepalive", "lbmc.ume_receiver_keepalive", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13770
16
        { &hf_lbmc_ume_receiver_keepalive_next_hdr,
13771
16
            { "Next Header", "lbmc.ume_receiver_keepalive.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13772
16
        { &hf_lbmc_ume_receiver_keepalive_hdr_len,
13773
16
            { "Header Length", "lbmc.ume_receiver_keepalive.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13774
16
        { &hf_lbmc_ume_receiver_keepalive_flags,
13775
16
            { "Flags", "lbmc.ume_receiver_keepalive.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13776
16
        { &hf_lbmc_ume_receiver_keepalive_flags_ignore,
13777
16
            { "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 } },
13778
16
        { &hf_lbmc_ume_receiver_keepalive_rcv_regid,
13779
16
            { "Receiver RegID", "lbmc.ume_receiver_keepalive.rcv_regid", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13780
16
        { &hf_lbmc_ume_receiver_keepalive_session_id,
13781
16
            { "Session ID", "lbmc.ume_receiver_keepalive.session_id", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13782
16
        { &hf_lbmc_ume_receiver_keepalive_ctxinst,
13783
16
            { "Context Instance", "lbmc.ume_receiver_keepalive.ctxinst", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13784
16
        { &hf_lbmc_umq_cmd,
13785
16
            { "UMQ Command", "lbmc.umq_cmd", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13786
16
        { &hf_lbmc_umq_cmd_next_hdr,
13787
16
            { "Next Header", "lbmc.umq_cmd.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13788
16
        { &hf_lbmc_umq_cmd_hdr_len,
13789
16
            { "Header Length", "lbmc.umq_cmd.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13790
16
        { &hf_lbmc_umq_cmd_flags,
13791
16
            { "Flags", "lbmc.umq_cmd.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13792
16
        { &hf_lbmc_umq_cmd_flags_ignore,
13793
16
            { "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 } },
13794
16
        { &hf_lbmc_umq_cmd_cmd_type,
13795
16
            { "Command", "lbmc.umq_cmd.cmd_type", FT_UINT8, BASE_DEC, VALS(lbmc_umq_cmd_type), 0x0, NULL, HFILL } },
13796
16
        { &hf_lbmc_umq_cmd_queue_id,
13797
16
            { "Queue ID", "lbmc.umq_cmd.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13798
16
        { &hf_lbmc_umq_cmd_cmd_id,
13799
16
            { "Command ID", "lbmc.umq_cmd.cmd_id", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13800
16
        { &hf_lbmc_umq_cmd_inst_idx,
13801
16
            { "Instance index", "lbmc.umq_cmd.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13802
16
        { &hf_lbmc_umq_cmd_regid,
13803
16
            { "Reg ID", "lbmc.umq_cmd.regid", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13804
16
        { &hf_lbmc_umq_cmd_topic_list,
13805
16
            { "Topic List", "lbmc.umq_cmd.topic_list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13806
16
        { &hf_lbmc_umq_cmd_topic_list_serial_num,
13807
16
            { "Serial number", "lbmc.umq_cmd.topic_list.serial_num", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13808
16
        { &hf_lbmc_umq_cmd_msg_retrieve,
13809
16
            { "Message Retrieve", "lbmc.umq_cmd.msg_retrieve", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13810
16
        { &hf_lbmc_umq_cmd_msg_retrieve_rcr_idx,
13811
16
            { "RCR Index", "lbmc.umq_cmd.msg_retrieve.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13812
16
        { &hf_lbmc_umq_cmd_msg_retrieve_assign_id,
13813
16
            { "Assignment ID", "lbmc.umq_cmd.msg_retrieve.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13814
16
        { &hf_lbmc_umq_cmd_msg_retrieve_info_only,
13815
16
            { "Info Only", "lbmc.umq_cmd.msg_retrieve.info_only", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13816
16
        { &hf_lbmc_umq_cmd_msg_retrieve_num_msgids,
13817
16
            { "Number of Message IDs", "lbmc.umq_cmd.msg_retrieve.num_msgids", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13818
16
        { &hf_lbmc_umq_cmd_msg_retrieve_flags,
13819
16
            { "Flags", "lbmc.umq_cmd.msg_retrieve.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13820
16
        { &hf_lbmc_umq_cmd_msg_retrieve_entry,
13821
16
            { "Message Retrieve Entry", "lbmc.umq_cmd.msg_retrieve.entry", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13822
16
        { &hf_lbmc_umq_cmd_msg_retrieve_entry_regid,
13823
16
            { "Reg ID", "lbmc.umq_cmd.msg_retrieve.entry.regid", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13824
16
        { &hf_lbmc_umq_cmd_msg_retrieve_entry_stamp,
13825
16
            { "Stamp", "lbmc.umq_cmd.msg_retrieve.entry.stamp", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13826
16
        { &hf_lbmc_umq_cmd_msg_list,
13827
16
            { "Message List", "lbmc.umq_cmd.msg_list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13828
16
        { &hf_lbmc_umq_cmd_msg_list_rcr_idx,
13829
16
            { "RCR Index", "lbmc.umq_cmd.msg_list.rcr_idx", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13830
16
        { &hf_lbmc_umq_cmd_msg_list_assign_id,
13831
16
            { "Assign ID", "lbmc.umq_cmd.msg_list.assign_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13832
16
        { &hf_lbmc_umq_cmd_resp,
13833
16
            { "UMQ Command Response", "lbmc.umq_cmd_resp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13834
16
        { &hf_lbmc_umq_cmd_resp_next_hdr,
13835
16
            { "Next Header", "lbmc.umq_cmd_resp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13836
16
        { &hf_lbmc_umq_cmd_resp_hdr_len,
13837
16
            { "Header Length", "lbmc.umq_cmd_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13838
16
        { &hf_lbmc_umq_cmd_resp_flags,
13839
16
            { "Flags", "lbmc.umq_cmd_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13840
16
        { &hf_lbmc_umq_cmd_resp_flags_ignore,
13841
16
            { "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 } },
13842
16
        { &hf_lbmc_umq_cmd_resp_resp_type,
13843
16
            { "Response", "lbmc.umq_cmd_resp.resp_type", FT_UINT8, BASE_DEC, VALS(lbmc_umq_cmd_response_type), 0x0, NULL, HFILL } },
13844
16
        { &hf_lbmc_umq_cmd_resp_queue_id,
13845
16
            { "Queue ID", "lbmc.umq_cmd_resp.queue_id", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13846
16
        { &hf_lbmc_umq_cmd_resp_cmd_id,
13847
16
            { "Command ID", "lbmc.umq_cmd_resp.cmd_id", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13848
16
        { &hf_lbmc_umq_cmd_resp_inst_idx,
13849
16
            { "Instance index", "lbmc.umq_cmd_resp.inst_idx", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13850
16
        { &hf_lbmc_umq_cmd_resp_regid,
13851
16
            { "Reg ID", "lbmc.umq_cmd_resp.regid", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
13852
16
        { &hf_lbmc_umq_cmd_resp_msg_retrieve,
13853
16
            { "Message Retrieve", "lbmc.umq_cmd_resp.msg_retrieve", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13854
16
        { &hf_lbmc_umq_cmd_resp_msg_retrieve_rcr_idx,
13855
16
            { "RCR Index", "lbmc.umq_cmd_resp.msg_retrieve.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13856
16
        { &hf_lbmc_umq_cmd_resp_msg_retrieve_assign_id,
13857
16
            { "Assignment ID", "lbmc.umq_cmd_resp.msg_retrieve.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13858
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve,
13859
16
            { "Message Retrieve", "lbmc.umq_cmd_resp.xmsg_retrieve", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13860
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve_num_msgs,
13861
16
            { "Number of Messages", "lbmc.umq_cmd_resp.xmsg_retrieve.num_msgs", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13862
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve_flags,
13863
16
            { "Flags", "lbmc.umq_cmd_resp.xmsg_retrieve.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13864
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve_reserved,
13865
16
            { "Reserved", "lbmc.umq_cmd_resp.xmsg_retrieve.reserved", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13866
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry,
13867
16
            { "Message", "lbmc.umq_cmd_resp.xmsg_retrieve.entry", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13868
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_regid,
13869
16
            { "Reg ID", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13870
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_stamp,
13871
16
            { "Stamp", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.stamp", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13872
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_assign_id,
13873
16
            { "Assignment ID", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13874
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_num_ras,
13875
16
            { "Number of Reassignments", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.num_ras", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13876
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_status,
13877
16
            { "Status", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.status", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_umq_msg_status_code), 0x0, NULL, HFILL } },
13878
16
        { &hf_lbmc_umq_cmd_resp_xmsg_retrieve_entry_reserved,
13879
16
            { "Reserved", "lbmc.umq_cmd_resp.xmsg_retrieve.entry.reserved", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13880
16
        { &hf_lbmc_umq_cmd_resp_msg_list,
13881
16
            { "Message List", "lbmc.umq_cmd_resp.msg_list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13882
16
        { &hf_lbmc_umq_cmd_resp_msg_list_rcr_idx,
13883
16
            { "RCR Index", "lbmc.umq_cmd_resp.msg_list.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13884
16
        { &hf_lbmc_umq_cmd_resp_msg_list_assign_id,
13885
16
            { "Assignment ID", "lbmc.umq_cmd_resp.msg_list.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13886
16
        { &hf_lbmc_umq_cmd_resp_xmsg_list,
13887
16
            { "Message List", "lbmc.umq_cmd_resp.xmsg_list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13888
16
        { &hf_lbmc_umq_cmd_resp_xmsg_list_num_msgs,
13889
16
            { "Number of Messages", "lbmc.umq_cmd_resp.xmsg_list.num_msgs", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13890
16
        { &hf_lbmc_umq_cmd_resp_xmsg_list_entry,
13891
16
            { "Message", "lbmc.umq_cmd_resp.xmsg_list.entry", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13892
16
        { &hf_lbmc_umq_cmd_resp_xmsg_list_entry_regid,
13893
16
            { "Reg ID", "lbmc.umq_cmd_resp.xmsg_list.entry.regid", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13894
16
        { &hf_lbmc_umq_cmd_resp_xmsg_list_entry_stamp,
13895
16
            { "Stamp", "lbmc.umq_cmd_resp.xmsg_list.entry.stamp", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13896
16
        { &hf_lbmc_umq_cmd_resp_topic_list,
13897
16
            { "Topic List", "lbmc.umq_cmd_resp.topic_list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13898
16
        { &hf_lbmc_umq_cmd_resp_topic_list_num_topics,
13899
16
            { "Number of Topics", "lbmc.umq_cmd_resp.topic_list.num_topics", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13900
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry,
13901
16
            { "Topic List Entry", "lbmc.umq_cmd_resp.topic_list.topic_entry", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13902
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_rcr_idx,
13903
16
            { "RCR Index", "lbmc.umq_cmd_resp.topic_list.topic_entry.rcr_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13904
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_num_appsets,
13905
16
            { "Number of AppSets", "lbmc.umq_cmd_resp.topic_list.topic_entry.num_appsets", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13906
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_topic_len,
13907
16
            { "Topic Length", "lbmc.umq_cmd_resp.topic_list.topic_entry.topic_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13908
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_reserved,
13909
16
            { "Reserved", "lbmc.umq_cmd_resp.topic_list.topic_entry.reserved", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13910
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_topic,
13911
16
            { "Topic", "lbmc.umq_cmd_resp.topic_list.topic_entry.topic", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13912
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry,
13913
16
            { "Appset Entry", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13914
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_num_receiver_type_ids,
13915
16
            { "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 } },
13916
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_appset_idx,
13917
16
            { "AppSet Index", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry.appset_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13918
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_appset_name_len,
13919
16
            { "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 } },
13920
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_reserved,
13921
16
            { "Reserved", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry.reserved", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13922
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_name,
13923
16
            { "AppSet Name", "lbmc.umq_cmd_resp.topic_list.topic_entry.appset_entry.name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13924
16
        { &hf_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry_receiver_type_id,
13925
16
            { "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 } },
13926
16
        { &hf_lbmc_umq_cmd_resp_err,
13927
16
            { "Error", "lbmc.umq_cmd_resp.error", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13928
16
        { &hf_lbmc_umq_cmd_resp_err_reserved,
13929
16
            { "Reserved", "lbmc.umq_cmd_resp.error.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13930
16
        { &hf_lbmc_umq_cmd_resp_err_code,
13931
16
            { "Code", "lbmc.umq_cmd_resp.error.code", FT_UINT16, BASE_DEC_HEX, VALS(lbmc_umq_cmd_response_error_code), 0x0, NULL, HFILL } },
13932
16
        { &hf_lbmc_umq_cmd_resp_err_errmsg,
13933
16
            { "Error Message", "lbmc.umq_cmd_resp.error.errmsg", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13934
16
        { &hf_lbmc_sri_req,
13935
16
            { "Source Registration Information Request", "lbmc.sri_req", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13936
16
        { &hf_lbmc_sri_req_next_hdr,
13937
16
            { "Next Header", "lbmc.sri_req.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13938
16
        { &hf_lbmc_sri_req_hdr_len,
13939
16
            { "Header Length", "lbmc.sri_req.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13940
16
        { &hf_lbmc_sri_req_flags,
13941
16
            { "Flags", "lbmc.sri_req.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13942
16
        { &hf_lbmc_sri_req_flags_ignore,
13943
16
            { "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 } },
13944
16
        { &hf_lbmc_sri_req_transport_idx,
13945
16
            { "Transport Index", "lbmc.sri_req.transport_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13946
16
        { &hf_lbmc_sri_req_topic_idx,
13947
16
            { "Topic Index", "lbmc.sri_req.topic_idx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13948
16
        { &hf_lbmc_ume_store_domain,
13949
16
            { "UME Store Domain", "lbmc.ume_store_domain", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13950
16
        { &hf_lbmc_ume_store_domain_next_hdr,
13951
16
            { "Next Header", "lbmc.ume_store_domain.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13952
16
        { &hf_lbmc_ume_store_domain_hdr_len,
13953
16
            { "Header Length", "lbmc.ume_store_domain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13954
16
        { &hf_lbmc_ume_store_domain_flags,
13955
16
            { "Flags", "lbmc.ume_store_domain.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13956
16
        { &hf_lbmc_ume_store_domain_flags_ignore,
13957
16
            { "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 } },
13958
16
        { &hf_lbmc_ume_store_domain_domain,
13959
16
            { "Domain ID", "lbmc.ume_store_domain.domain", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13960
16
        { &hf_lbmc_sri,
13961
16
            { "Source Registration Information", "lbmc.sri", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13962
16
        { &hf_lbmc_sri_next_hdr,
13963
16
            { "Next Header", "lbmc.sri.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13964
16
        { &hf_lbmc_sri_hdr_len,
13965
16
            { "Header Length", "lbmc.sri.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13966
16
        { &hf_lbmc_sri_flags,
13967
16
            { "Flags", "lbmc.sri.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13968
16
        { &hf_lbmc_sri_flags_ignore,
13969
16
            { "Ignore", "lbmc.sri.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_SRI_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
13970
16
        { &hf_lbmc_sri_flags_acktosrc,
13971
16
            { "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 } },
13972
16
        { &hf_lbmc_sri_flags_initial_sqn_known,
13973
16
            { "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 } },
13974
16
        { &hf_lbmc_sri_version,
13975
16
            { "Version", "lbmc.sri.version", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13976
16
        { &hf_lbmc_sri_low_sqn,
13977
16
            { "Low Sequence Number", "lbmc.sri.low_sqn", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13978
16
        { &hf_lbmc_sri_high_sqn,
13979
16
            { "High Sequence Number", "lbmc.sri.high_sqn", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13980
16
        { &hf_lbmc_route_info,
13981
16
            { "Route Information", "lbmc.route_info", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
13982
16
        { &hf_lbmc_route_info_next_hdr,
13983
16
            { "Next Header", "lbmc.route_info.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
13984
16
        { &hf_lbmc_route_info_hdr_len,
13985
16
            { "Header Length", "lbmc.route_info.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
13986
16
        { &hf_lbmc_route_info_flags,
13987
16
            { "Flags", "lbmc.route_info.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13988
16
        { &hf_lbmc_route_info_flags_ignore,
13989
16
            { "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 } },
13990
16
        { &hf_lbmc_route_info_gateway_version,
13991
16
            { "Gateway Version", "lbmc.route_info.gateway_version", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13992
16
        { &hf_lbmc_route_info_configuration_signature,
13993
16
            { "Configuration Signature", "lbmc.route_info.configuration_signature", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13994
16
        { &hf_lbmc_route_info_node_id,
13995
16
            { "Node ID", "lbmc.route_info.node_id", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13996
16
        { &hf_lbmc_route_info_topology,
13997
16
            { "Topology", "lbmc.route_info.topology", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
13998
16
        { &hf_lbmc_route_info_vers,
13999
16
            { "Version", "lbmc.route_info.vers", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14000
16
        { &hf_lbmc_route_info_sqn,
14001
16
            { "SQN", "lbmc.route_info.sqn", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14002
16
        { &hf_lbmc_route_info_ttl,
14003
16
            { "TTL", "lbmc.route_info.ttl", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14004
16
        { &hf_lbmc_route_info_reserved1,
14005
16
            { "Reserved1", "lbmc.route_info.reserved1", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14006
16
        { &hf_lbmc_route_info_reserved2,
14007
16
            { "Reserved2", "lbmc.route_info.reserved2", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14008
16
        { &hf_lbmc_route_info_neighbor,
14009
16
            { "Route Information Neighbor", "lbmc.route_info_neighbor", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14010
16
        { &hf_lbmc_route_info_neighbor_next_hdr,
14011
16
            { "Next Header", "lbmc.route_info_neighbor.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14012
16
        { &hf_lbmc_route_info_neighbor_hdr_len,
14013
16
            { "Header Length", "lbmc.route_info_neighbor.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14014
16
        { &hf_lbmc_route_info_neighbor_flags,
14015
16
            { "Flags", "lbmc.route_info_neighbor.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14016
16
        { &hf_lbmc_route_info_neighbor_flags_ignore,
14017
16
            { "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 } },
14018
16
        { &hf_lbmc_route_info_neighbor_node_id,
14019
16
            { "Node ID", "lbmc.route_info_neighbor.node_id", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14020
16
        { &hf_lbmc_route_info_neighbor_ingress_cost,
14021
16
            { "Ingress Cost", "lbmc.route_info_neighbor.ingress_cost", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14022
16
        { &hf_lbmc_route_info_neighbor_egress_cost,
14023
16
            { "Egress Cost", "lbmc.route_info_neighbor.egress_cost", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14024
16
        { &hf_lbmc_route_info_nbr_ext,
14025
16
            { "Route Information Neighbor Extended", "lbmc.route_info_nbr_ext", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14026
16
        { &hf_lbmc_route_info_nbr_ext_next_hdr,
14027
16
            { "Next Header", "lbmc.route_info_nbr_ext.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14028
16
        { &hf_lbmc_route_info_nbr_ext_hdr_len,
14029
16
            { "Header Length", "lbmc.route_info_nbr_ext.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14030
16
        { &hf_lbmc_route_info_nbr_ext_flags,
14031
16
            { "Flags", "lbmc.route_info_nbr_ext.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14032
16
        { &hf_lbmc_route_info_nbr_ext_flags_ignore,
14033
16
            { "Ignore", "lbmc.route_info_nbr_ext.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_ROUTE_INFO_NBR_EXT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
14034
16
        { &hf_lbmc_route_info_nbr_ext_node_id,
14035
16
            { "Node ID", "lbmc.route_info_nbr_ext.node_id", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14036
16
        { &hf_lbmc_route_info_nbr_ext_group,
14037
16
            { "Route Group", "lbmc.route_info_nbr_ext.group", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14038
16
        { &hf_lbmc_gateway_name,
14039
16
            { "Gateway Name", "lbmc.gateway_name", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14040
16
        { &hf_lbmc_gateway_name_next_hdr,
14041
16
            { "Next Header", "lbmc.gateway_name.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14042
16
        { &hf_lbmc_gateway_name_hdr_len,
14043
16
            { "Header Length", "lbmc.gateway_name.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14044
16
        { &hf_lbmc_gateway_name_flags,
14045
16
            { "Flags", "lbmc.gateway_name.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14046
16
        { &hf_lbmc_gateway_name_flags_ignore,
14047
16
            { "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 } },
14048
16
        { &hf_lbmc_gateway_name_gateway_name,
14049
16
            { "Gateway Name", "lbmc.gateway_name.gateway_name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14050
16
        { &hf_lbmc_auth_request,
14051
16
            { "Authentication Request", "lbmc.auth_request", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14052
16
        { &hf_lbmc_auth_request_next_hdr,
14053
16
            { "Next Header", "lbmc.auth_request.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14054
16
        { &hf_lbmc_auth_request_hdr_len,
14055
16
            { "Header Length", "lbmc.auth_request.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14056
16
        { &hf_lbmc_auth_request_flags,
14057
16
            { "Flags", "lbmc.auth_request.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14058
16
        { &hf_lbmc_auth_request_flags_ignore,
14059
16
            { "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 } },
14060
16
        { &hf_lbmc_auth_request_opid,
14061
16
            { "Operation ID", "lbmc.auth_request.opid", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_auth_operation_id_type), 0x0, NULL, HFILL } },
14062
16
        { &hf_lbmc_auth_request_user_len,
14063
16
            { "User Length", "lbmc.auth_request.user_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14064
16
        { &hf_lbmc_auth_request_user_name,
14065
16
            { "User Name", "lbmc.auth_request.user_name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14066
16
        { &hf_lbmc_auth_challenge,
14067
16
            { "Authentication Challenge", "lbmc.auth_challenge", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14068
16
        { &hf_lbmc_auth_challenge_next_hdr,
14069
16
            { "Next Header", "lbmc.auth_challenge.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14070
16
        { &hf_lbmc_auth_challenge_hdr_len,
14071
16
            { "Header Length", "lbmc.auth_challenge.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14072
16
        { &hf_lbmc_auth_challenge_flags,
14073
16
            { "Flags", "lbmc.auth_challenge.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14074
16
        { &hf_lbmc_auth_challenge_flags_ignore,
14075
16
            { "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 } },
14076
16
        { &hf_lbmc_auth_challenge_opid,
14077
16
            { "Operation ID", "lbmc.auth_challenge.opid", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_auth_operation_id_type), 0x0, NULL, HFILL } },
14078
16
        { &hf_lbmc_auth_challenge_mod_len,
14079
16
            { "Mod Length", "lbmc.auth_challenge.mod_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14080
16
        { &hf_lbmc_auth_challenge_gen_len,
14081
16
            { "Gen Length", "lbmc.auth_challenge.gen_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14082
16
        { &hf_lbmc_auth_challenge_salt_len,
14083
16
            { "Salt Length", "lbmc.auth_challenge.salt_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14084
16
        { &hf_lbmc_auth_challenge_pubkey_len,
14085
16
            { "Pubkey Length", "lbmc.auth_challenge.pubkey_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14086
16
        { &hf_lbmc_auth_challenge_mod,
14087
16
            { "Mod", "lbmc.auth_challenge.mod", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14088
16
        { &hf_lbmc_auth_challenge_gen,
14089
16
            { "Gen", "lbmc.auth_challenge.gen", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14090
16
        { &hf_lbmc_auth_challenge_salt,
14091
16
            { "Salt", "lbmc.auth_challenge.salt", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14092
16
        { &hf_lbmc_auth_challenge_pubkey,
14093
16
            { "Pubkey", "lbmc.auth_challenge.pubkey", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14094
16
        { &hf_lbmc_auth_challenge_rsp,
14095
16
            { "Authentication Challenge Response", "lbmc.auth_challenge_rsp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14096
16
        { &hf_lbmc_auth_challenge_rsp_next_hdr,
14097
16
            { "Next Header", "lbmc.auth_challenge_rsp.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14098
16
        { &hf_lbmc_auth_challenge_rsp_hdr_len,
14099
16
            { "Header Length", "lbmc.auth_challenge_rsp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14100
16
        { &hf_lbmc_auth_challenge_rsp_flags,
14101
16
            { "Flags", "lbmc.auth_challenge_rsp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14102
16
        { &hf_lbmc_auth_challenge_rsp_flags_ignore,
14103
16
            { "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 } },
14104
16
        { &hf_lbmc_auth_challenge_rsp_opid,
14105
16
            { "Operation ID", "lbmc.auth_challenge_rsp.opid", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_auth_operation_id_type), 0x0, NULL, HFILL } },
14106
16
        { &hf_lbmc_auth_challenge_rsp_pubkey_len,
14107
16
            { "Pubkey Length", "lbmc.auth_challenge_rsp.pubkey_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14108
16
        { &hf_lbmc_auth_challenge_rsp_evidence_len,
14109
16
            { "Evidence Length", "lbmc.auth_challenge_rsp.evidence_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14110
16
        { &hf_lbmc_auth_challenge_rsp_pubkey,
14111
16
            { "Pubkey", "lbmc.auth_challenge_rsp.pubkey", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14112
16
        { &hf_lbmc_auth_challenge_rsp_evidence,
14113
16
            { "Evidence", "lbmc.auth_challenge_rsp.evidence", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14114
16
        { &hf_lbmc_auth_result,
14115
16
            { "Authentication Result", "lbmc.auth_result", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14116
16
        { &hf_lbmc_auth_result_next_hdr,
14117
16
            { "Next Header", "lbmc.auth_result.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14118
16
        { &hf_lbmc_auth_result_hdr_len,
14119
16
            { "Header Length", "lbmc.auth_result.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14120
16
        { &hf_lbmc_auth_result_flags,
14121
16
            { "Flags", "lbmc.auth_result.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14122
16
        { &hf_lbmc_auth_result_flags_ignore,
14123
16
            { "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 } },
14124
16
        { &hf_lbmc_auth_result_opid,
14125
16
            { "Operation ID", "lbmc.auth_result.opid", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_auth_operation_id_type), 0x0, NULL, HFILL } },
14126
16
        { &hf_lbmc_auth_result_result,
14127
16
            { "Result", "lbmc.auth_result.result", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14128
16
        { &hf_lbmc_auth_unknown,
14129
16
            { "Unknown Authentication Header", "lbmc.auth_unknown", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14130
16
        { &hf_lbmc_auth_unknown_next_hdr,
14131
16
            { "Next Header", "lbmc.auth_unknown.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14132
16
        { &hf_lbmc_auth_unknown_hdr_len,
14133
16
            { "Header Length", "lbmc.auth_unknown.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14134
16
        { &hf_lbmc_auth_unknown_flags,
14135
16
            { "Flags", "lbmc.auth_unknown.flags", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
14136
16
        { &hf_lbmc_auth_unknown_opid,
14137
16
            { "Operation ID", "lbmc.auth_unknown.opid", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_auth_operation_id_type), 0x0, NULL, HFILL } },
14138
16
        { &hf_lbmc_auth_unknown_data,
14139
16
            { "Data", "lbmc.auth_unknown.data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14140
16
        { &hf_lbmc_hmac,
14141
16
            { "HMAC", "lbmc.hmac", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14142
16
        { &hf_lbmc_hmac_next_hdr,
14143
16
            { "Next Header", "lbmc.hmac.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14144
16
        { &hf_lbmc_hmac_hdr_len,
14145
16
            { "Header Length", "lbmc.hmac.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14146
16
        { &hf_lbmc_hmac_flags,
14147
16
            { "Flags", "lbmc.hmac.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14148
16
        { &hf_lbmc_hmac_flags_ignore,
14149
16
            { "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 } },
14150
16
        { &hf_lbmc_hmac_padding,
14151
16
            { "Padding", "lbmc.hmac.padding", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14152
16
        { &hf_lbmc_hmac_data,
14153
16
            { "Data", "lbmc.hmac.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14154
16
        { &hf_lbmc_umq_sid,
14155
16
            { "UMQ Session ID", "lbmc.umq_sid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14156
16
        { &hf_lbmc_umq_sid_next_hdr,
14157
16
            { "Next Header", "lbmc.umq_sid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14158
16
        { &hf_lbmc_umq_sid_hdr_len,
14159
16
            { "Header Length", "lbmc.umq_sid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14160
16
        { &hf_lbmc_umq_sid_flags,
14161
16
            { "Flags", "lbmc.umq_sid.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14162
16
        { &hf_lbmc_umq_sid_flags_ignore,
14163
16
            { "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 } },
14164
16
        { &hf_lbmc_umq_sid_key,
14165
16
            { "Key", "lbmc.umq_sid.key", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
14166
16
        { &hf_lbmc_umq_sid_sid,
14167
16
            { "SID", "lbmc.umq_sid.sid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14168
16
        { &hf_lbmc_destination,
14169
16
            { "Destination", "lbmc.destination", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14170
16
        { &hf_lbmc_destination_next_hdr,
14171
16
            { "Next Header", "lbmc.destination.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14172
16
        { &hf_lbmc_destination_hdr_len,
14173
16
            { "Header Length", "lbmc.destination.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14174
16
        { &hf_lbmc_destination_flags,
14175
16
            { "Flags", "lbmc.destination.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14176
16
        { &hf_lbmc_destination_flags_ignore,
14177
16
            { "Ignore", "lbmc.destination.flags.ignore", FT_BOOLEAN, L_LBMC_DESTINATION_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
14178
16
        { &hf_lbmc_destination_domain_id,
14179
16
            { "Domain ID", "lbmc.destination.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14180
16
        { &hf_lbmc_destination_ipaddr,
14181
16
            { "IP Address", "lbmc.destination.ipaddr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14182
16
        { &hf_lbmc_destination_port,
14183
16
            { "Port", "lbmc.destination.port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14184
16
        { &hf_lbmc_destination_hops_taken,
14185
16
            { "Hops Taken", "lbmc.destination.hops_taken", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14186
16
        { &hf_lbmc_destination_orig_domain_id,
14187
16
            { "Originating Domain ID", "lbmc.destination.orig_domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14188
16
        { &hf_lbmc_destination_orig_ipaddr,
14189
16
            { "Originating IP Address", "lbmc.destination.orig_ipaddr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14190
16
        { &hf_lbmc_destination_orig_port,
14191
16
            { "Originating Port", "lbmc.destination.orig_port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14192
16
        { &hf_lbmc_destination_reserved,
14193
16
            { "Reserved", "lbmc.destination.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14194
16
        { &hf_lbmc_topic_idx,
14195
16
            { "Topic Index", "lbmc.topic_idx", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14196
16
        { &hf_lbmc_topic_idx_next_hdr,
14197
16
            { "Next Header", "lbmc.topic_idx.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14198
16
        { &hf_lbmc_topic_idx_hdr_len,
14199
16
            { "Header Length", "lbmc.topic_idx.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14200
16
        { &hf_lbmc_topic_idx_flags,
14201
16
            { "Flags", "lbmc.topic_idx.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14202
16
        { &hf_lbmc_topic_idx_flags_ignore,
14203
16
            { "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 } },
14204
16
        { &hf_lbmc_topic_idx_tidx,
14205
16
            { "Topic Index", "lbmc.topic_idx.tidx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14206
16
        { &hf_lbmc_topic_source,
14207
16
            { "Topic Source", "lbmc.topic_source", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14208
16
        { &hf_lbmc_topic_source_next_hdr,
14209
16
            { "Next Header", "lbmc.topic_source.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14210
16
        { &hf_lbmc_topic_source_hdr_len,
14211
16
            { "Header Length", "lbmc.topic_source.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14212
16
        { &hf_lbmc_topic_source_flags,
14213
16
            { "Flags", "lbmc.topic_source.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14214
16
        { &hf_lbmc_topic_source_flags_ignore,
14215
16
            { "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 } },
14216
16
        { &hf_lbmc_topic_source_flags_eos,
14217
16
            { "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 } },
14218
16
        { &hf_lbmc_topic_source_domain_id,
14219
16
            { "Domain ID", "lbmc.topic_source.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14220
16
        { &hf_lbmc_topic_source_exfunc,
14221
16
            { "Topic Source Extended Functionality", "lbmc.topic_source_exfunc", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14222
16
        { &hf_lbmc_topic_source_exfunc_next_hdr,
14223
16
            { "Next Header", "lbmc.topic_source_exfunc.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14224
16
        { &hf_lbmc_topic_source_exfunc_hdr_len,
14225
16
            { "Header Length", "lbmc.topic_source_exfunc.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14226
16
        { &hf_lbmc_topic_source_exfunc_flags,
14227
16
            { "Flags", "lbmc.topic_source_exfunc.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14228
16
        { &hf_lbmc_topic_source_exfunc_flags_ignore,
14229
16
            { "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 } },
14230
16
        { &hf_lbmc_topic_source_exfunc_src_ip,
14231
16
            { "Source Address", "lbmc.topic_source_exfunc.src_ip", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14232
16
        { &hf_lbmc_topic_source_exfunc_src_port,
14233
16
            { "Source Port", "lbmc.topic_source_exfunc.src_port", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14234
16
        { &hf_lbmc_topic_source_exfunc_unused,
14235
16
            { "Unused", "lbmc.topic_source_exfunc.unused", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14236
16
        { &hf_lbmc_topic_source_exfunc_functionality_flags,
14237
16
            { "Functionality Flags", "lbmc.topic_source_exfunc.functionality_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14238
16
        { &hf_lbmc_topic_source_exfunc_functionality_flags_ulb,
14239
16
            { "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 } },
14240
16
        { &hf_lbmc_topic_source_exfunc_functionality_flags_umq,
14241
16
            { "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 } },
14242
16
        { &hf_lbmc_topic_source_exfunc_functionality_flags_ume,
14243
16
            { "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 } },
14244
16
        { &hf_lbmc_topic_source_exfunc_functionality_flags_lj,
14245
16
            { "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 } },
14246
16
        { &hf_lbmc_ume_store_ext,
14247
16
            { "UME Store Extended", "lbmc.ume_store_ext", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14248
16
        { &hf_lbmc_ume_store_ext_next_hdr,
14249
16
            { "Next Header", "lbmc.ume_store_ext.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14250
16
        { &hf_lbmc_ume_store_ext_hdr_len,
14251
16
            { "Header Length", "lbmc.ume_store_ext.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14252
16
        { &hf_lbmc_ume_store_ext_flags,
14253
16
            { "Flags", "lbmc.ume_store_ext.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14254
16
        { &hf_lbmc_ume_store_ext_flags_ignore,
14255
16
            { "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 } },
14256
16
        { &hf_lbmc_ume_store_ext_grp_idx,
14257
16
            { "Group Index", "lbmc.ume_store_ext.grp_idx", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
14258
16
        { &hf_lbmc_ume_store_ext_store_tcp_port,
14259
16
            { "Store TCP Port", "lbmc.ume_store_ext.store_tcp_port", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
14260
16
        { &hf_lbmc_ume_store_ext_store_idx,
14261
16
            { "Store Index", "lbmc.ume_store_ext.store_idx", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14262
16
        { &hf_lbmc_ume_store_ext_store_ip_addr,
14263
16
            { "Store IP Address", "lbmc.ume_store_ext.store_ip_addr", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14264
16
        { &hf_lbmc_ume_store_ext_src_reg_id,
14265
16
            { "Source RegID", "lbmc.ume_store_ext.src_reg_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14266
16
        { &hf_lbmc_ume_store_ext_domain_id,
14267
16
            { "Domain ID", "lbmc.ume_store_ext.domain_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14268
16
        { &hf_lbmc_ume_store_ext_version,
14269
16
            { "Version", "lbmc.ume_store_ext.version", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14270
16
        { &hf_lbmc_ume_psrc_election_token,
14271
16
            { "UME Proxy Source Election Token", "lbmc.ume_psrc_election_token", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14272
16
        { &hf_lbmc_ume_psrc_election_token_next_hdr,
14273
16
            { "Next Header", "lbmc.ume_psrc_election_token.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14274
16
        { &hf_lbmc_ume_psrc_election_token_hdr_len,
14275
16
            { "Header Length", "lbmc.ume_psrc_election_token.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14276
16
        { &hf_lbmc_ume_psrc_election_token_flags,
14277
16
            { "Flags", "lbmc.ume_psrc_election_token.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14278
16
        { &hf_lbmc_ume_psrc_election_token_flags_ignore,
14279
16
            { "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 } },
14280
16
        { &hf_lbmc_ume_psrc_election_token_store_index,
14281
16
            { "Store Index", "lbmc.ume_psrc_election_token.store_index", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14282
16
        { &hf_lbmc_ume_psrc_election_token_token,
14283
16
            { "Token", "lbmc.ume_psrc_election_token.token", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14284
16
        { &hf_lbmc_tcp_sid,
14285
16
            { "TCP Session ID", "lbmc.tcp_sid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14286
16
        { &hf_lbmc_tcp_sid_next_hdr,
14287
16
            { "Next Header", "lbmc.tcp_sid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14288
16
        { &hf_lbmc_tcp_sid_hdr_len,
14289
16
            { "Header Length", "lbmc.tcp_sid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14290
16
        { &hf_lbmc_tcp_sid_flags,
14291
16
            { "Flags", "lbmc.tcp_sid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14292
16
        { &hf_lbmc_tcp_sid_flags_ignore,
14293
16
            { "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 } },
14294
16
        { &hf_lbmc_tcp_sid_sid,
14295
16
            { "Session ID", "lbmc.tcp_sid.sid", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14296
16
        { &hf_lbmc_transport_security,
14297
16
            { "Transport Security", "lbmc.transport_security", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14298
16
        { &hf_lbmc_transport_security_next_hdr,
14299
16
            { "Next Header", "lbmc.transport_security.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14300
16
        { &hf_lbmc_transport_security_hdr_len,
14301
16
            { "Header Length", "lbmc.transport_security.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14302
16
        { &hf_lbmc_transport_security_flags,
14303
16
            { "Flags", "lbmc.transport_security.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14304
16
        { &hf_lbmc_transport_security_flags_ignore,
14305
16
            { "Ignore", "lbmc.transport_security.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } },
14306
16
        { &hf_lbmc_transport_security_state,
14307
16
            { "State", "lbmc.transport_security.state", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_transport_security_state), 0x0, NULL, HFILL } },
14308
16
        { &hf_lbmc_transport_security_protocol_proposed,
14309
16
            { "Protocol Proposed", "lbmc.transport_security.protocol_proposed", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_transport_security_protocol), 0x0, NULL, HFILL } },
14310
16
        { &hf_lbmc_transport_security_reserved1,
14311
16
            { "Reserved", "lbmc.transport_security.reserved1", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14312
16
        { &hf_lbmc_transport_security_protocols_accepted,
14313
16
            { "Protocols Accepted", "lbmc.transport_security.protocols_accepted", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14314
16
        { &hf_lbmc_transport_security_protocols_accepted_none,
14315
16
            { "None (plaintext)", "lbmc.transport_security.protocols_accepted.none", FT_BOOLEAN, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOLS_ACCEPTED * 8, NULL, LBMC_TRANSPORT_SECURITY_PROTOCOLS_ACCEPTED_NONE, NULL, HFILL } },
14316
16
        { &hf_lbmc_transport_security_protocols_accepted_tls,
14317
16
            { "TLS", "lbmc.transport_security.protocols_accepted.tls", FT_BOOLEAN, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOLS_ACCEPTED * 8, NULL, LBMC_TRANSPORT_SECURITY_PROTOCOLS_ACCEPTED_TLS, NULL, HFILL } },
14318
16
        { &hf_lbmc_transport_security_protocols_accepted_lz4,
14319
16
            { "LZ4 compression", "lbmc.transport_security.protocols_accepted.lz4", FT_BOOLEAN, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOLS_ACCEPTED * 8, NULL, LBMC_TRANSPORT_SECURITY_PROTOCOLS_ACCEPTED_LZ4, NULL, HFILL } },
14320
16
        { &hf_lbmc_transport_security_protocols_accepted_lz4_tls,
14321
16
            { "LZ4 compression + TLS", "lbmc.transport_security.protocols_accepted.lz4_tls", FT_BOOLEAN, L_LBMC_CNTL_TRANSPORT_SECURITY_HDR_T_PROTOCOLS_ACCEPTED * 8, NULL, LBMC_TRANSPORT_SECURITY_PROTOCOLS_ACCEPTED_LZ4_TLS, NULL, HFILL } },
14322
16
        { &hf_lbmc_transport_security_reserved2,
14323
16
            { "Reserved", "lbmc.transport_security.reserved2", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14324
16
        { &hf_lbmc_transport_security_session_id,
14325
16
            { "Session ID", "lbmc.transport_security.session_id", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14326
16
        { &hf_lbmc_extopt,
14327
16
            { "Extended Option", "lbmc.extopt", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14328
16
        { &hf_lbmc_extopt_next_hdr,
14329
16
            { "Next Header", "lbmc.extopt.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14330
16
        { &hf_lbmc_extopt_hdr_len,
14331
16
            { "Header Length", "lbmc.extopt.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14332
16
        { &hf_lbmc_extopt_flags,
14333
16
            { "Flags", "lbmc.extopt.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14334
16
        { &hf_lbmc_extopt_flags_ignore,
14335
16
            { "Ignore", "lbmc.extopt.flags.ignore", FT_BOOLEAN, L_LBMC_EXTOPT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_EXTOPT_FLAG_IGNORE, NULL, HFILL } },
14336
16
        { &hf_lbmc_extopt_flags_ignore_subtype,
14337
16
            { "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 } },
14338
16
        { &hf_lbmc_extopt_flags_more_fragments,
14339
16
            { "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 } },
14340
16
        { &hf_lbmc_extopt_id,
14341
16
            { "ID", "lbmc.extopt.id", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14342
16
        { &hf_lbmc_extopt_subtype,
14343
16
            { "Subtype", "lbmc.extopt.subtype", FT_UINT16, BASE_DEC_HEX, VALS(lbmc_extopt_subtype), 0x0, NULL, HFILL } },
14344
16
        { &hf_lbmc_extopt_fragment_offset,
14345
16
            { "Fragment offset", "lbmc.extopt.fragment_offset", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14346
16
        { &hf_lbmc_extopt_data,
14347
16
            { "Data", "lbmc.extopt.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14348
16
        { &hf_lbmc_extopt_cfgopt,
14349
16
            { "Configuration Option", "lbmc.extopt.cfgopt", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14350
16
        { &hf_lbmc_extopt_cfgopt_scope,
14351
16
            { "Scope", "lbmc.extopt.cfgopt.scope", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_extopt_config_option_scope), 0x0, NULL, HFILL } },
14352
16
        { &hf_lbmc_extopt_cfgopt_parent,
14353
16
            { "Parent", "lbmc.extopt.cfgopt.parent", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14354
16
        { &hf_lbmc_extopt_cfgopt_name,
14355
16
            { "Name", "lbmc.extopt.cfgopt.name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14356
16
        { &hf_lbmc_extopt_cfgopt_value,
14357
16
            { "Value", "lbmc.extopt.cfgopt.value", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14358
16
        { &hf_lbmc_extopt_msgsel,
14359
16
            { "Message Selector", "lbmc.extopt.msgsel", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14360
16
        { &hf_lbmc_extopt_reassembled_data,
14361
16
            { "EXTOPT Reassembled Data", "lbmc.extopt.reassembled_data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14362
16
        { &hf_lbmc_extopt_reassembled_data_subtype,
14363
16
            { "Subtype", "lbmc.extopt.reassembled_data.subtype", FT_UINT16, BASE_DEC_HEX, VALS(lbmc_extopt_subtype), 0x0, NULL, HFILL } },
14364
16
        { &hf_lbmc_extopt_reassembled_data_len,
14365
16
            { "Length", "lbmc.extopt.reassembled_data.length", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14366
16
        { &hf_lbmc_extopt_reassembled_data_data,
14367
16
            { "Data", "lbmc.extopt.reassembled_data.data", FT_BYTES, FT_NONE, NULL, 0x0, NULL, HFILL } },
14368
16
        { &hf_lbmc_extopt_reassembled_data_msgsel,
14369
16
            { "Message Selector", "lbmc.extopt.reassembled_data.msgsel", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14370
16
        { &hf_lbm_msg_properties,
14371
16
            { "Message Properties", "lbmc.lbm_msg_properties", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14372
16
        { &hf_lbm_msg_properties_data,
14373
16
            { "Message Properties Data", "lbmc.lbm_msg_properties.data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14374
16
        { &hf_lbm_msg_properties_data_magic,
14375
16
            { "Magic", "lbmc.lbm_msg_properties.data.magic", FT_UINT32, BASE_HEX, VALS(lbm_msg_prop_magic_type), 0x0, NULL, HFILL } },
14376
16
        { &hf_lbm_msg_properties_data_num_fields,
14377
16
            { "Number of Fields", "lbmc.lbm_msg_properties.data.num_fields", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14378
16
        { &hf_lbm_msg_properties_data_version,
14379
16
            { "Version", "lbmc.lbm_msg_properties.data.version", FT_UINT8, BASE_DEC, NULL, LBM_MSG_PROPERTIES_HDR_VER_MASK, NULL, HFILL } },
14380
16
        { &hf_lbm_msg_properties_data_type,
14381
16
            { "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 } },
14382
16
        { &hf_lbm_msg_properties_data_res,
14383
16
            { "Reserved", "lbmc.lbm_msg_properties.data.res", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } },
14384
16
        { &hf_lbm_msg_properties_hdr,
14385
16
            { "Message Properties", "lbmc.lbm_msg_properties.hdr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14386
16
        { &hf_lbm_msg_properties_hdr_key_offset,
14387
16
            { "Key offset", "lbmc.lbm_msg_properties.hdr.key_offset", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14388
16
        { &hf_lbm_msg_properties_hdr_value_offset,
14389
16
            { "Value offset", "lbmc.lbm_msg_properties.hdr.value_offset", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14390
16
        { &hf_lbm_msg_properties_hdr_hash,
14391
16
            { "Hash", "lbmc.lbm_msg_properties.hdr.hash", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14392
16
        { &hf_lbm_msg_properties_hdr_type,
14393
16
            { "Type", "lbmc.lbm_msg_properties.hdr.type", FT_UINT32, BASE_DEC_HEX, VALS(lbm_msg_prop_field_type), 0x0, NULL, HFILL } },
14394
16
        { &hf_lbm_msg_properties_hdr_key,
14395
16
            { "Key", "lbmc.lbm_msg_properties.hdr.key", FT_STRINGZ, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14396
16
        { &hf_lbm_msg_properties_hdr_boolean_value,
14397
16
            { "Boolean Value", "lbmc.lbm_msg_properties.hdr.boolean_value", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14398
16
        { &hf_lbm_msg_properties_hdr_byte_value,
14399
16
            { "Byte Value", "lbmc.lbm_msg_properties.hdr.byte_value", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14400
16
        { &hf_lbm_msg_properties_hdr_short_value,
14401
16
            { "Short Value", "lbmc.lbm_msg_properties.hdr.short_value", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14402
16
        { &hf_lbm_msg_properties_hdr_int_value,
14403
16
            { "Int Value", "lbmc.lbm_msg_properties.hdr.int_value", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14404
16
        { &hf_lbm_msg_properties_hdr_float_value,
14405
16
            { "Float Value", "lbmc.lbm_msg_properties.hdr.float_value", FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14406
16
        { &hf_lbm_msg_properties_hdr_long_value,
14407
16
            { "Long Value", "lbmc.lbm_msg_properties.hdr.long_value", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14408
16
        { &hf_lbm_msg_properties_hdr_double_value,
14409
16
            { "Double Value", "lbmc.lbm_msg_properties.hdr.double_value", FT_DOUBLE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14410
16
        { &hf_lbm_msg_properties_hdr_string_value,
14411
16
            { "String Value", "lbmc.lbm_msg_properties.hdr.string_value", FT_STRINGZ, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14412
16
        { &hf_lbm_msg_properties_hdr_unknown_value,
14413
16
            { "Unknown Value", "lbmc.lbm_msg_properties.hdr.unknown_value", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14414
16
        { &hf_lbmc_unhandled,
14415
16
            { "Unhandled", "lbmc.unhandled", FT_NONE, BASE_NONE, NULL, 0x0, "Unrecognized/unhandled header", HFILL } },
14416
16
        { &hf_lbmc_unhandled_next_hdr,
14417
16
            { "Next Header", "lbmc.unhandled.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } },
14418
16
        { &hf_lbmc_unhandled_hdr_len,
14419
16
            { "Header Length", "lbmc.unhandled.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14420
16
        { &hf_lbmc_unhandled_data,
14421
16
            { "Data", "lbmc.unhandled.data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14422
16
        { &hf_lbm_stream,
14423
16
            { "LBM Stream", "lbmc.lbm_stream", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14424
16
        { &hf_lbm_stream_stream_id,
14425
16
            { "Stream ID", "lbmc.lbm_stream.stream_id", FT_UINT64, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } },
14426
16
        { &hf_lbm_stream_substream_id,
14427
16
            { "Substream ID", "lbmc.lbm_stream.substream_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } },
14428
16
        { &hf_lbmc_reassembly,
14429
16
            { "Reassembled Fragments", "lbmc.reassembly", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14430
16
        { &hf_lbmc_reassembly_fragment,
14431
16
            { "Fragment", "lbmc.reassembly.fragment", FT_FRAMENUM, BASE_NONE, NULL, 0x0, NULL, HFILL } },
14432
16
        { &hf_reassembly_frame,
14433
16
            { "Reassembled message in frame", "lbmc.reassembly_frame", FT_FRAMENUM, BASE_NONE, NULL, 0x0, "Frame in which reassembled message appears", HFILL } },
14434
16
    };
14435
14436
16
    static int * ett[] =
14437
16
    {
14438
16
        &ett_lbmc,
14439
16
        &ett_lbmc_frag,
14440
16
        &ett_lbmc_frag_flags,
14441
16
        &ett_lbmc_batch,
14442
16
        &ett_lbmc_batch_flags,
14443
16
        &ett_lbmc_tcp_request,
14444
16
        &ett_lbmc_tcp_request_flags,
14445
16
        &ett_lbmc_topicname,
14446
16
        &ett_lbmc_topicname_flags,
14447
16
        &ett_lbmc_apphdr,
14448
16
        &ett_lbmc_apphdr_chain,
14449
16
        &ett_lbmc_apphdr_chain_element,
14450
16
        &ett_lbmc_apphdr_chain_msgprop,
14451
16
        &ett_lbmc_umq_msgid,
14452
16
        &ett_lbmc_umq_msgid_flags,
14453
16
        &ett_lbmc_umq_sqd_rcv,
14454
16
        &ett_lbmc_umq_sqd_rcv_flags,
14455
16
        &ett_lbmc_umq_resub,
14456
16
        &ett_lbmc_umq_resub_flags,
14457
16
        &ett_lbmc_otid,
14458
16
        &ett_lbmc_otid_flags,
14459
16
        &ett_lbmc_ctxinst,
14460
16
        &ett_lbmc_ctxinst_flags,
14461
16
        &ett_lbmc_ctxinstd,
14462
16
        &ett_lbmc_ctxinstr,
14463
16
        &ett_lbmc_srcidx,
14464
16
        &ett_lbmc_srcidx_flags,
14465
16
        &ett_lbmc_umq_ulb_msg,
14466
16
        &ett_lbmc_umq_ulb_msg_flags,
14467
16
        &ett_lbmc_ssf_init,
14468
16
        &ett_lbmc_ssf_init_flags,
14469
16
        &ett_lbmc_ssf_creq,
14470
16
        &ett_lbmc_ssf_creq_flags,
14471
16
        &ett_lbmc_ume_preg,
14472
16
        &ett_lbmc_ume_preg_flags,
14473
16
        &ett_lbmc_ume_preg_resp,
14474
16
        &ett_lbmc_ume_preg_resp_code,
14475
16
        &ett_lbmc_ume_preg_resp_marker,
14476
16
        &ett_lbmc_ume_ack,
14477
16
        &ett_lbmc_ume_ack_flags,
14478
16
        &ett_lbmc_ume_rxreq,
14479
16
        &ett_lbmc_ume_rxreq_flags,
14480
16
        &ett_lbmc_ume_ranged_rxreq,
14481
16
        &ett_lbmc_ume_ranged_rxreq_flags,
14482
16
        &ett_lbmc_ume_keepalive,
14483
16
        &ett_lbmc_ume_keepalive_flags,
14484
16
        &ett_lbmc_ume_storeid,
14485
16
        &ett_lbmc_ume_ranged_ack,
14486
16
        &ett_lbmc_ume_ranged_ack_flags,
14487
16
        &ett_lbmc_ume_ack_id,
14488
16
        &ett_lbmc_ume_ack_id_flags,
14489
16
        &ett_lbmc_ume_capability,
14490
16
        &ett_lbmc_ume_capability_flags,
14491
16
        &ett_lbmc_ume_proxy_src,
14492
16
        &ett_lbmc_ume_proxy_src_flags,
14493
16
        &ett_lbmc_ume_store_group,
14494
16
        &ett_lbmc_ume_store_group_flags,
14495
16
        &ett_lbmc_ume_store,
14496
16
        &ett_lbmc_ume_store_flags,
14497
16
        &ett_lbmc_ume_lj_info,
14498
16
        &ett_lbmc_ume_lj_info_flags,
14499
16
        &ett_lbmc_tsni,
14500
16
        &ett_lbmc_tsni_rec,
14501
16
        &ett_lbmc_umq_reg,
14502
16
        &ett_lbmc_umq_reg_flags,
14503
16
        &ett_lbmc_umq_reg_reg_ctx,
14504
16
        &ett_lbmc_umq_reg_reg_src,
14505
16
        &ett_lbmc_umq_reg_reg_rcv,
14506
16
        &ett_lbmc_umq_reg_rcv_dereg,
14507
16
        &ett_lbmc_umq_reg_reg_ulb_rcv,
14508
16
        &ett_lbmc_umq_reg_ulb_rcv_dereg,
14509
16
        &ett_lbmc_umq_reg_reg_observer_rcv,
14510
16
        &ett_lbmc_umq_reg_observer_rcv_dereg,
14511
16
        &ett_lbmc_umq_reg_resp,
14512
16
        &ett_lbmc_umq_reg_resp_flags,
14513
16
        &ett_lbmc_umq_reg_resp_reg_ctx,
14514
16
        &ett_lbmc_umq_reg_resp_reg_ctx_ex,
14515
16
        &ett_lbmc_umq_reg_resp_reg_ctx_ex_flags,
14516
16
        &ett_lbmc_umq_reg_resp_err,
14517
16
        &ett_lbmc_umq_reg_resp_reg_src,
14518
16
        &ett_lbmc_umq_reg_resp_reg_rcv,
14519
16
        &ett_lbmc_umq_reg_resp_rcv_dereg,
14520
16
        &ett_lbmc_umq_reg_resp_reg_ulb_rcv,
14521
16
        &ett_lbmc_umq_reg_resp_ulb_rcv_dereg,
14522
16
        &ett_lbmc_umq_reg_resp_reg_observer_rcv,
14523
16
        &ett_lbmc_umq_reg_resp_observer_rcv_dereg,
14524
16
        &ett_lbmc_umq_ack,
14525
16
        &ett_lbmc_umq_ack_msgs,
14526
16
        &ett_lbmc_umq_ack_msgid,
14527
16
        &ett_lbmc_umq_ack_stable,
14528
16
        &ett_lbmc_umq_ack_cr,
14529
16
        &ett_lbmc_umq_ack_ulb_cr,
14530
16
        &ett_lbmc_umq_rcr,
14531
16
        &ett_lbmc_umq_rcr_flags,
14532
16
        &ett_lbmc_umq_ka,
14533
16
        &ett_lbmc_umq_ka_flags,
14534
16
        &ett_lbmc_umq_ka_src,
14535
16
        &ett_lbmc_umq_ka_rcv,
14536
16
        &ett_lbmc_umq_ka_ulb_rcv,
14537
16
        &ett_lbmc_umq_ka_ulb_rcv_resp,
14538
16
        &ett_lbmc_umq_rxreq,
14539
16
        &ett_lbmc_umq_rxreq_flags,
14540
16
        &ett_lbmc_umq_rxreq_regid_resp,
14541
16
        &ett_lbmc_umq_rxreq_addr_resp,
14542
16
        &ett_lbmc_umq_rxreq_mr,
14543
16
        &ett_lbmc_umq_rxreq_ulb_mr,
14544
16
        &ett_lbmc_umq_rxreq_ulb_mr_abort,
14545
16
        &ett_lbmc_umq_rxreq_qrcrr,
14546
16
        &ett_lbmc_umq_rxreq_trcrr,
14547
16
        &ett_lbmc_umq_rxreq_ulb_trcrr,
14548
16
        &ett_lbmc_umq_rxreq_ulb_trcrr_abort,
14549
16
        &ett_lbmc_umq_qmgmt,
14550
16
        &ett_lbmc_umq_resub_req,
14551
16
        &ett_lbmc_umq_resub_req_flags,
14552
16
        &ett_lbmc_umq_resub_resp,
14553
16
        &ett_lbmc_umq_resub_resp_flags,
14554
16
        &ett_lbmc_topic_interest,
14555
16
        &ett_lbmc_topic_interest_flags,
14556
16
        &ett_lbmc_pattern_interest,
14557
16
        &ett_lbmc_pattern_interest_flags,
14558
16
        &ett_lbmc_advertisement,
14559
16
        &ett_lbmc_advertisement_flags,
14560
16
        &ett_lbmc_advertisement_ad_flags,
14561
16
        &ett_lbmc_ume_storename,
14562
16
        &ett_lbmc_ume_storename_flags,
14563
16
        &ett_lbmc_umq_ulb_rcr,
14564
16
        &ett_lbmc_umq_ulb_rcr_flags,
14565
16
        &ett_lbmc_umq_lf,
14566
16
        &ett_lbmc_umq_lf_flags,
14567
16
        &ett_lbmc_ctxinfo,
14568
16
        &ett_lbmc_ctxinfo_flags,
14569
16
        &ett_lbmc_ume_pser,
14570
16
        &ett_lbmc_ume_pser_flags,
14571
16
        &ett_lbmc_domain,
14572
16
        &ett_lbmc_domain_flags,
14573
16
        &ett_lbmc_tnwg_capabilities,
14574
16
        &ett_lbmc_tnwg_capabilities_flags,
14575
16
        &ett_lbmc_tnwg_capabilities_capabilities1,
14576
16
        &ett_lbmc_tnwg_capabilities_capabilities3,
14577
16
        &ett_lbmc_patidx,
14578
16
        &ett_lbmc_patidx_flags,
14579
16
        &ett_lbmc_ume_client_lifetime,
14580
16
        &ett_lbmc_ume_client_lifetime_flags,
14581
16
        &ett_lbmc_ume_sid,
14582
16
        &ett_lbmc_ume_sid_flags,
14583
16
        &ett_lbmc_umq_idx_cmd,
14584
16
        &ett_lbmc_umq_idx_cmd_flags,
14585
16
        &ett_lbmc_umq_idx_cmd_stop_assign,
14586
16
        &ett_lbmc_umq_idx_cmd_start_assign,
14587
16
        &ett_lbmc_umq_idx_cmd_release_assign,
14588
16
        &ett_lbmc_umq_idx_cmd_release_assign_flags,
14589
16
        &ett_lbmc_umq_idx_cmd_ulb_stop_assign,
14590
16
        &ett_lbmc_umq_idx_cmd_ulb_start_assign,
14591
16
        &ett_lbmc_umq_idx_cmd_ulb_release_assign,
14592
16
        &ett_lbmc_umq_idx_cmd_ulb_release_assign_flags,
14593
16
        &ett_lbmc_umq_idx_cmd_reserve_assign,
14594
16
        &ett_lbmc_umq_idx_cmd_reserve_assign_flags,
14595
16
        &ett_lbmc_umq_idx_cmd_ulb_reserve_assign,
14596
16
        &ett_lbmc_umq_idx_cmd_ulb_reserve_assign_flags,
14597
16
        &ett_lbmc_umq_idx_cmd_resp,
14598
16
        &ett_lbmc_umq_idx_cmd_resp_flags,
14599
16
        &ett_lbmc_umq_idx_cmd_resp_err,
14600
16
        &ett_lbmc_umq_idx_cmd_resp_stop_assign,
14601
16
        &ett_lbmc_umq_idx_cmd_resp_start_assign,
14602
16
        &ett_lbmc_umq_idx_cmd_resp_release_assign,
14603
16
        &ett_lbmc_umq_idx_cmd_resp_ulb_stop_assign,
14604
16
        &ett_lbmc_umq_idx_cmd_resp_ulb_start_assign,
14605
16
        &ett_lbmc_umq_idx_cmd_resp_ulb_release_assign,
14606
16
        &ett_lbmc_umq_idx_cmd_resp_reserve_assign,
14607
16
        &ett_lbmc_umq_idx_cmd_resp_reserve_assign_flags,
14608
16
        &ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign,
14609
16
        &ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags,
14610
16
        &ett_lbmc_odomain,
14611
16
        &ett_lbmc_odomain_flags,
14612
16
        &ett_lbmc_stream,
14613
16
        &ett_lbmc_stream_flags,
14614
16
        &ett_lbmc_topic_md_interest,
14615
16
        &ett_lbmc_topic_md_interest_flags,
14616
16
        &ett_lbmc_pattern_md_interest,
14617
16
        &ett_lbmc_pattern_md_interest_flags,
14618
16
        &ett_lbmc_lji_req,
14619
16
        &ett_lbmc_lji_req_flags,
14620
16
        &ett_lbmc_tnwg_ka,
14621
16
        &ett_lbmc_tnwg_ka_flags,
14622
16
        &ett_lbmc_ume_receiver_keepalive,
14623
16
        &ett_lbmc_ume_receiver_keepalive_flags,
14624
16
        &ett_lbmc_umq_cmd,
14625
16
        &ett_lbmc_umq_cmd_flags,
14626
16
        &ett_lbmc_umq_cmd_topic_list,
14627
16
        &ett_lbmc_umq_cmd_msg_retrieve,
14628
16
        &ett_lbmc_umq_cmd_msg_retrieve_entry,
14629
16
        &ett_lbmc_umq_cmd_msg_list,
14630
16
        &ett_lbmc_umq_cmd_resp,
14631
16
        &ett_lbmc_umq_cmd_resp_flags,
14632
16
        &ett_lbmc_umq_cmd_resp_msg_retrieve,
14633
16
        &ett_lbmc_umq_cmd_resp_xmsg_retrieve,
14634
16
        &ett_lbmc_umq_cmd_resp_xmsg_retrieve_entry,
14635
16
        &ett_lbmc_umq_cmd_resp_msg_list,
14636
16
        &ett_lbmc_umq_cmd_resp_xmsg_list,
14637
16
        &ett_lbmc_umq_cmd_resp_xmsg_list_entry,
14638
16
        &ett_lbmc_umq_cmd_resp_topic_list,
14639
16
        &ett_lbmc_umq_cmd_resp_topic_list_topic_entry,
14640
16
        &ett_lbmc_umq_cmd_resp_topic_list_topic_entry_appset_entry,
14641
16
        &ett_lbmc_umq_cmd_resp_err,
14642
16
        &ett_lbmc_sri_req,
14643
16
        &ett_lbmc_sri_req_flags,
14644
16
        &ett_lbmc_ume_store_domain,
14645
16
        &ett_lbmc_ume_store_domain_flags,
14646
16
        &ett_lbmc_sri,
14647
16
        &ett_lbmc_sri_flags,
14648
16
        &ett_lbmc_route_info,
14649
16
        &ett_lbmc_route_info_flags,
14650
16
        &ett_lbmc_route_info_neighbor,
14651
16
        &ett_lbmc_route_info_neighbor_flags,
14652
16
        &ett_lbmc_route_info_nbr_ext,
14653
16
        &ett_lbmc_route_info_nbr_ext_flags,
14654
16
        &ett_lbmc_gateway_name,
14655
16
        &ett_lbmc_gateway_name_flags,
14656
16
        &ett_lbmc_auth_request,
14657
16
        &ett_lbmc_auth_request_flags,
14658
16
        &ett_lbmc_auth_challenge,
14659
16
        &ett_lbmc_auth_challenge_flags,
14660
16
        &ett_lbmc_auth_challenge_rsp,
14661
16
        &ett_lbmc_auth_challenge_rsp_flags,
14662
16
        &ett_lbmc_auth_result,
14663
16
        &ett_lbmc_auth_result_flags,
14664
16
        &ett_lbmc_auth_unknown,
14665
16
        &ett_lbmc_hmac,
14666
16
        &ett_lbmc_hmac_flags,
14667
16
        &ett_lbmc_umq_sid,
14668
16
        &ett_lbmc_umq_sid_flags,
14669
16
        &ett_lbmc_destination,
14670
16
        &ett_lbmc_destination_flags,
14671
16
        &ett_lbmc_topic_idx,
14672
16
        &ett_lbmc_topic_idx_flags,
14673
16
        &ett_lbmc_topic_source,
14674
16
        &ett_lbmc_topic_source_flags,
14675
16
        &ett_lbmc_topic_source_exfunc,
14676
16
        &ett_lbmc_topic_source_exfunc_flags,
14677
16
        &ett_lbmc_topic_source_exfunc_functionality_flags,
14678
16
        &ett_lbmc_ume_store_ext,
14679
16
        &ett_lbmc_ume_store_ext_flags,
14680
16
        &ett_lbmc_ume_psrc_election_token,
14681
16
        &ett_lbmc_ume_psrc_election_token_flags,
14682
16
        &ett_lbmc_tcp_sid,
14683
16
        &ett_lbmc_tcp_sid_flags,
14684
16
        &ett_lbmc_transport_security,
14685
16
        &ett_lbmc_transport_security_flags,
14686
16
        &ett_lbmc_transport_security_protocols_accepted,
14687
16
        &ett_lbmc_extopt,
14688
16
        &ett_lbmc_extopt_flags,
14689
16
        &ett_lbmc_extopt_cfgopt,
14690
16
        &ett_lbmc_extopt_reassembled_data,
14691
16
        &ett_lbmc_extopt_reassembled_data_cfgopt,
14692
16
        &ett_lbm_msg_properties,
14693
16
        &ett_lbm_msg_properties_data,
14694
16
        &ett_lbm_msg_properties_hdr,
14695
16
        &ett_lbmc_unhandled_hdr,
14696
16
        &ett_lbm_stream,
14697
16
        &ett_lbmc_reassembly,
14698
16
        &ett_unknown,
14699
16
        &ett_msg_data,
14700
16
        &ett_msgprop_data
14701
16
    };
14702
16
    static ei_register_info ei[] =
14703
16
    {
14704
16
        { &ei_lbmc_analysis_length_incorrect, { "lbmc.analysis.length_incorrect", PI_PROTOCOL, PI_ERROR, "Header length incorrect", EXPFILL } },
14705
16
        { &ei_lbmc_analysis_zero_length, { "lbmc.analysis.zero_length", PI_MALFORMED, PI_ERROR, "Length dissected is zero", EXPFILL } },
14706
16
        { &ei_lbmc_analysis_tsni, { "lbmc.analysis.tsni", PI_SEQUENCE, PI_NOTE, "TSNI Sqn", EXPFILL } },
14707
16
        { &ei_lbmc_analysis_invalid_value, { "lbmc.analysis.invalid_value", PI_MALFORMED, PI_ERROR, "Invalid value", EXPFILL } },
14708
16
        { &ei_lbmc_analysis_no_reassembly, { "lbmc.analysis.no_reassembly", PI_PROTOCOL, PI_ERROR, "Reassembly not in progress but fragment_offset not zero", EXPFILL } },
14709
#if 0
14710
        { &ei_lbmc_analysis_invalid_offset, { "lbmc.analysis.invalid_offset", PI_MALFORMED, PI_ERROR, "Message property offset exceeds data length", EXPFILL } },
14711
#endif
14712
16
        { &ei_lbmc_analysis_missing_reassembly_frame, { "lbmc.analysis.missing_reassembly_frame", PI_UNDECODED, PI_WARN, "Message not reassembled - reassembly data missing from capture", EXPFILL } },
14713
16
        { &ei_lbmc_analysis_invalid_fragment, { "lbmc.analysis.invalid_fragment", PI_MALFORMED, PI_ERROR, "Invalid fragment", EXPFILL } },
14714
16
        { &ei_lbmc_extopt_fragment_offset, { "lbmc.extopt.fragment_offset.invalid", PI_PROTOCOL, PI_ERROR, "Invalid fragment offset", EXPFILL } },
14715
16
        { &ei_lbmc_transport_security_blackhole, { "lbmc.transport_security.blackhole", PI_SECURITY, PI_WARN, "Transport security negotiation failed - connection black-holed (no further data will be exchanged, by design, to avoid an insecure fallback)", EXPFILL } },
14716
16
    };
14717
14718
16
    module_t * lbmc_module = NULL;
14719
16
    expert_module_t * expert_lbmc;
14720
14721
16
    tnw_protocol_handle = proto_register_protocol("29West Protocol", "29West", "29west");
14722
16
    proto_lbmc = proto_register_protocol("LBMC Protocol", "LBMC", "lbmc");
14723
14724
16
    proto_register_field_array(proto_lbmc, hf, array_length(hf));
14725
16
    proto_register_subtree_array(ett, array_length(ett));
14726
16
    expert_lbmc = expert_register_protocol(proto_lbmc);
14727
16
    expert_register_field_array(expert_lbmc, ei, array_length(ei));
14728
14729
16
    lbmc_heuristic_subdissector_list = register_heur_dissector_list_with_description("lbm_msg_payload", "LBMC UMQ command response data", proto_lbmc);
14730
14731
16
    prefs_register_protocol(tnw_protocol_handle, NULL);
14732
16
    lbmc_module = prefs_register_protocol_subtree("29West", proto_lbmc, proto_reg_handoff_lbmc);
14733
16
    prefs_register_bool_preference(lbmc_module,
14734
16
        "use_heuristic_subdissectors",
14735
16
        "Use heuristic sub-dissectors",
14736
16
        "Use a registered heuristic sub-dissector to decode the data payload",
14737
16
        &lbmc_use_heuristic_subdissectors);
14738
16
    prefs_register_bool_preference(lbmc_module,
14739
16
        "reassemble_fragments",
14740
16
        "Reassemble fragmented data",
14741
16
        "Reassemble data message fragments",
14742
16
        &lbmc_reassemble_fragments);
14743
16
    prefs_register_bool_preference(lbmc_module,
14744
16
        "dissect_lbmpdm",
14745
16
        "Dissect LBMPDM payload",
14746
16
        "Recognize and dissect payloads containing LBMPDM messages (requires reassembly to be enabled)",
14747
16
        &lbmc_dissect_lbmpdm);
14748
16
    lbm_stream_init();
14749
16
    lbmc_message_table = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
14750
14751
16
    register_seq_analysis("lbm_uim", "UIM Flows", proto_lbmc, "lbm_uim", TL_REQUIRES_COLUMNS, lbm_uim_seq_analysis_packet);
14752
14753
16
    lbmc_uim_tap_handle = register_tap("lbm_uim");
14754
16
    lbmc_stream_tap_handle = register_tap("lbm_stream");
14755
16
}
14756
14757
/* The registration hand-off routine */
14758
void proto_reg_handoff_lbmc(void)
14759
16
{
14760
16
}
14761
14762
/*
14763
 * Editor modelines  -  https://www.wireshark.org/tools/modelines.html
14764
 *
14765
 * Local variables:
14766
 * c-basic-offset: 4
14767
 * tab-width: 8
14768
 * indent-tabs-mode: nil
14769
 * End:
14770
 *
14771
 * vi: set shiftwidth=4 tabstop=8 expandtab:
14772
 * :indentSize=4:tabSize=8:noTabs=true:
14773
 */