aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-plugin/src/hicn.api
AgeCommit message (Collapse)AuthorFilesLines
2023-01-20feat: implement set strategy API for hicn-pluginMauro Sardara1-2/+37
Ticket: HICN-829 Change-Id: I3dabc38e9cc2e06ebed14b9ed265d027f77b7e5f Signed-off-by: Mauro Sardara <msardara@cisco.com> (cherry picked from commit da0d60997bce1e40cc0b1c7b7f4f58df56bbead3)
2022-07-01Revision and refactor of the VPP plugin with fixes for theLuca Muscariello1-0/+6
packet generator. Hash table for the packet cache has been changed with the bihash. Co-authored-by: Mauro Sardara <msardara@cisco.com> Signed-off-by: Luca Muscariello <muscariello@ieee.org> Change-Id: I0e0191a9f109d37081d32cc55d577ea43533f8c0 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2022-03-31feat: boostrap hicn 22.02Luca Muscariello1-2/+8
The current patch provides several new features, improvements, bug fixes and also complete rewrite of entire components. - lib The hicn packet parser has been improved with a new packet format fully based on UDP. The TCP header is still temporarily supported but the UDP header will replace completely the new hicn packet format. Improvements have been made to make sure every packet parsing operation is made via this library. The current new header can be used as header between the payload and the UDP header or as trailer in the UDP surplus area to be tested when UDP options will start to be used. - hicn-light The portable packet forwarder has been completely rewritten from scratch with the twofold objective to improve performance and code size but also to drop dependencies such as libparc which is now removed by the current implementation. - hicn control the control library is the agent that is used to program the packet forwarders via their binary API. This component has benefited from significant improvements in terms of interaction model which is now event driven and more robust to failures. - VPP plugin has been updated to support VPP 22.02 - transport Major improvement have been made to the RTC protocol, to the support of IO modules and to the security sub system. Signed manifests are the default data authenticity and integrity framework. Confidentiality can be enabled by sharing the encryption key to the prod/cons layer. The library has been tested with group key based applications such as broadcast/multicast and real-time on-line meetings with trusted server keys or MLS. - testing Unit testing has been introduced using GoogleTest. One third of the code base is covered by unit testing with priority on critical features. Functional testing has also been introduce using Docker, linux bridging and Robot Framework to define test with Less Code techniques to facilitate the extension of the coverage. Co-authored-by: Mauro Sardara <msardara@cisco.com> Co-authored-by: Jordan Augé <jordan.auge+fdio@cisco.com> Co-authored-by: Michele Papalini <micpapal@cisco.com> Co-authored-by: Angelo Mantellini <manangel@cisco.com> Co-authored-by: Jacques Samain <jsamain@cisco.com> Co-authored-by: Olivier Roques <oroques+fdio@cisco.com> Co-authored-by: Enrico Loparco <eloparco@cisco.com> Co-authored-by: Giulio Grassi <gigrassi@cisco.com> Change-Id: I75d0ef70f86d921e3ef503c99271216ff583c215 Signed-off-by: Luca Muscariello <muscariello@ieee.org> Signed-off-by: Mauro Sardara <msardara@cisco.com>
2020-09-18Revert to [HICN-638] Check if systemd is running before enabling hicn-light ↵Mauro Sardara1-0/+579
service Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I1810d96e001a4e6e097e1efa331b682af750925d
2020-09-14[HICN-574] Host stack plugin for VPP.Mauro Sardara1-579/+0
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I8d8fdffef31a7013265d6529c5f52f3d5ec70d18 Signed-off-by: Mauro Sardara <msardara@cisco.com> Signed-off-by: Mauro <you@example.com> Signed-off-by: Mauro Sardara <msardara@cisco.com>
2020-05-04[HICN-603] Cleanup code for managing routeAlberto Compagno1-72/+0
- Remove old code to add and remove hicn route. Routes are now added only through the ip route commands/apis - Adjusted the cli to set the strategy for a particular prefix - Adjusted libtransport consumer and producer app creation - Adjusted sysrepo plugin. Added hicn enable and disable and removed old api related to hicn routes and hicn faces - Adjusted libhicnctrl. Only routes api and listener are now available for hicn-plugin Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com> Change-Id: Ib4f7f45ba0b99253d60a9da2b295d6e783e5cd51
2020-05-04[HICN-602] Added bidirectional udp tunnelsAlberto Compagno1-1/+36
- Implemented a udp decapsulation node - Added a hash table to identify the incoming udp tunnel when an interest or data packets are received - Added udp punting through udp_register_dst_port Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com> Change-Id: Iffea4d81c5ea8ce8ccbbfd749113f06a698a2afe
2020-05-04[HICN-591] Created new command "hicn enable <prefix>" that enable hicn on a ↵Alberto Compagno1-0/+34
given prefix The changes include: - we use now a different vrf for the hicn routes. The default vrf (fib) contains every route, we sync the route we marked as hicn on the hicn vrf. In the vrf we use a custom dpo to implement the forwarding strategy. Change-Id: I399805eff8a62a5c41bf7b50831986a35bce4f76 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2020-05-04[HICN-590] Removed andjacency type specific face implementationAlberto Compagno1-153/+9
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 <acompagn+fdio@cisco.com> Change-Id: I4ac2b4eb09425bfe1b3ca9f82d7d0ff564297b0d
2020-03-20[HICN-551] Removed source code that uses aclAlberto Compagno1-87/+0
- Removed punting from the sysrepo-plugin - Removed calls to the punting functions of binary api in the libhicnctrl - Added documentation in vpp-plugin.md and doxygen related to pg Change-Id: I8936156d51524797441ec49f0d5e801a1ad3643a Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2020-01-30[HICN-445] Update to vpp 20.01Alberto Compagno1-7/+7
Change-Id: I19a442080b6ca8b0477a8f92f161282288c395ee Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-12-04[HICN-427] Producer and consumer socket created with vapiAlberto Compagno1-4/+4
Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com> Change-Id: I44142385b191b4c9b5c4bb418bfbd06a5e102eec
2019-11-26[HICN-398] Added face create/delete/list and listener list on libctrl for ↵Alberto Compagno1-2/+2
hicn-plugin Listener list returns the list of interfaces and their ip addresses Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com> Change-Id: I2582cf29d4f1f60964766d47ad8d6dc64504fd62
2019-11-22[HICN-405] Added application face deleteAlberto Compagno1-0/+27
Added two new messages in the binary api: - hicn_api_face_cons_del to delete a consumer face - hicn_api_face_prod_del to delete a producer face Added the corresponding commands in the vpp_api_test for debugging and testing Reworked the cache policy structure to add a new function that flash the content store from the content coming from the destroyed producer face. This is required since the CS while each producer face has its own lru list. Removing only the producer face without flushing the CS from the content coming from the producer face will lead to a segfault in case there is a hit in the CS as the lru no longer exists and it won't be possible to update the head of the lru. Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com> Change-Id: I8776c86952d50900aa504dd22aec521ed25c1dae
2019-11-18[HICN-397] Added punting add message for punting on udp portsAlberto Compagno1-12/+55
Change-Id: Ieb5faf5d01e460179028eaba92170ee95cf35edf Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-11-18[HICN-225] Added generic binary api for handling facesAlberto Compagno1-19/+168
Supported messages are add, del, get, dump, get. Each message contains a face id and the expected message has different fields based on the face type. The binary api specific for ip faces is still available for compatibility but deprecated. Change-Id: I899c6cf31a56abd39ad287ea3128993857997fcb Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-11-04[HICN-262] Fix binary api to prevent byteswapping of ip addresses in vapiAlberto Compagno1-40/+19
Change-Id: If3f9a7db1e1310fdc08d1003b28e5e1d4006b61e Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-10-06[HICN-287] Adding hicn section to the startup.confAlberto Compagno1-12/+0
Checking if the size of the CS is greater than the number of vlib buffers available and size it accordingly. Removed unused parameters to set PIT lifetime Change-Id: I47679466542d4338e447d9e0b956038143164020 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-09-24[HICN-260] Added a dump binary api for hicn routesAlberto Compagno1-1/+43
Change-Id: Ic2f7b1edeb35603f6d1fa5f40f7fff441aa43203 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-04-02[HICN-158] Fixed ip face deletion from binary apiAlberto Compagno1-4/+4
Change-Id: I7a793e3664e30f765861fd5153c99fecb47ce863 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-03-23[HICN-139] Exporting per-face statistics through the binary api.Alberto Compagno1-0/+41
Change-Id: I253fb788fec527360876064b22ab54620eb2c615 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-03-12[HICN-109] Added missing parameter to the face ip add binary api.Alberto Compagno1-2/+8
Added check if the swif exists on the face ip binary api, before calling the internal api to add the face. Change-Id: I6e23d20290755707194bc86c93baee8932a03c40 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-02-14- [HICN-65] Populating hash map of handler and crc in api_mainAlberto Compagno1-3/+3
- Added possibility to start the forwarder from binary api without setting any parameters - Changed pit lifetime values from seconds to milliseconds Change-Id: I83706f22ddd8e825c1021fe70d4bf52e1b929be8 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-01-30[HICN-18] first commit of libtransport for windowsAngelo Mantellini1-0/+0
Change-Id: I3a43b22194aa13ae5de1746e3d4bd9a275070261 Signed-off-by: Angelo Mantellini <manangel@cisco.com>
2019-01-17This is the first commit of the hicn projectv19.01Luca Muscariello1-0/+538
Change-Id: I6f2544ad9b9f8891c88cc4bcce3cf19bd3cc863f Signed-off-by: Luca Muscariello <lumuscar+fdio@cisco.com>