From 59f71132edffcfa1b94c400736575bd55bdbd7d7 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Wed, 8 Apr 2020 12:19:38 +0000 Subject: ip: Replace Sematics for Interface IP addresses Type: feature - replace functions for prefixes attached to interfaces - add ip_interface.[ch] to consoldate the functions Signed-off-by: Neale Ranns Change-Id: I9c0c39c09dbf80ea1aadefee02c9bd16f094b6ad --- src/vnet/interface.api | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/vnet/interface.api') diff --git a/src/vnet/interface.api b/src/vnet/interface.api index 1ecd3472f72..c262cd69fcf 100644 --- a/src/vnet/interface.api +++ b/src/vnet/interface.api @@ -228,6 +228,43 @@ autoreply define sw_interface_add_del_address 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 client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request -- cgit 1.2.3-korg