From c61e2e149421b849888bea0239c50607edce35ac Mon Sep 17 00:00:00 2001 From: Alberto Compagno Date: Tue, 7 Apr 2020 11:43:39 +0200 Subject: [HICN-590] Removed andjacency type specific face implementation Changes in the new implementation are: - the adjacency index is replaced with a dpo that allows the single face node to dispatch the packet to the right vlib node. - local and remote address in the face are replaced with a single nat address which is used to perform the nat operation when rewriting an interest or a data (in case of tunnels the nat address will be equal to 0) - the list of next hop in the load balance is no longer a list of dpos but a list of face id (this makes the code easier and increases the number of next hop we supports) Signed-off-by: Alberto Compagno Change-Id: I4ac2b4eb09425bfe1b3ca9f82d7d0ff564297b0d --- hicn-plugin/src/hicn.api | 162 +++-------------------------------------------- 1 file changed, 9 insertions(+), 153 deletions(-) (limited to 'hicn-plugin/src/hicn.api') diff --git a/hicn-plugin/src/hicn.api b/hicn-plugin/src/hicn.api index 01e4da213..d8198d149 100644 --- a/hicn-plugin/src/hicn.api +++ b/hicn-plugin/src/hicn.api @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Cisco and/or its affiliates. + * Copyright (c) 2017-2020 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: @@ -16,19 +16,10 @@ option version = "5.1.0"; import "vnet/ip/ip_types.api"; -enum hicn_face_type -{ - IP_FACE = 0, - UDP_FACE, -}; - -typedef hicn_face_ip +typedef hicn_face { /* IP local address */ - vl_api_address_t local_addr; - - /* IP remote address */ - vl_api_address_t remote_addr; + vl_api_address_t nat_addr; /* IPv4 local port number */ u32 swif; @@ -40,36 +31,6 @@ typedef hicn_face_ip u8 if_name[30]; }; -typedef hicn_face_udp -{ - /* IP local address */ - vl_api_address_t local_addr; - - /* IP remote address */ - vl_api_address_t remote_addr; - - /* Local port */ - u16 lport; - - /* Remote port */ - u16 rport; - - /* IPv4 local port number */ - u32 swif; - - /* Face flags */ - u32 flags; - - /* Name of the interface */ - u8 if_name[30]; -}; - -typedef hicn_face_union -{ - vl_api_hicn_face_ip_t ip; - vl_api_hicn_face_udp_t udp; -}; - define hicn_api_node_params_set { /* Client identifier, set from api_main.my_client_index */ @@ -87,9 +48,6 @@ define hicn_api_node_params_set /* CS maximum size, otherwise -1 to assign default value */ i32 cs_max_size; - /* Portion of CS reserved to application, otherwise -1 to assign default value */ - i32 cs_reserved_app; - /* Upper bound on PIT entry lifetime, otherwise -1 to assign default value */ f64 pit_max_lifetime_sec; }; @@ -205,51 +163,6 @@ define hicn_api_node_stats_get_reply u64 cs_entries_ntw_count; }; -define hicn_api_face_ip_add -{ - /* Client identifier, set from api_main.my_client_index */ - u32 client_index; - - /* Arbitrary context, so client can match reply to request */ - u32 context; - - /* IP local address */ - vl_api_hicn_face_ip_t face; -}; - -define hicn_api_face_ip_add_reply -{ - /* From the request */ - u32 context; - - /* Return value: new Face ID, ~0 means no Face was created */ - u32 faceid; - - /* Return value, zero means all OK */ - i32 retval; -}; - -define hicn_api_face_ip_del -{ - /* Client identifier, set from api_main.my_client_index */ - u32 client_index; - - /* Arbitrary context, so client can match reply to request */ - u32 context; - - /* A Face ID to be deleted */ - u32 faceid; -}; - -define hicn_api_face_ip_del_reply -{ - /* From the request */ - u32 context; - - /* Return value, zero means all OK */ - i32 retval; -}; - define hicn_api_face_stats_details { /* From the request */ @@ -291,7 +204,7 @@ define hicn_api_face_stats_dump u32 context; }; -define hicn_api_face_ip_params_get +define hicn_api_face_params_get { /* Client identifier, set from api_main.my_client_index */ u32 client_index; @@ -303,7 +216,7 @@ define hicn_api_face_ip_params_get u32 faceid; }; -define hicn_api_face_ip_params_get_reply +define hicn_api_face_params_get_reply { /* From the request */ u32 context; @@ -315,10 +228,7 @@ define hicn_api_face_ip_params_get_reply u32 faceid; /* IP local address */ - vl_api_address_t local_addr; - - /* IP remote address */ - vl_api_address_t remote_addr; + vl_api_address_t nat_addr; /* VPP interface (index) associated with the face */ u32 swif; @@ -327,54 +237,6 @@ define hicn_api_face_ip_params_get_reply u32 flags; }; -define hicn_api_face_add -{ - /* Client identifier, set from api_main.my_client_index */ - u32 client_index; - - /* Arbitrary context, so client can match reply to request */ - u32 context; - - /* Type of face to add */ - vl_api_hicn_face_type_t type; - - /* Face to add */ - vl_api_hicn_face_union_t face; -}; - -define hicn_api_face_add_reply -{ - /* From the request */ - u32 context; - - /* Return value: new Face ID, ~0 means no Face was created */ - u32 faceid; - - /* Return value, zero means all OK */ - i32 retval; -}; - -define hicn_api_face_del -{ - /* Client identifier, set from api_main.my_client_index */ - u32 client_index; - - /* Arbitrary context, so client can match reply to request */ - u32 context; - - /* A Face ID to be deleted */ - u32 faceid; -}; - -define hicn_api_face_del_reply -{ - /* From the request */ - u32 context; - - /* Return value, zero means all OK */ - i32 retval; -}; - define hicn_api_faces_details { /* From the request */ @@ -386,11 +248,8 @@ define hicn_api_faces_details /* Id of the face */ u32 faceid; - /* Type of face to add */ - vl_api_hicn_face_type_t type; - /* Face to add */ - vl_api_hicn_face_union_t face; + vl_api_hicn_face_t face; }; define hicn_api_faces_dump @@ -425,11 +284,8 @@ define hicn_api_face_get_reply /* Id of the face */ u32 faceid; - /* Type of face to add */ - vl_api_hicn_face_type_t type; - /* Face to add */ - vl_api_hicn_face_union_t face; + vl_api_hicn_face_t face; }; define hicn_api_route_nhops_add @@ -444,7 +300,7 @@ define hicn_api_route_nhops_add vl_api_prefix_t prefix; /* A Face ID to the next hop forwarder for the specified prefix */ - u32 face_ids[5]; + u32 face_ids[10]; /* Number of face to add */ u8 n_faces; -- cgit 1.2.3-korg