|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
40 #ifndef included_vnet_igmp_packet_h
41 #define included_vnet_igmp_packet_h
46 #define foreach_igmp_type \
47 _ (0x11, membership_query) \
48 _ (0x12, membership_report_v1) \
51 _ (0x15, cisco_trace) \
52 _ (0x16, membership_report_v2) \
53 _ (0x17, leave_group_v2) \
54 _ (0x1e, traceroute_response) \
55 _ (0x1f, traceroute_request) \
56 _ (0x22, membership_report_v3) \
57 _ (0x30, router_advertisement) \
58 _ (0x31, router_solicitation) \
59 _ (0x32, router_termination)
63 #define _(n,f) IGMP_TYPE_##f = n,
86 if (header->
code < 128)
90 u8 mant = header->
code << 4;
93 qqi = ((mant | 0x10) << (
exp + 3));
121 return (
sizeof (*q) +
132 #define foreach_igmp_membership_group_v3_type \
133 _ (1, mode_is_include) \
134 _ (2, mode_is_exclude) \
135 _ (3, change_to_include) \
136 _ (4, change_to_exclude) \
137 _ (5, allow_new_sources) \
138 _ (6, block_old_sources)
142 #define _(n,f) IGMP_MEMBERSHIP_GROUP_##f = n,
166 return (
sizeof (*g) +
201 for (ii = 0; ii < clib_net_to_host_u16 (
r->n_groups); ii++)
igmp_membership_group_v3_type_t type
static u32 igmp_membership_report_v3_length(const igmp_membership_report_v3_t *r)
static f64 igmp_header_get_max_resp_time(const igmp_header_t *header)
Calculate the maximum response time allowed from the header.
vnet_hw_if_output_node_runtime_t * r
static u32 igmp_membership_group_v3_length(const igmp_membership_group_v3_t *g)
static int igmp_membership_query_v3_is_general(const igmp_membership_query_v3_t *q)
igmp_membership_group_v3_type_t
ip4_address_t group_address
static u32 igmp_membership_query_v3_length(const igmp_membership_query_v3_t *q)
ip4_address_t src_addresses[0]
static igmp_membership_group_v3_t * igmp_membership_group_v3_next(igmp_membership_group_v3_t *g)
#define foreach_igmp_membership_group_v3_type
#define foreach_igmp_type
ip4_address_t group_address