LLDP packet parsing implementation.
More...
Go to the source code of this file.
|
static void | lldp_rpc_update_peer_cb (const lldp_intf_update_t *a) |
|
static void | lldp_rpc_update_peer (u32 hw_if_index, const u8 *chid, u8 chid_len, u8 chid_subtype, const u8 *portid, u8 portid_len, u8 portid_subtype, u16 ttl) |
|
lldp_tlv_code_t | lldp_tlv_get_code (const lldp_tlv_t *tlv) |
|
void | lldp_tlv_set_code (lldp_tlv_t *tlv, lldp_tlv_code_t code) |
|
u16 | lldp_tlv_get_length (const lldp_tlv_t *tlv) |
|
void | lldp_tlv_set_length (lldp_tlv_t *tlv, u16 length) |
|
static int | lldp_packet_scan (u32 hw_if_index, const lldp_tlv_t *pkt) |
|
lldp_intf_t * | lldp_get_intf (lldp_main_t *lm, u32 hw_if_index) |
|
lldp_intf_t * | lldp_create_intf (lldp_main_t *lm, u32 hw_if_index) |
|
lldp_error_t | lldp_input (vlib_main_t *vm, vlib_buffer_t *b0, u32 bi0) |
|
static clib_error_t * | lldp_init (vlib_main_t *vm) |
|
LLDP packet parsing implementation.
Definition in file lldp_input.c.
#define F |
( |
|
num, |
|
|
|
type, |
|
|
|
str |
|
) |
| |
◆ TLV_VIOLATES_PKT_BOUNDARY
#define TLV_VIOLATES_PKT_BOUNDARY |
( |
|
pkt, |
|
|
|
tlv |
|
) |
| |
Value:(((((
u8 *)tlv) +
sizeof (lldp_tlv_t)) > ((
u8 *)pkt +
vec_len (pkt))) || \
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
◆ lldp_create_intf()
◆ lldp_get_intf()
◆ lldp_init()
◆ lldp_input()
◆ lldp_packet_scan()
static int lldp_packet_scan |
( |
u32 |
hw_if_index, |
|
|
const lldp_tlv_t * |
pkt |
|
) |
| |
|
static |
◆ lldp_rpc_update_peer()
static void lldp_rpc_update_peer |
( |
u32 |
hw_if_index, |
|
|
const u8 * |
chid, |
|
|
u8 |
chid_len, |
|
|
u8 |
chid_subtype, |
|
|
const u8 * |
portid, |
|
|
u8 |
portid_len, |
|
|
u8 |
portid_subtype, |
|
|
u16 |
ttl |
|
) |
| |
|
static |
◆ lldp_rpc_update_peer_cb()
◆ lldp_tlv_get_code()
◆ lldp_tlv_get_length()
u16 lldp_tlv_get_length |
( |
const lldp_tlv_t * |
tlv | ) |
|
◆ lldp_tlv_set_code()
◆ lldp_tlv_set_length()
void lldp_tlv_set_length |
( |
lldp_tlv_t * |
tlv, |
|
|
u16 |
length |
|
) |
| |
◆ lldp_main