X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Figmp%2Figmp.api;h=c79ff6e3121f667c0297637a5a6b1008b6ba5a1c;hb=4a7fc4cf1;hp=2a2e68030f6810633d0d87147b03eb878501e925;hpb=bdc0e6b7204ea0211d4f7881497e4306586fb9ef;p=vpp.git diff --git a/src/plugins/igmp/igmp.api b/src/plugins/igmp/igmp.api index 2a2e68030f6..c79ff6e3121 100644 --- a/src/plugins/igmp/igmp.api +++ b/src/plugins/igmp/igmp.api @@ -18,6 +18,7 @@ option version = "1.0.0"; import "vnet/ip/ip_types.api"; +import "vnet/interface_types.api"; /** * @brief Filter mode @@ -61,11 +62,11 @@ enum 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]; }; @@ -93,9 +94,51 @@ autoreply define igmp_enable_disable 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; }; /** @@ -109,7 +152,7 @@ define igmp_dump u32 client_index; u32 context; - u32 sw_if_index; + vl_api_interface_index_t sw_if_index; }; /** @@ -123,7 +166,7 @@ define igmp_details { 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; }; @@ -138,7 +181,7 @@ autoreply define igmp_clear_interface u32 client_index; u32 context; - u32 sw_if_index; + vl_api_interface_index_t sw_if_index; }; /** @@ -173,9 +216,7 @@ service { */ 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;