option version = "1.0.0";
import "vnet/ip/ip_types.api";
+import "vnet/interface_types.api";
/**
* @brief Filter mode
* @param saddr - source address
* @param gaddr - group address
*/
-typeonly define igmp_group
+typedef igmp_group
{
vl_api_filter_mode_t filter;
u8 n_srcs;
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
vl_api_ip4_address_t gaddr;
vl_api_ip4_address_t saddrs[n_srcs];
};
/**
* @brief
- * Used by a 'router' and 'host' to enable the recption of IGMP packets.
+ * Used by a 'router' and 'host' to enable the reception of IGMP packets.
* For hosts this must be called once before igmp_listen.
*
* @param client_index - opaque cookie to identify the sender
u32 client_index;
u32 context;
- u8 enable;
+ bool enable;
u8 mode;
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
+};
+
+/**
+ * @brief
+ * Add/del proxy device on specified VRF.
+ * Interface must be IGMP enabled in HOST mode.
+ *
+ * @param client_index - opaque cookie to identify the sender
+ * @param context - sender context, to match reply w/ request
+ * @param add - add (1) del (0)
+ * @param vrf_id - VRF id
+ * @param sw_if_index - upstream interface sw index
+ */
+autoreply define igmp_proxy_device_add_del
+{
+ u32 client_index;
+ u32 context;
+
+ u8 add;
+ u32 vrf_id;
+ vl_api_interface_index_t sw_if_index;
+};
+
+/**
+ * @brief
+ * Add/del downstream interface to/from proxy device.
+ * Interface must be IGMP enabled in ROUTER mode.
+ *
+ * @param client_index - opaque cookie to identify the sender
+ * @param context - sender context, to match reply w/ request
+ * @param add - add (1) del (0)
+ * @param vrf_id - VRF id
+ * @param sw_if_index - downstream interface sw index
+ */
+autoreply define igmp_proxy_device_add_del_interface
+{
+ u32 client_index;
+ u32 context;
+
+ bool add;
+ u32 vrf_id;
+ vl_api_interface_index_t sw_if_index;
};
/**
u32 client_index;
u32 context;
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
};
/**
{
u32 context;
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
vl_api_ip4_address_t saddr;
vl_api_ip4_address_t gaddr;
};
u32 client_index;
u32 context;
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
};
/**
*/
define igmp_event
{
- u32 context;
-
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
vl_api_filter_mode_t filter;
vl_api_ip4_address_t saddr;
vl_api_ip4_address_t gaddr;