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) \ 72 #define _(f,n) LLC_PROTOCOL_##f = n, 78 #define LLC_DST_SAP_IS_GROUP (1 << 0) 79 #define LLC_SRC_SAP_IS_RESPONSE (1 << 0) 88 u8 extended_control[0];
101 return ((h->
control & 3) != 3 ? 4 : 3);
118 #define foreach_llc_error \ 119 _ (NONE, "no error") \ 120 _ (UNKNOWN_PROTOCOL, "unknown llc ssap/dsap") \ 121 _ (UNKNOWN_CONTROL, "control != 0x3") 124 #define _(f,s) LLC_ERROR_##f, 139 u8 input_next_by_protocol[256];
158 uword max_data_bytes,
always_inline u16 llc_header_get_control(llc_header_t *h)
unformat_function_t unformat_pg_llc_header
llc_protocol_info_t * protocol_infos
uword * protocol_info_by_protocol
always_inline llc_protocol_info_t * llc_get_protocol_info(llc_main_t *m, llc_protocol_t protocol)
always_inline pg_node_t * pg_get_node(uword node_index)
always_inline vlib_node_t * vlib_get_node(vlib_main_t *vm, u32 i)
always_inline u8 llc_header_length(llc_header_t *h)
void llc_set_adjacency(vnet_rewrite_header_t *rw, uword max_data_bytes, llc_protocol_t protocol)
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
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)
unformat_function_t * unformat_buffer
unformat_function_t * unformat_edit
#define foreach_llc_error
format_function_t format_llc_header_with_length
always_inline void llc_setup_node(vlib_main_t *vm, u32 node_index)
#define foreach_llc_protocol
unformat_function_t unformat_llc_protocol
format_function_t format_llc_protocol