Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com>
Change-Id: Ie408cf35737b8c66d6de3ef49c2990ff4c868a50
|
|
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com>
Change-Id: I3ed763941fa58bdfc61b9462d3f3bd268d5a76ed
|
|
Signed-off-by: Angelo Mantellini <@ngelo.mantellini@cisco.com>
Change-Id: I05e4c92ce7de3640f0272afae127e1377862bd3e
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com>
|
|
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>
|
|
packet from network layer"
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: Id9666941d2a84d5deb75716a410abe9305923531
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
from network layer
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I082e3c1b5fc9f535089114cfe14940f094947b66
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
libraries.
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I9d628826374a38aaab749270dac1ca88fc9ebb35
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I5ee18d4039a40bf47e889b90748bdbd94987a5ed
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I7fa6442f53860fe8dcda3c17b63cfca15aa26c63
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Signed-off-by: Jacques Samain <jsamain@cisco.com>
Change-Id: If4f45a48734ac8220701899ef179ec5498b0c49d
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I5315d3e4d591c35c57b3a11cd49e676c3391056c
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I4bbd5c4adc56330eb3f5543c2b542d60e3135d1a
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I6d461bdaef608f77590f1809a97f4ce49ecef2ef
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: Ie2cf44229bda3d9bf72a67df45e919067c206a7e
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I5b0d40a8f5f713109f492609bf1c9dcede189b68
|
|
Independently of the type of tunnel, encapsulated packet
can be either v6 or v4, so we need to create 2 faces for each
version of the tunnel. Currently we are wrongly associating v4
tunnels with v4 packets and v6 tunnel with v6 packets.
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I81e6e4b8b71ae7949d27065cc61b1b5b23db6a8d
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: Ie3b48148dcb3f782a1ca906a5ba59d605f17f93e
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I42d69455542f3def0076fe58020f8f10347ef83f
|
|
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I6b431db78de2427251d6050dfaff38a741efd9bd
|
|
Signed-off-by: Giulio Grassi <gigrassi@cisco.com>
Change-Id: Ie98870659463fae060ea135ea3a6ce40be905ad0
|
|
service
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I1810d96e001a4e6e097e1efa331b682af750925d
|
|
This reverts commit 5cf2d8077c19387a2d257f0f7804209c7dd7cbb7.
Reason for revert: Merged into wrong branch
Change-Id: I41b9d9fccc29b388ffd2f5408dbe8ecb708443f8
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I5fa166fe9de506e3a600d88f3db442f07e7fe688
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
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>
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I626acb5f79a85b167d50da5c07fa597a9ff4d239
|
|
Change-Id: Ica8db44e27c3a4911ea869e91f96b781809373d8
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: Iabfe133ffc2235fa2341538767ce83c2e5ad77b1
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I361c8e4f995dad976cc717c5027bcacdb2ba65f5
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Also force transports to use base method TransportProtocol::start() instead
of redefining their own start(), in order to have the callbacks and the
boolean is_async_ initialized upon protocol start.
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I780b26cca5b8dc59f0def5c08a032bbc90371acd
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: Ic4b08e7eb0f01c9e5710d4da1ca68c6120dcd57e
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I9091cd8ef0f9da869b886541a0116adf3f30e6b9
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com>
|
|
Change-Id: I6a76b31b743f155a2d9f7b88e84b838265aab6c8
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Change-Id: Ic1952388e1d2b1e7457c71ae8a959d97aa0cd2d6
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com>
Change-Id: Ia3a929c4734b660a8feb03d1656d2ff3e35de991
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com>
|
|
|
|
- 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
|
|
HICN-2 would enable TLS only if OpenSSL 1.1.1 was present.
However the mechanism to do so was broken and hiperf always
ended up using normal consumer and producer sockets.
This patch fixes that by updating the build files. It also fixes
various bugs in the TLS implementation that went unnoticed and
cleans up the code.
Change-Id: Ifda75a9929e14460af43fe79d737d0c926bb671e
Signed-off-by: Olivier Roques <oroques+fdio@cisco.com>
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Signed-off-by: Olivier Roques <oroques+fdio@cisco.com>
Change-Id: I5c371941fcd550c676823f3f994f4a18160d632a
|
|
|
|
Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com>
Change-Id: Ic5cfeae600fde8140a076807fa1e411da1933a02
|
|
passed
Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
Change-Id: Ie0ee26a1e8bff3279cc88c4e7c09b0fdb23924c1
|
|
This patch reduces the amount of memory used by the signer and
verifier classes.
It also removes some logs from VPP collectd plugins.
Change-Id: I3dac7b9104b5586ac22dee60f506bee51ece2cbe
Signed-off-by: Olivier Roques <oroques+fdio@cisco.com>
|
|
|
|
Fix a memory leak caused during the signing of packets on the producer side
by releasing the signature when signing is done.
Change-Id: I352885913e3a16d03fcc77116238928edb090e01
Signed-off-by: Olivier Roques <oroques+fdio@cisco.com>
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I1531a1fe1d1fa51bb45edab20ee449faa34847c3
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I844dfa64a977c9c41bfc103bb110c274802b1839
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Change-Id: I8b46b4eb2ef5488c09041887cc8296a216440f33
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|