From d723161e038d00e59766aa67a6a0dcc350227e4b Mon Sep 17 00:00:00 2001 From: Ole Troan Date: Thu, 7 Jun 2018 10:17:57 +0200 Subject: MTU: Software interface / Per-protocol MTU support This patch separates setting of hardware interfaec and software interface MTU. Software MTU is L2 payload MTU (i.e. not including L2 header). Per-protocol MTU for IPv4, IPv6 and MPLS can also be set. Currently only IP4, IP6 are enabled in adjacency / rewrite code. Documentation in src/vnet/MTU.md Change-Id: Iee2fd6f0bbc8210748dd8e073ab9fab87d323690 Signed-off-by: Ole Troan --- src/vnet/interface.api | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'src/vnet/interface.api') diff --git a/src/vnet/interface.api b/src/vnet/interface.api index 25ba70342ee..2cbf4f68dbc 100644 --- a/src/vnet/interface.api +++ b/src/vnet/interface.api @@ -1,4 +1,4 @@ -option version = "1.1.0"; +option version = "2.0.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,17 @@ 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 Interface Event generated by want_interface_events @param client_index - opaque cookie to identify the sender @param pid - client pid registered to receive notification @@ -125,6 +136,9 @@ define sw_interface_details /* 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; -- cgit 1.2.3-korg