Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
Change-Id: Ifab987a17255e20077242888b052e312f9e4c964
Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
|
|
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
|
|
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>
|
|
control api
Change-Id: Id097368dcde993775f206623195cc5aa57b4fe12
Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
|
|
Change-Id: If3f9a7db1e1310fdc08d1003b28e5e1d4006b61e
Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
|
|
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: Ib31e731c02341234169bd5163eb86fe1da900e40
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
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
|
|
|
|
|
|
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I654843c3361c7bdb4b160f2441f08e8d91e97384
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
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>
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: Id8f59c9c52d7c1fa21edbae9ee1b965b25fe6800
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I2e52d002533706abdd82fbca5ebb80e81374de86
|
|
wainting for the timeout
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I84074d106bf2cfd3f7a3fb02947198179b0b5b74
|
|
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>
|
|
header file."
|
|
Change-Id: I1ce0b705db98f4042470a7b80b422720ba03c0f6
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Change-Id: Ie22572822b9ac1e6c300fd7982035c799546bd76
Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I1e6fdada9a55e0a93b8d5db768124f2e47daf05b
|
|
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: Iaf947ac6c7763ba0a648f9cc865ca0f11cb3e31f
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I5ab36c5dde449ff0f3e0372372c09dbb227aecf5
|
|
|
|
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I735764cf2520182ae46bd2b18f1dc87355a57d85
|
|
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: Id9fb3a5ae6355e901ba2f2d4a93e8ad241b4410c
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I80009d5e5fc89ede4f56a9c9a5e3c2940ae13562
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I119f2a4b4b7153e8da7ca891112f4f0ddf8251e5
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: Iae4e0bbc5a1e534fd3727d02804aba370378af00
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I9777e445acf0dd0f70af0a9446b3b9a1424c0c6f
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I4ac176a11ed6f0b964274240dc0969051911183d
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I4a5fe9c954713dc266e7aeb5f461b460d508d8e3
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I29d9720450f8cee429eb02a494092f208c298355
|
|
causes invalid writes
Change-Id: Ia171dac11f65dab295b3523222145215f21a6f4f
Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: Ie69909e3984faac777f9fc3b3e0625e8de3a7771
|
|
|
|
Change-Id: I16c8059ce537f338c15434acc87ac0e4baf87049
Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
|
|
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: Ib6511d82abc91e9008588cd2b7fd80022c6d232b
|
|
Change-Id: I43adc62fadf00690b687078d739788dffdc5e566
Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
|
|
Change-Id: I2edb971f43ed4ad2165349345999a7af871323da
Signed-off-by: michele papalini <micpapal@cisco.com>
|
|
Change-Id: I1b02b9338e43de27cf90b4a11121c54a00ed428a
Signed-off-by: michele papalini <micpapal@cisco.com>
|
|
Change-Id: I69d331aa6e953e802e2f4b3e60325f852941fd94
Signed-off-by: michele papalini <micpapal@cisco.com>
|
|
find performed by hicn-light.
Change-Id: Ic1d3fe123b099e63a37bcb0c03e00a7c81f509f1
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
system.
Added libmemif-dev dependency libmemif.
Change-Id: I3fc417da65c1dfc6717c56d92f94a12fc019a9bd
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
Change-Id: Ie8662059163b7a01211bb18fb8f6b77bbbc07279
Signed-off-by: Mauro Sardara <msardara@cisco.com>
|
|
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>
|
|
vpp_1908"
|