X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Finterface.api;h=fdf34f0da340cced6f14e1e76afc1ca71cdb86c9;hb=f0b42f48;hp=0f88863dff3bdc45e772b459e899785a8027cd13;hpb=70083ee74c3141bbefb185525315f1b34497dcaa;p=vpp.git diff --git a/src/vnet/interface.api b/src/vnet/interface.api index 0f88863dff3..fdf34f0da34 100644 --- a/src/vnet/interface.api +++ b/src/vnet/interface.api @@ -1,4 +1,4 @@ -option version = "1.1.0"; +option version = "2.1.0"; service { rpc want_interface_events returns want_interface_events_reply @@ -21,13 +21,13 @@ autoreply define sw_interface_set_flags u8 admin_up_down; }; -/** \brief Set interface MTU +/** \brief Set interface physical MTU @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 set MTU on @param mtu - MTU */ -autoreply define sw_interface_set_mtu +autoreply define hw_interface_set_mtu { u32 client_index; u32 context; @@ -35,6 +35,31 @@ autoreply define sw_interface_set_mtu u16 mtu; }; +/** \brief Set interface L3 MTU */ +autoreply define sw_interface_set_mtu +{ + u32 client_index; + u32 context; + u32 sw_if_index; + /* $$$$ Replace with enum */ + u32 mtu[4]; /* 0 - L3, 1 - IP4, 2 - IP6, 3 - MPLS */ +}; + +/** \brief Set IP4 directed broadcast + The directed broadcast enabled a packet sent to the interface's + subnet address will be broadcast on the interface + @param sw_if_index + @param enable +*/ +autoreply define sw_interface_set_ip_directed_broadcast +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u8 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 @@ -75,7 +100,7 @@ autoreply define want_interface_events @param interface_name - name of the interface @param link_duplex - 1 if half duplex, 2 if full duplex @param link_speed - 1 = 10M, 2 = 100M, 4 = 1G, 8 = 10G, 16 = 40G, 32 = 100G - @param MTU - max. transmittion unit + @param link_MTU - max. transmission unit @param sub_if_id - A number 0-N to uniquely identify this subif on super if @param sub_dot1ad - 0 = dot1q, 1 = dot1ad @param sub_dot1ah - 1 = dot1ah, 0 = otherwise @@ -123,7 +148,10 @@ define sw_interface_details u8 link_speed; /* MTU */ - u16 mtu; + u16 link_mtu; + + /* Per protocol MTUs */ + u32 mtu[4]; /* 0 - L3, 1 - IP4, 2 - IP6, 3 - MPLS */ /* Subinterface ID. A number 0-N to uniquely identify this subinterface under the super interface */ u32 sub_id; @@ -404,6 +432,65 @@ autoreply define sw_interface_set_rx_mode u8 mode; }; +/** \brief Set an interface's rx-placement + Rx-Queue placement on specific thread is operational for only hardware + interface. It will not set queue - thread placement for sub-interfaces, + p2p and pipe interfaces. + @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 rx-placement will be set + @param queue_id - the queue number whose rx-placement will be set. + @param worker_id - the worker number whom rx-placement will be at. + @param is_main - flag to set rx-placement to main thread +*/ +autoreply define sw_interface_set_rx_placement +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u32 queue_id; + u32 worker_id; + u8 is_main; +}; + +/** \brief dump the rx queue placement of interface(s) + @param sw_if_index - optional interface index for which queue placement to + be requested. sw_if_index = ~0 will dump placement information for all + interfaces. It will not dump information related to sub-interfaces, p2p + and pipe interfaces. +*/ +define sw_interface_rx_placement_dump +{ + u32 client_index; + u32 context; + u32 sw_if_index; +}; + +/** \brief show the interface's queue - thread placement + This api is used to display the interface and queue worker + thread placement. One message per rx-queue per interface will + be sent to client. + Each message will contain information about rx-queue id of an + interface, interface index, thread on which this rx-queue is + placed and mode of rx-queue. + @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 rx-placement will be dumped + @param queue_id - the queue id + @param worker_id - the worker id on which queue_id is placed, + worker_id = 0 means main thread. + @param mode - polling=1, interrupt=2, adaptive=3 +*/ +define sw_interface_rx_placement_details +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u32 queue_id; + u32 worker_id; + u8 mode; +}; + /* Gross kludge, DGMS */ autoreply define interface_name_renumber {