aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport
AgeCommit message (Collapse)AuthorFilesLines
2019-11-20[HICN-402] Limit in-flight interests for manifestsOlivier Roques3-2/+25
Currently, interests for manifests are sent independently of the transport protocol. When receiving a manifest, interests for next manifests are sent until the next window would be full of data segments. But there is no limit on the number of interests for manifests that can be sent. After a while, the interest input buffer in the producer's side is full of them and cannot satisfy the requests quickly enough. This results in a large drop of bandwidth on the consumer side. This patch allows to limit the number of in-flight interests for manifests. Signed-off-by: Olivier Roques <olvrqs@gmail.com> Change-Id: Ic497bd55fd92233e4b47b04635fb9bf75506375e
2019-11-15[HICN-386] Improve API error management in libhicnctrlJordan Augé1-1/+1
Change-Id: Ifab987a17255e20077242888b052e312f9e4c964 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2019-11-14[HICN-393] Fix various issues related to manifestsOlivier Roques7-20/+50
The current manifest implementation is broken: 1. ManifestIndexingManager, responsible for validating manifests and segments and retrieving the next ones, assumes that all manifests have the same size. This assumption affects the retrieval of next manifests which is based on the number of segments the current manifest contains. Therefore when a non-full manifests arrives, the computed suffix of the next manifest is wrong and refer to a content instead, which results in an error. 2. Manifests are used to update a suffix queue which stores all the segments listed in manifests. This queue is used to retrieve content sequentially via a pointer indicating the next content to fetch. When the pointer reaches the end of the suffix queue, the consumer stops sending interests. The correct behavior would be to wait for a new manifest which would update the queue. This patch fixes these two issues: 1. Issue 1 was fixed by using SuffixManifest (HICN-392). This allows to set the capacity of a manifest at the start of the consumption instead of checking each time the size of the current manifest and then using that (non-constant) value to retrieve the next manifests. 2. Issue 2 was fixed by passing to ManifestIndexingManager a reference to an object capable of calling the scheduleNextInterest function, which is then called after a new manifest is retrieved to make sure interests for content kept being sent. This is not an optimal solution but rather a temporary one, until the retrieval of manifests is done at the transport level rather than in ManifestIndexingManager. This patch also changes the order of production: manifests are now sent before content. To do so, contents are added into a queue until the manifest is complete. Signed-off-by: Olivier Roques <olvrqs@gmail.com> Change-Id: I1a1bb92ca1cf2d3c745c1b65f6c7376f916c679b
2019-11-14[HICN-392] Assign independent suffixes for manifests/contentsOlivier Roques9-42/+270
This patch introduces a new class, SuffixStrategy and two sub-classes, SuffixContent and SuffixManifest which allow to independently assign suffixes to contents and manifests respectively. The produce() function in socket_producer.cc has also been changed to use them. Given a strategy and an offset (and optionally the capacity of a manifest), these classes automatically compute the correct next suffixes for both type of data (manifest or content). This removes the burden of having to manage suffixes for instance when producing or when retrieving content, and could be expanded to add more strategy in the future. Currently the only existing strategy is "INCREMENTAL": manifests with capacity N have a suffix multiple of N+1: 0, N+1, 2(N+1) etc. Contents have a suffix incremented by 1 except when it conflicts with a manifest: 1, 2, ..., N, N+2, N+3, ..., 2N+1, 2N+3... Signed-off-by: Olivier Roques <olvrqs@gmail.com> Change-Id: Ia7692d7325240de7bea6e38b668077042e5f8758 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-11-08[HICN-385] fix route removal in hicnctrl, code uniformization in hicn-light ↵Jordan Augé3-22/+23
control api Change-Id: Id097368dcde993775f206623195cc5aa57b4fe12 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2019-11-04[HICN-262] Fix binary api to prevent byteswapping of ip addresses in vapiAlberto Compagno13-85/+91
Change-Id: If3f9a7db1e1310fdc08d1003b28e5e1d4006b61e Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-11-04Merge "[HICN-356] Fix uninitialized pointer"Alberto Compagno1-0/+2
2019-10-31[HICN-371] Fix invalid read reported by Valgrind when many timeouts happen.Mauro Sardara1-2/+3
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: Ib31e731c02341234169bd5163eb86fe1da900e40 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2019-10-31[HICN-356] Fix uninitialized pointerOlivier Roques1-0/+2
The signature verification method verify() in verifier.cc would try to initialize a pointer to the current packet's payload, which was never set in the first place. This fix calls the packet's method responsible for initializing that pointer. Signed-off-by: Olivier Roques <olvrqs@gmail.com> Change-Id: Ie5ab08036186ea4b766f6825c129ee68d01fc2b6
2019-10-31Merge "[HICN-371] Solve memory leaks in libtransport."Jordan Augé3-10/+25
2019-10-31Merge "[HICN-354] Fixed bug on raaqm when reassemblying packets"Michele Papalini5-106/+61
2019-10-31[HICN-371] Solve memory leaks in libtransport.Mauro Sardara3-10/+25
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I654843c3361c7bdb4b160f2441f08e8d91e97384 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2019-10-31[HICN-354] Fixed bug on raaqm when reassemblying packetsAlberto Compagno5-106/+61
Moved rescheduleOnIOService in the header file to allow its usage together with inheritance Change-Id: I15e4b92535e1478d0dd09828d2d13e2b77e000b3 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-10-31[HICN-361] speed up the socket start upmichele papalini1-16/+31
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: Id8f59c9c52d7c1fa21edbae9ee1b965b25fe6800
2019-10-31[HICN-318] schedule rounds using timers in rtc conusmermichele papalini2-15/+13
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I2e52d002533706abdd82fbca5ebb80e81374de86
2019-10-30[HICN-360] retransmit pending interests when all of them get lost without ↵michele papalini2-8/+105
wainting for the timeout Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I84074d106bf2cfd3f7a3fb02947198179b0b5b74
2019-10-22[HICN-342] No need to take a lock on the hash entry if the lookup forAlberto Compagno4-6/+6
a data hit the CS. Data packets coming from the network are dropped, data packets coming from an application face are either dropped or sent to the push node (which does not require a lock on the hash entry) Change-Id: Icf662dffa33b9dda2e2a69fc2104a69a82ef19fd Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-10-22Merge "[HICN-346] Add version of the transport library in the config.h ↵Michele Papalini2-0/+6
header file."
2019-10-22[HICN-346] Add version of the transport library in the config.h header file.Mauro Sardara2-0/+6
Change-Id: I1ce0b705db98f4042470a7b80b422720ba03c0f6 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2019-10-22[HICN-328] Reworking setSocketOption and getSocketOption to be thread-safeAlberto Compagno17-1365/+1755
Change-Id: Ie22572822b9ac1e6c300fd7982035c799546bd76 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
2019-10-18[HICN-339] improve rtc producer socket for low rate trafficmichele papalini2-19/+17
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I1e6fdada9a55e0a93b8d5db768124f2e47daf05b
2019-10-18Merge "[HICN-337] correlty set timers for rtx in rtc consumer"Alberto Compagno2-24/+54
2019-10-18[HICN-337] correlty set timers for rtx in rtc consumermichele papalini2-24/+54
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: Iaf947ac6c7763ba0a648f9cc865ca0f11cb3e31f
2019-10-18[HICN-338] correctly compute the estimated production rate in rtc socketmichele papalini1-4/+4
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I5ab36c5dde449ff0f3e0372372c09dbb227aecf5
2019-10-16Merge "[HICN-335] fix max win computation in RTC consumer"Mauro Sardara1-1/+1
2019-10-16Merge "[HICN-333] fix addRetransmissions in RTC consumer socket"Alberto Compagno1-1/+1
2019-10-16[HICN-335] fix max win computation in RTC consumermichele papalini1-1/+1
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I735764cf2520182ae46bd2b18f1dc87355a57d85
2019-10-16Merge "[HICN-334] remove LOG for no pending interests in portal"Alberto Compagno1-1/+1
2019-10-16[HICN-333] fix addRetransmissions in RTC consumer socketmichele papalini1-1/+1
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: Id9fb3a5ae6355e901ba2f2d4a93e8ad241b4410c
2019-10-16[HICN-334] remove LOG for no pending interests in portalmichele papalini1-1/+1
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I80009d5e5fc89ede4f56a9c9a5e3c2940ae13562
2019-10-16[HICN-332] add output buffer to the RTC producer socketmichele papalini1-8/+37
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I119f2a4b4b7153e8da7ca891112f4f0ddf8251e5
2019-10-16[HICN-331] schedule rtx at the right timemichele papalini2-14/+13
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: Iae4e0bbc5a1e534fd3727d02804aba370378af00
2019-10-15[HICN-239] retransmissions on RTCmichele papalini1-33/+37
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I9777e445acf0dd0f70af0a9446b3b9a1424c0c6f
2019-10-14[HICN-322] fix timeouts inside portalmichele papalini1-2/+8
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I4ac176a11ed6f0b964274240dc0969051911183d
2019-10-10[HICN-317] schedule rounds using timers in rtc producermichele papalini2-28/+35
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I4a5fe9c954713dc266e7aeb5f461b460d508d8e3
2019-10-10[HICN-316] improve rtc for low rate streamsmichele papalini4-107/+26
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: I29d9720450f8cee429eb02a494092f208c298355
2019-10-09[HICN-311] Incorrect copying of ip_prefix_t data & uninitialized bytes ↵Jordan Augé1-0/+2
causes invalid writes Change-Id: Ia171dac11f65dab295b3523222145215f21a6f4f Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2019-10-09[HICN-308] delete interests from interest mapmichele papalini1-6/+8
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: Ie69909e3984faac777f9fc3b3e0625e8de3a7771
2019-10-08Merge "[HICN-302] low rate traffic in RTC"Mauro Sardara3-11/+147
2019-10-08[HICN-306] Wrong representation format in ip_prefix_ntop causes parsing issuesJordan Augé1-1/+1
Change-Id: I16c8059ce537f338c15434acc87ac0e4baf87049 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2019-10-08[HICN-302] low rate traffic in RTCmichele papalini3-11/+147
Signed-off-by: michele papalini <micpapal@cisco.com> Change-Id: Ib6511d82abc91e9008588cd2b7fd80022c6d232b
2019-10-07[HICN-298] Release new hICN app for AndroidJordan Augé17-82/+82
Change-Id: I43adc62fadf00690b687078d739788dffdc5e566 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
2019-10-04[HICN-296] handle first packet received in RTC consumer socketmichele papalini2-2/+31
Change-Id: I2edb971f43ed4ad2165349345999a7af871323da Signed-off-by: michele papalini <micpapal@cisco.com>
2019-10-04[HICN-292] fix inflight interests countingmichele papalini2-19/+25
Change-Id: I1b02b9338e43de27cf90b4a11121c54a00ed428a Signed-off-by: michele papalini <micpapal@cisco.com>
2019-10-03[HICN-291] handle multiple paths in RTCmichele papalini6-132/+435
Change-Id: I69d331aa6e953e802e2f4b3e60325f852941fd94 Signed-off-by: michele papalini <micpapal@cisco.com>
2019-10-02[HICN-290] Added check if ASIO_STANDALONE already defined. Removed openssl ↵Mauro Sardara1-0/+3
find performed by hicn-light. Change-Id: Ic1d3fe123b099e63a37bcb0c03e00a7c81f509f1 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2019-10-02[HICN-286] Link libmemif with libhicntransport when libmemif found in the ↵Mauro Sardara1-4/+4
system. Added libmemif-dev dependency libmemif. Change-Id: I3fc417da65c1dfc6717c56d92f94a12fc019a9bd Signed-off-by: Mauro Sardara <msardara@cisco.com>
2019-09-24[HICN-279] Added libmemif packaging.Mauro Sardara2-20/+35
Change-Id: Ie8662059163b7a01211bb18fb8f6b77bbbc07279 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2019-09-10[HICN-273] Add zero copy produce() API to RTC producer socket.Mauro Sardara3-12/+19
This API allows to transfer the ownership of the packet from the application to the libtransport, thus avoiding to copy the packet. Change-Id: Ic26b15783648b9e8821f71e47a2d9f5130474510 Signed-off-by: Mauro Sardara <msardara@cisco.com>
2019-08-22Merge "[HICN-263] DO_NOT_MERGE Updating hicn-plugin and libtransport to ↵Alberto Compagno2-5/+13
vpp_1908"