* limitations under the License.
*/
-option version = "3.0.0";
+option version = "3.2.2";
import "vnet/interface_types.api";
import "vnet/ethernet/ethernet_types.api";
bool enable;
};
-
/** \brief Interface Event generated by want_interface_events
@param client_index - opaque cookie to identify the sender
@param pid - client pid registered to receive notification
@param sup_sw_if_index - index of parent interface if any, else same as sw_if_index
@param l2_address - the interface's l2 address
@param flags - interface_status flags
+ @param type - interface type
@param link_duplex - 1 if half duplex, 2 if full duplex
@param link_speed - value in kbps
@param link_MTU - max. transmission unit
@param pbb_b_vlanid - B-tag vlanid
@param pbb_i_sid - I-tag service id
@param interface_name - name of the interface
+ @param interface_dev_type - device type of the interface
@param tag - an ascii tag
*/
define sw_interface_details
vl_api_if_status_flags_t flags;
+ vl_api_if_type_t type;
+
/* 1 = half duplex, 2 = full duplex */
vl_api_link_duplex_t link_duplex;
u32 i_sid;
/* Interface name */
- string interface_name;
- string tag;
+ string interface_name[64];
+ string interface_dev_type[64];
+ string tag[64];
};
/** \brief Request all or filtered subset of sw_interface_details
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
+ @param sw_if_index - index of the interface to dump info on, 0 or ~0 if on all
+ TODO: Support selecting only index==0 when CSIT is ready.
@param name_filter_valid - 1 if requesting a filtered subset of records else 0
+ if name filter is set as valid, sw_if_index value is ignored and all interfaces are examined
@param name_filter - interface name substring filter. Eg. loop1 returns [loop1, loop10]
*/
-
define sw_interface_dump
{
u32 client_index;
u32 context;
+ vl_api_interface_index_t sw_if_index [default=0xFFFFFFFF];
bool name_filter_valid;
- string name_filter;
+ string name_filter[];
};
/** \brief Set or delete one or all ip addresses on a specified interface
bool is_add;
bool del_all;
- vl_api_prefix_t prefix;
+ vl_api_address_with_prefix_t prefix;
+};
+
+/** \brief IP interface address replace begin
+
+ The use-case is that, for some unspecified reason, the control plane
+ has a different set of interface addresses than VPP
+ currently has. The CP would thus like to 'replace' VPP's set
+ only by specifying what the new set shall be, i.e. it is not
+ going to delete anything that already eixts, rather, is wants any
+ unspecified interface addresses to be deleted implicitly.
+ The CP declares the start of this procedure with this replace_begin
+ API Call, and when it has populated all addresses it wants, it calls
+ the below replace_end API. From this point on it is of course free
+ to add and delete interface addresses as usual.
+ The underlying mechanism by which VPP implements this replace is
+ intentionally left unspecified.
+
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+*/
+autoreply define sw_interface_address_replace_begin
+{
+ u32 client_index;
+ u32 context;
+};
+
+/** \brief IP interface address replace end
+
+ see ip_interface_address_replace_begin description.
+
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+*/
+autoreply define sw_interface_address_replace_end
+{
+ u32 client_index;
+ u32 context;
};
/** \brief Associate the specified interface with a fib table
@param context - sender context, to match reply w/ request
@param sw_if_index - index of the interface
@param is_ipv6 - if non-zero ipv6, else ipv4
- @param vrf_id - fib table/vrd id to associate the interface with
+ @param vrf_id - fib table/vrf id to associate the interface with
*/
autoreply define sw_interface_set_table
{
u32 context;
bool is_add;
vl_api_interface_index_t sw_if_index;
- string tag;
+ string tag[64];
+};
+
+/** \brief Add or delete a secondary MAC address on an interface
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param sw_if_index - the interface whose MAC will be set
+ @param mac_addr - the new MAC address
+ @param is_add - 0 to delete, != 0 to add
+*/
+autoreply define sw_interface_add_del_mac_address
+{
+ u32 client_index;
+ u32 context;
+ u32 sw_if_index;
+ vl_api_mac_address_t addr;
+ u8 is_add;
};
/** \brief Set an interface's MAC address