28 #define _(n,f) case IGMP_TYPE_##f: return (format (s, "%s", #f)); 32 return format (s,
"unknown:%d", type);
42 #define _(n,f) case IGMP_MEMBERSHIP_GROUP_##f: return (format (s, "%s", #f)); 46 return (
format (s,
"unknown:%d", type));
56 #define _(n,f) case IGMP_FILTER_MODE_##f: return (format (s, "%s", #f)); 60 return (
format (s,
"unknown:%d", mode));
68 u32 max_header_bytes = va_arg (*args,
u32);
71 if (max_header_bytes <
sizeof (hdr[0]))
72 return format (s,
"IGMP header truncated");
80 clib_net_to_host_u16 (hdr->
checksum));
89 u32 max_header_bytes = va_arg (*args,
u32);
95 if (max_header_bytes <
sizeof (igmp[0]))
96 return format (s,
"IGMP report truncated");
103 clib_net_to_host_u16 (igmp->
n_groups));
106 for (i = 0; i < clib_net_to_host_u16 (igmp->
n_groups); i++)
135 u32 max_header_bytes = va_arg (*args,
u32);
139 if (max_header_bytes <
sizeof (igmp[0]))
140 return format (s,
"IGMP query truncated");
157 format (s,
"%UGroup-and-Source-Specific Query: %U",
173 ip46_address_t *ss, *srcs;
175 srcs = va_arg (*args, ip46_address_t *);
igmp_membership_group_v3_type_t type
ip4_address_t src_addresses[0]
igmp_membership_group_v3_type_t
int ip4_address_compare(ip4_address_t *a1, ip4_address_t *a2)
enum igmp_filter_mode_t_ igmp_filter_mode_t
ip4_address_t group_address
ip46_address_t igmp_key_t
IGMP Key Used to index groups within an interface config and sources within a list.
ip4_address_t src_addresses[0]
#define vec_foreach(var, vec)
Vector iterator.
#define group_ptr(p, l)
helper macro to get igmp mebership group from pointer plus offset
ip4_address_t group_address