aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-04-15[HICN-690] Transport Library Major RefactoryLuca Muscariello276-3007/+20362
The current patch provides a major refactory of the transportlibrary. A summary of the different components that underwent major modifications is reported below. - Transport protocol updates The hierarchy of classes has been optimized to have common transport services across different transport protocols. This can allow to customize a transport protocol with new features. - A new real-time communication protocol The RTC protocol has been optimized in terms of algorithms to reduce consumer-producer synchronization latency. - A novel socket API The API has been reworked to be easier to consumer but also to have a more efficient integration in L4 proxies. - Several performance improvements A large number of performance improvements have been included in particular to make the entire stack zero-copy and optimize cache miss. - New memory buffer framework Memory management has been reworked entirely to provide a more efficient infra with a richer API. Buffers are now allocated in blocks and a single buffer holds the memory for (1) the shared_ptr control block, (2) the metadata of the packet (e.g. name, pointer to other buffers if buffer is chained and relevant offsets), and (3) the packet itself, as it is sent/received over the network. - A new slab allocator Dynamic memory allocation is now managed by a novel slab allocator that is optimised for packet processing and connection management. Memory is organized in pools of blocks all of the same size which are used during the processing of outgoing/incoming packets. When a memory block Is allocated is always taken from a global pool and when it is deallocated is returned to the pool, thus avoiding the cost of any heap allocation in the data path. - New transport connectors Consumer and producer end-points can communication either using an hicn packet forwarder or with direct connector based on shared memories or sockets. The usage of transport connectors typically for unit and funcitonal testing but may have additional usage. - Support for FEC/ECC for transport services FEC/ECC via reed solomon is supported by default and made available to transport services as a modular component. Reed solomon block codes is a default FEC model that can be replaced in a modular way by many other codes including RLNC not avaiable in this distribution. The current FEC framework support variable size padding and efficiently makes use of the infra memory buffers to avoid additiona copies. - Secure transport framework for signature computation and verification Crypto support is nativelty used in hICN for integrity and authenticity. Novel support that includes RTC has been implemented and made modular and reusable acrosso different transport protocols. - TLS - Transport layer security over hicn Point to point confidentiality is provided by integrating TLS on top of hICN reliable and non-reliable transport. The integration is common and makes a different use of the TLS record. - MLS - Messaging layer security over hicn MLS integration on top of hICN is made by using the MLSPP implemetation open sourced by Cisco. We have included instrumentation tools to deploy performance and functional tests of groups of end-points. - Android support The overall code has been heavily tested in Android environments and has received heavy lifting to better run natively in recent Android OS. Co-authored-by: Mauro Sardara <msardara@cisco.com> 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> Change-Id: If477ba2fa686e6f47bdf96307ac60938766aef69 Signed-off-by: Luca Muscariello <muscariello@ieee.org>
2021-04-09Merge "[HICN-696] packethicn: add support for native hicn and fix find ↵transport-ngMauro Sardara3-42/+12
wireshark for macOS"
2021-04-09[HICN-696] packethicn: add support for native hicn and fix find wireshark ↵Marco Trinelli3-42/+12
for macOS Allow wireshark to parse native hicn traffic (decode IPv6 traffic as HICN, by default) Fix find_package(wireshark) for macOS, to automatically find wireshark sources in macOS Signed-off-by: Marco Trinelli <marcotrinelli@gmail.com> Change-Id: I95599a894b91685ab1f274b1fa8d75efe6b96178 Signed-off-by: Marco Trinelli <marcotrinelli@gmail.com>
2021-04-06Merge "[HICN-692] Fix deb package installation of packethicn"Mauro Sardara5-26/+69
2021-04-06[HICN-692] Fix deb package installation of packethicnMarco Trinelli5-26/+69
Signed-off-by: Marco Trinelli <marcotrinelli@gmail.com> Change-Id: I3c916807904d78c17a3444808f904b9c0cf0a4f5
2021-04-01Merge "[HICN-694] Do not use prefix received by server when autoconfiguring ↵Jacques SAMAIN1-1/+0
http-proxy"
2021-04-01[HICN-694] Do not use prefix received by server when autoconfiguring http-proxyMauro Sardara1-1/+0
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: Ibe623ddffbde7679d41946c18e3381854db0b779
2021-03-25Merge "[HICN-688] Include packethicn in hicn build"Luca Muscariello11-6/+575
2021-03-25[HICN-688] Include packethicn in hicn buildMarco Trinelli11-6/+575
Add license headers Add dependencies Fix build for Ubuntu 18.04 Move doc Signed-off-by: Marco Trinelli <marcotrinelli@gmail.com> Change-Id: Ie92268d2d3a47c47746107ac6f9c34b21949671c
2021-02-16HICN-686 Wrong type definition for HICN_TYPE_IPV4_TCP_AH and ↵Mauro Sardara1-2/+2
HICN_TYPE_IPV4_ICMP_AH Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I3a9f3a26bafd0d3711090dc151f587148851f5b6
2021-02-11[HICN-683] Add clang format for hicn-plugin.Mauro18-2218/+1929
As vpp has moved away from the dear old indent, also the hicn plugin should do the same and use clang-format. Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: Iee896f3ce01cef53b1acfccbebeef66ca77add7d Signed-off-by: Mauro Sardara <msardara@cisco.com>
2021-02-11HICN-685 Fix package script for centos8Mauro Sardara1-2/+2
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I4a683dc37e6669d51e001604c41221efb26fb0de
2021-02-11HICN-685 Fix package script for centos8Mauro Sardara1-0/+3
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I9973034088879b23cc0de6116d65c3a70272a706
2021-02-11HICN-685 Fix package script for centos8Mauro Sardara2-15/+3
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I84c0461d5a7869b38a676f3a02a53080e32d271c
2021-02-10[HICN-682] Fix hicn-plugin to be compatible with version 21.01Mauro Sardara11-1031/+919
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: Ia116ad74ce78e2ca2d7ee624eea75a38936d27f8 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2021-02-10Merge "[HICN-679] Do not throw exception when receiving corrupted/not-hicn ↵v21.01-rc0Mauro Sardara6-22/+31
packet from network layer"
2021-02-05[HICN-681] Remove compilation warning in ubuntu 20.04 jobs.Mauro Sardara3-15/+13
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: Id9666941d2a84d5deb75716a410abe9305923531 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2021-02-05[HICN-679] Do not throw exception when receiving corrupted/not-hicn packet ↵Mauro Sardara6-24/+35
from network layer Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I082e3c1b5fc9f535089114cfe14940f094947b66 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2021-01-27Merge "[HICN-677] Add link flag to workaround undefined symbols referenced ↵Michele Papalini1-0/+4
in vpp libraries."
2021-01-27[HICN-677] Add link flag to workaround undefined symbols referenced in vpp ↵Mauro Sardara1-0/+4
libraries. Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I9d628826374a38aaab749270dac1ca88fc9ebb35
2021-01-27Merge "[HICN-668] Fix leaks + double free"Jacques SAMAIN5-110/+96
2021-01-27[HICN-668] Fix leaks + double freeJordan Augé5-110/+96
Change-Id: I88795e5dc2a55df7ffee5cf66a9bd4fa5652e353 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2021-01-26[HICN-677] Fix compilation error for tests in ubuntu bionic.Mauro Sardara1-42/+1
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I5ee18d4039a40bf47e889b90748bdbd94987a5ed
2021-01-26[HICN-677] Add support for unit testing across all subprojectsMauro Sardara15-133/+113
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I7fa6442f53860fe8dcda3c17b63cfca15aa26c63 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2021-01-22[HICN-676] Memory leak fix in VerifierJacques Samain1-0/+1
Signed-off-by: Jacques Samain <jsamain@cisco.com> Change-Id: If4f45a48734ac8220701899ef179ec5498b0c49d
2021-01-20[HICN-668] Fix leaks + double freeJordan Augé2-8/+23
Change-Id: I976659b160654b511f712e65c8439b91d1cabd55 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2021-01-20[HICN-668] Fix leaks + double freeJacques Samain3-3/+6
Signed-off-by: Jacques Samain <jsamain@cisco.com> Change-Id: Ic52adacaeee737120f08e4fece93eff44fa29f87
2021-01-19Merge "[HICN-668] Fix various leaks across codebase"Mauro Sardara2-7/+23
2021-01-19[HICN-668] Fix various leaks across codebaseJordan Augé2-7/+23
Change-Id: I0d2e9846ebb9f784220de78d6103295c19d73409 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2021-01-19Merge "[HICN-653] Add hicn repo to build script"Mauro Sardara1-0/+4
2021-01-19[HICN-657] Remove common.h dependency in collectd pluginsOlivier Roques6-60/+46
In Ubuntu 20.04, the file common.h is not shipped with collectd packages anymore. This patch removes that dependency from the collectd plugins. Change-Id: I234389ee9cbfd1f1820efdb34d532a7b11618206 Signed-off-by: Olivier Roques <oroques+fdio@cisco.com>
2021-01-19[HICN-675] Handle invalid face polled from hicn-light in facemgrJordan Augé2-2/+9
Change-Id: Icf2868033d98f6bbd091418c3632dab733621894 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2021-01-16[HICN-674] change android class in facemgrAngelo Mantellini3-39/+39
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com> Change-Id: I585b4e03e7e01513b553c685e9845943ff02508a
2021-01-13[HICN-667] http proxy does not compile on android with ndk 22Angelo Mantellini1-1/+1
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com> Change-Id: Ib372cdda8096083412f202377ac0310f497a950b
2021-01-11[HICN-672] comment by default the use the priority controller in androidAngelo Mantellini1-1/+1
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com> Change-Id: I83832c6dff83a543dc5c92429a4b261a390c54b1
2021-01-08[HICN-670] -Wno-c99-designator does not existing in order clang versionsJordan Augé1-1/+11
Change-Id: Ia56f828fe086be6b01e5366f601fcd0a3066ff2f Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2021-01-08Merge "[HICN-669] policy_t yet used in mac os 11"Angelo Mantellini7-16/+16
2021-01-08[HICN-669] policy_t yet used in mac os 11Angelo Mantellini7-16/+16
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com> Change-Id: I8d5d5c37eaab3f84a920f1753591fa4ab09f4799
2021-01-07[HICN-668] Fix various leaks across codebaseJordan Augé4-7/+4
Change-Id: If08eeebd4ab033e33e15809ad3b1a5cb74e83d90 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2021-01-05[HICN-668] Fix various leaks across codebaseJordan Augé7-26/+68
Change-Id: I114e4e5d3e5bf4feb3d367b3f442c165ee193755 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2020-12-22[HICN-667] http proxy does not compile on android with ndk 22Angelo Mantellini1-0/+2
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com> Change-Id: Ib3f3bd89678f1b29eb25bf502a1e8bd5285d7d84
2020-12-17Merge "[HICN-666] Fix libhicnctrl-memif dependencies."Mauro Sardara1-2/+2
2020-12-17[HICN-666] Fix libhicnctrl-memif dependencies.Mauro Sardara1-2/+2
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I3a26082859fcfada51d59511b7eda4f03313a68b Signed-off-by: Mauro Sardara <msardara@cisco.com>
2020-12-17Merge "[HICN-666] Fix libhicntransport-memif dependencies."Mauro Sardara2-5/+4
2020-12-17[HICN-666] Fix libhicntransport-memif dependencies.Mauro Sardara2-5/+4
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I5315d3e4d591c35c57b3a11cd49e676c3391056c Signed-off-by: Mauro Sardara <msardara@cisco.com>
2020-12-14Merge "[HICN-665] Convert headers to lower-case before storing them."Luca Muscariello1-1/+4
2020-12-14[HICN-665] Convert headers to lower-case before storing them.Mauro Sardara1-1/+4
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I4bbd5c4adc56330eb3f5543c2b542d60e3135d1a
2020-12-14[HICN-660] Add priority priority control example based on RSSIJordan Augé1-3/+9
Change-Id: I745ad264b00e7fd3f7d09a9653779911f07becab Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2020-12-10[HICN-658] Increase memif ring size.Mauro Sardara1-3/+2
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I6d461bdaef608f77590f1809a97f4ce49ecef2ef
2020-12-10[HICN-658] Return error if buffer allocation fails in memif connector.Mauro Sardara1-3/+3
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: Ie2cf44229bda3d9bf72a67df45e919067c206a7e