40 #ifndef included_llc_h 41 #define included_llc_h 47 #define foreach_llc_protocol \ 50 _ (sna_path_control, 0x4) \ 55 _ (proway_lan, 0x0e) \ 58 _ (osi_layer1, 0x14) \ 59 _ (osi_layer2, 0x20) \ 60 _ (osi_layer3, 0x34) \ 61 _ (osi_layer4, 0x54) \ 62 _ (osi_layer5, 0xfe) \ 73 #define _(f,n) LLC_PROTOCOL_##f = n, 80 #define LLC_DST_SAP_IS_GROUP (1 << 0) 81 #define LLC_SRC_SAP_IS_RESPONSE (1 << 0) 90 u8 extended_control[0];
103 return ((h->
control & 3) != 3 ? 4 : 3);
121 #define foreach_llc_error \ 122 _ (NONE, "no error") \ 123 _ (UNKNOWN_PROTOCOL, "unknown llc ssap/dsap") \ 124 _ (UNKNOWN_CONTROL, "control != 0x3") 128 #define _(f,s) LLC_ERROR_##f, 144 u8 input_next_by_protocol[256];
unformat_function_t unformat_pg_llc_header
llc_protocol_info_t * protocol_infos
uword * protocol_info_by_protocol
static u8 llc_header_length(llc_header_t *h)
vl_api_ip_proto_t protocol
static pg_node_t * pg_get_node(uword node_index)
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
static void llc_setup_node(vlib_main_t *vm, u32 node_index)
unformat_function_t unformat_llc_header
format_function_t * format_buffer
format_function_t format_llc_header
void llc_register_input_protocol(vlib_main_t *vm, llc_protocol_t protocol, u32 node_index)
static llc_protocol_info_t * llc_get_protocol_info(llc_main_t *m, llc_protocol_t protocol)
unformat_function_t * unformat_buffer
unformat_function_t * unformat_edit
#define foreach_llc_error
format_function_t format_llc_header_with_length
static u16 llc_header_get_control(llc_header_t *h)
static vlib_node_t * vlib_get_node(vlib_main_t *vm, u32 i)
Get vlib node by index.
#define foreach_llc_protocol
unformat_function_t unformat_llc_protocol
format_function_t format_llc_protocol