aboutsummaryrefslogtreecommitdiffstats
path: root/ctrl/libhicnctrl/src/modules
AgeCommit message (Collapse)AuthorFilesLines
2023-02-08feat: libhicnctrl: new API to allow sending MAP-Me command on specific faceJordan Augé4-131/+96
Change-Id: Iac39a1d145a5c1b4f19e1fa35d713ca720393760 Ticket: HICN-832 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2023-02-07fix(hicn): fix bugs reported by sonarqubeMichele Papalini1-2/+8
Ref: HICN-837 Signed-off-by: Michele Papalini <micpapal@cisco.com> Change-Id: I0d02a11361b1ba5ad50123b2dd142c961998922f
2023-01-23fix(libhicnctrl): do not swap bytes when using vapiMauro Sardara1-1/+1
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: If1666dd5c31c662570ed10991b3d42d6095693ff
2023-01-20feat: implement set strategy API for hicn-pluginMauro Sardara4-4/+153
Ticket: HICN-829 Change-Id: I3dabc38e9cc2e06ebed14b9ed265d027f77b7e5f Signed-off-by: Mauro Sardara <msardara@cisco.com> (cherry picked from commit da0d60997bce1e40cc0b1c7b7f4f58df56bbead3)
2023-01-20fix(libhicnctrl)/hicn_plugin): copy address to correct offsetMauro Sardara1-2/+2
Copy address received from vapi into correct ip46address offset Ticket: HICN-826 Change-Id: I1bf23cc0920539f8883b499981f216038e51a8c0 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2022-12-02feat: configure hicnlight port in libtransport and libconfigMauro Sardara1-6/+21
Change-Id: Ib55747b4589150ce4a88938e28371c6cf5ab979b Signed-off-by: Mauro Sardara <msardara@cisco.com> Signed-off-by: Michele Papalini <micpapal@cisco.com>
2022-10-14fix(libhicnctrl): new create/face&route command failJordan Augé1-5/+5
Change-Id: I49d80a741672c4f9da75e36cc816fc53f37ac158 Ticket: HICN-808 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2022-10-07Merge "refactor(hicn-light): cleanup and optimizations to UDP socket face"Mauro Sardara4-18/+9
2022-10-07refactor(hicn-light): cleanup and optimizations to UDP socket faceJordan Augé4-18/+9
Ticket: HICN-771 Change-Id: Ie84dc2f61888c3fdd7b3728b2a13cacbac503d1a Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2022-10-05refactor(libhicnctrl): strategy/set missing in VFTJordan Augé8-87/+58
Change-Id: I19a8dd89a1f03127d414d1c086848079ff10d0df Ticket: HICN-803 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2022-09-23fix(stats): fix forwarder statistics retrievalEnrico Loparco (eloparco)10-123/+140
Ref: HICN-794 Signed-off-by: Enrico Loparco (eloparco) <eloparco@cisco.com> Change-Id: I13162174f45855989727f92e96c11a1d48d710dd
2022-09-23fix(hicn-light): fix routing issuesJordan Augé1-4/+4
Ref: HICN-786 Change-Id: I541c87d2d810907489ca4f59b3d7740a18c108fb Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2022-09-22Merge "fix(libhicnctrl): fix new listener validation during face or ↵Mauro Sardara3-310/+34
connection creation"
2022-09-22feat(libhicnctrl): implement face delete commandMauro Sardara1-0/+154
Ticket: HICN-793 Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I87f2cd5a9e077ba81cc0d92fc2ec9fb5c9ec2ff0
2022-09-22fix(libhicnctrl): fix new listener validation during face or connection creationJordan Augé3-310/+34
Change-Id: I5f532320fcb3fc01cd3a027af7ea5fc6425e4097 Ref: HICN-790 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2022-09-12feat(slab): add slab allocator to store hashtables' keysEnrico Loparco (eloparco)1-1/+1
Ref: HICN-777 Signed-off-by: Enrico Loparco (eloparco) <eloparco@cisco.com> Change-Id: Ibbd5c5e73cfd2f6adf757f7248dff8a933515d21
2022-08-10feat: add interest manifest serialization/deserializationMauro Sardara1-1/+17
Also: add helpers for interest manifest Ref: HICN-738 Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: Ia531605148e00ccbe446da0f4f2d8caae2b098be Signed-off-by: Mauro Sardara <msardara@cisco.com>
2022-08-04feat: Due to the deep modifications related to names and packet format,Luca Muscariello31-4756/+4762
this task cover a large part of the codebase and involves several changes: - the library provides a name data structure (hicn_name_t ), which is composed of a name prefix (hicn_name_prefix_t) and a name suffix (hicn_name_suffix_t), and it has been extended to provide all support functions required for name manipulation, including common prefix computation, as required for the Longest Prefix Match (LPM)in the forwarder, in addition to Exact Prefix Match (EPM). - all code has been rewritten to use this data structure instead of having for instance the forwarder define its own name class (used to be Name and NameBitVector) the code has been refactored to minimize name allocations and copies, one remaining aspect is the difference of name storage between PIT and CS entries (respectively in the PIT entry, and in the message buffer), which causes the packet cache index to be updated when a PIT entry is converted into a CS entry. By storing the name in the PIT/CS entry everytime, we might save on this operation). - hicn-light FIB has been rewritten : code has been refactored and should now be shorter and documented; unit tests have been drafted but more would be required to cover all cases and match the algorithms to add/remove nodes, as specified in the doc. all protocol details and hICN header formats are now abstracted by the library for the forwarder (and thus header.h and  protocols/*.h have been removed from public includes, and replaced by packet.h providing protocol agnostic packet level functions, completely replacing the compat.h header that used to provide similar functions. - this works by exposing a opaque buffer to the application (a kind of socket buffer) which is used by the lib to cache the packet format and offsets of the different layers in the buffer and provider efficient operations (the packet format is either defined for packet construction, or guessed at ingress, and this structure is updated accordingly only once). Co-authored-by: Jordan Augé <jordan.auge+fdio@cisco.com> Signed-off-by: Luca Muscariello <muscariello@ieee.org> Change-Id: I31e321897f85f0267fe8ba4720363c180564492f
2022-06-30refactor(lib, hicn-light, vpp, hiperf): HICN-723Luca Muscariello3-35/+160
- move infra data structure into the shared lib - new packet cache using double hashing and lookup on prefix suffix - testing updates - authenticated requests using interest manifests 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: Olivier Roques <oroques+fdio@cisco.com> Co-authored-by: Enrico Loparco <eloparco@cisco.com> Change-Id: Iaddebfe6aa5279ea8553433b0f519578f6b9ccd9 Signed-off-by: Luca Muscariello <muscariello@ieee.org>
2022-03-31feat: boostrap hicn 22.02Luca Muscariello6-2704/+3777
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>
2021-07-06[HICN-713] Transport Library Major Refactoring 2Mauro3-0/+3631
Co-authored-by: Luca Muscariello <muscariello@ieee.org> Co-authored-by: Michele Papalini <micpapal@cisco.com> Co-authored-by: Olivier Roques <oroques+fdio@cisco.com> Co-authored-by: Giulio Grassi <gigrassi@cisco.com> Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I5b2c667bad66feb45abdb5effe22ed0f6c85d1c2