![]() |
FD.io VPP
v18.07-rc0-415-g6c78436
Vector Packet Processing
|
Include dependency graph for igmp.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | igmp_key_t |
| igmp key More... | |
| struct | igmp_src_t |
| igmp source More... | |
| struct | igmp_group_t_ |
| igmp group More... | |
| struct | igmp_config_t_ |
| igmp configuration More... | |
| struct | igmp_type_info_t |
| struct | igmp_report_type_info_t |
| struct | igmp_main_t_ |
| igmp main More... | |
| struct | igmp_timer_t_ |
| igmp timer More... | |
Macros | |
| #define | IGMP_QUERY_TIMER (60) |
| #define | IGMP_SRC_TIMER (3 * IGMP_QUERY_TIMER) |
| #define | IGMP_DEFAULT_ROBUSTNESS_VARIABLE (2) |
| #define | ENABLE_IGMP_DBG 0 |
| #define | IGMP_DBG(...) |
| #define | IGMP_GENERAL_QUERY_ADDRESS (0xE0000001) |
| General Query address - 224.0.0.1. More... | |
| #define | IGMP_MEMBERSHIP_REPORT_ADDRESS (0xE0000016) |
| Membership Report address - 224.0.0.22. More... | |
| #define | group_ptr(p, l) ((igmp_membership_group_v3_t *)((char*)p + l)) |
| helper macro to get igmp mebership group from pointer plus offset More... | |
| #define | IGMP_GROUP_FLAG_QUERY_RESP_RECVED (1 << 0) |
| reponse to query was received More... | |
| #define | IGMP_CONFIG_FLAG_QUERY_RESP_RECVED (1 << 0) |
| #define | IGMP_CONFIG_FLAG_CAN_SEND_REPORT (1 << 1) |
Typedefs | |
| typedef struct igmp_config_t_ | igmp_config_t |
| igmp configuration More... | |
| typedef struct igmp_group_t_ | igmp_group_t |
| igmp group More... | |
| typedef void( | create_msg_t) (vlib_buffer_t *b, igmp_config_t *config, igmp_group_t *group) |
| create message More... | |
| typedef struct igmp_timer_t_ | igmp_timer_t |
| igmp timer More... | |
| typedef struct igmp_main_t_ | igmp_main_t |
| igmp main More... | |
| typedef void( | igmp_timer_function_t) (vlib_main_t *vm, vlib_node_runtime_t *rt, igmp_main_t *im, igmp_timer_t *timer) |
| igmp timer function More... | |
Enumerations | |
| enum | { IGMP_PROCESS_EVENT_UPDATE_TIMER = 1 } |
| enum | igmp_ver_t { IGMP_V1, IGMP_V2, IGMP_V3 } |
| enum | igmp_next_t { IGMP_NEXT_IP4_REWRITE_MCAST_NODE, IGMP_NEXT_IP6_REWRITE_MCAST_NODE, IGMP_N_NEXT } |
Variables | |
| enum { ... } | igmp_process_event_t |
| igmp_main_t | igmp_main |
| vlib_node_registration_t | igmp_timer_process_node |
| (constructor) VLIB_REGISTER_NODE (igmp_timer_process_node) More... | |
| vlib_node_registration_t | igmp_input_node |
| (constructor) VLIB_REGISTER_NODE (igmp_input_node) More... | |
| vlib_node_registration_t | igmp_parse_query_node |
| (constructor) VLIB_REGISTER_NODE (igmp_parse_query_node) More... | |
| vlib_node_registration_t | igmp_parse_report_node |
| (constructor) VLIB_REGISTER_NODE (igmp_parse_report_node) More... | |
| #define group_ptr | ( | p, | |
| l | |||
| ) | ((igmp_membership_group_v3_t *)((char*)p + l)) |
| #define IGMP_GENERAL_QUERY_ADDRESS (0xE0000001) |
| #define IGMP_GROUP_FLAG_QUERY_RESP_RECVED (1 << 0) |
| #define IGMP_MEMBERSHIP_REPORT_ADDRESS (0xE0000016) |
| #define IGMP_SRC_TIMER (3 * IGMP_QUERY_TIMER) |
| typedef void( create_msg_t) (vlib_buffer_t *b, igmp_config_t *config, igmp_group_t *group) |
| typedef struct igmp_config_t_ igmp_config_t |
igmp configuration
| sw_if_index | - interface sw_if_index |
| adj_index | - adjacency index |
| cli_api_configured | - if zero, an igmp report was received |
| next_create_msg | - specify next igmp message |
| igmp_ver | - igmp version |
| robustness_var | - robustness variable |
| flags | - igmp configuration falgs |
| igmp_group_by_key | - group by key hash |
| groups | - pool of groups |
| typedef struct igmp_group_t_ igmp_group_t |
| typedef struct igmp_main_t_ igmp_main_t |
igmp main
| msg_id_base | - API message ID base |
| igmp_api_client_by_client_index | - get api client by client_index |
| api_clients | - pool of api clients registered for join/leave notifications |
| igmp_config_by_sw_if_index | - get config index by config key |
| configs | - pool of igmp configurations |
| buffers | - buffer cache |
| timers | - pool of igmp timers |
| type_infos | - igmp type info |
| report_type_infos | - igmp report type info |
| type_info_by_type | - |
| report_type_info_by_report_type | - |
| general_query_address | - 224.0.0.1 |
| membership_report_address | - 224.0.0.22 |
| typedef void( igmp_timer_function_t) (vlib_main_t *vm, vlib_node_runtime_t *rt, igmp_main_t *im, igmp_timer_t *timer) |
| typedef struct igmp_timer_t_ igmp_timer_t |
| enum igmp_next_t |
| enum igmp_ver_t |
| void igmp_clear_config | ( | igmp_config_t * | config | ) |
| void igmp_clear_group | ( | igmp_config_t * | config, |
| igmp_group_t * | group | ||
| ) |
|
inlinestatic |
| void igmp_create_group_timer | ( | f64 | time, |
| u32 | sw_if_index, | ||
| igmp_key_t * | gkey, | ||
| igmp_timer_function_t * | func | ||
| ) |
igmp create group timer
| time | - expiration time (at this time the timer will expire) |
| sw_if_index | - interface sw_if_index |
| gkey | - key to find the group by |
| func | - function to all after timer expiration |
Creates new group timer.
Definition at line 124 of file igmp.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void igmp_create_int_timer | ( | f64 | time, |
| u32 | sw_if_index, | ||
| igmp_timer_function_t * | func | ||
| ) |
igmp create int timer
| time | - expiration time (at this time the timer will expire) |
| sw_if_index | - interface sw_if_index |
| func | - function to all after timer expiration |
Creates new interface timer. Delayed reports, query msg, query resp.
Definition at line 108 of file igmp.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void igmp_create_src_timer | ( | f64 | time, |
| u32 | sw_if_index, | ||
| igmp_key_t * | gkey, | ||
| igmp_key_t * | skey, | ||
| igmp_timer_function_t * | func | ||
| ) |
igmp create group timer
| time | - expiration time (at this time the timer will expire) |
| sw_if_index | - interface sw_if_index |
| gkey | - key to find the group by |
| skey | - key to find the source by |
| func | - function to all after timer expiration |
Creates new source timer.
Definition at line 146 of file igmp.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void igmp_event | ( | igmp_main_t * | im, |
| igmp_config_t * | config, | ||
| igmp_group_t * | group, | ||
| igmp_src_t * | src | ||
| ) |
igmp event
| im | - igmp main |
| config | - igmp configuration |
| group | - igmp group |
| src | - source |
Notify registered api clients of (S,G) filter update.
Definition at line 301 of file igmp_api.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
| int igmp_listen | ( | vlib_main_t * | vm, |
| u8 | enable, | ||
| u32 | sw_if_index, | ||
| ip46_address_t | saddr, | ||
| ip46_address_t | gaddr, | ||
| u8 | cli_api_configured | ||
| ) |
igmp listen
| vm | - vlib main |
| enable | - 0 == remove (S,G), else add (S,G) |
| sw_if_index | - interface sw_if_index |
| saddr | - source address |
| gaddr | - group address |
| cli_api_configured | - if zero, an igmp report has been received on interface |
Add/del (S,G) on an interface. If user configured, send a status change report from the interface. If a report was received on interface notify registered api clients.
Definition at line 738 of file igmp.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void igmp_query_resp_exp | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | rt, | ||
| igmp_main_t * | im, | ||
| igmp_timer_t * | timer | ||
| ) |
| void igmp_send_query | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | rt, | ||
| igmp_main_t * | im, | ||
| igmp_timer_t * | timer | ||
| ) |
| void igmp_send_report | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | rt, | ||
| igmp_main_t * | im, | ||
| igmp_timer_t * | timer | ||
| ) |
| void igmp_send_state_changed | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | rt, | ||
| igmp_main_t * | im, | ||
| igmp_timer_t * | timer | ||
| ) |
| void igmp_sort_timers | ( | igmp_timer_t * | timers | ) |
| void igmp_src_exp | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | rt, | ||
| igmp_main_t * | im, | ||
| igmp_timer_t * | timer | ||
| ) |
|
inlinestatic |
| vlib_node_registration_t igmp_input_node |
| igmp_main_t igmp_main |
| vlib_node_registration_t igmp_parse_query_node |
| vlib_node_registration_t igmp_parse_report_node |
| enum { ... } igmp_process_event_t |
| vlib_node_registration_t igmp_timer_process_node |