X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=blobdiff_plain;f=src%2Fvnet%2Finterface.api;h=c262cd69fcf4e8dfcd2fbded86c6812f6898cbd3;hp=8a2d0797b5c5689fbbd1478f6e06675b59ee2548;hb=59f71132e;hpb=053204ab039d34a990ff0e14c32ce3b294fcce0e diff --git a/src/vnet/interface.api b/src/vnet/interface.api index 8a2d0797b5c..c262cd69fcf 100644 --- a/src/vnet/interface.api +++ b/src/vnet/interface.api @@ -14,7 +14,7 @@ * 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"; @@ -131,6 +131,7 @@ autoreply define want_interface_events @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 @@ -185,8 +186,9 @@ define sw_interface_details 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 @@ -202,9 +204,9 @@ define sw_interface_dump { u32 client_index; u32 context; - vl_api_interface_index_t sw_if_index; + 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 @@ -223,7 +225,44 @@ autoreply define sw_interface_add_del_address 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 @@ -307,7 +346,23 @@ autoreply define sw_interface_tag_add_del 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