53 Commits
Author SHA1 Message Date
Davide Pesavento e422f9e1e9 Refactor and modernize namespace declarations
Move all unit tests to namespace nfd::tests

Delete unused header core/algorithm.hpp

Change-Id: I5591f0c5f3bb5db67f8b45fae95471f8a555ca68
2022-06-11 20:10:26 -04:00
Davide Pesavento b7bfcb904a build: switch to C++17
Change-Id: Ie68020a04b7e20b74778b6d0370544ded55c5e26
2022-05-23 03:42:32 -04:00
Ashlesh Gawande 1ef93d0316 fw: add strategy parameters to configure exponential retx suppression
Supported by ASF, BestRoute, and Multicast strategies

Refs: #4924
Change-Id: I215d9212d90b93fa622cc65278703dc5198d0c9d
2022-04-08 00:27:27 -04:00
Junxiao Shi 727b61087a table+fw: update ForwardingHint format
refs #5187

Change-Id: Ic8e32c83caeb60404f1b035a4f7e9841cc513f0b
2022-01-11 18:40:04 +00:00
Davide Pesavento 412c982a63 Reduce usage of std::bind()
C++14 lambdas are easier to read, easier to debug,
and can usually be better optimized by the compiler.

Change-Id: I294f275904f91942a8de946fe63e77078a7608a6
2021-07-02 00:21:05 -04:00
Davide Pesavento 0498ce85b0 fw: reorder function params to make the strategy API more uniform
Also add a non-const overload of Face::getCounters to avoid const_cast

Refs: #5173
Change-Id: Iff0bfbdedb90e68a373090cf3f247d9a7501f58d
2021-06-14 14:18:03 -04:00
Eric Newberry 2377ada11a fw: handle dropped packets in strategies
refs #5128

Change-Id: Ic7f7e61b2dde66004d0291bb41e008961fc7b252
2020-10-04 21:06:43 -04:00
Teng Liang ebc20f6000 fw: remove EndpointId from egress APIs
This commit partially reverts c707948105

refs: #4849, #4973
Change-Id: I1063e5de2c0e3c90971c4ae006ce46de386c2ed0
2020-07-01 21:34:13 -04:00
Ju Pan 2feb4596a9 fw: add processing for afterNewNextHop signal
Refs: #4931
Change-Id: I08bddc0ae3ceca0ddb777392ea656876ad6fe701
2019-11-06 13:10:57 -08:00
Davide Pesavento a4abfb010f fw: pull FaceTable construction out of Forwarder class
Refs: #4922, #4973
Change-Id: Ibbd4a8840cb0d01ebbd4cabf9c34fa78a1d23db1
2019-10-06 16:08:01 -04:00
Junxiao Shi 606d5ddc9e face+fw: store and return PitToken from downstream
refs #4532

Change-Id: I97b95232a242186601459622f17983d1bef806d6
2019-09-23 12:47:44 -06:00
Md Ashiqur Rahman c88d2d4a61 Revert "pit: add EndpointId field in in-record and out-record"
This reverts commit d3ae85dbad.

refs: #4973

Change-Id: I0aedfca8ae75137c8c9073a51642bfacf9d8f212
2019-09-11 17:44:17 +00:00
Davide Pesavento 2cae8cacf0 core: move nfd-specific files to daemon/
Refs: #4922
Change-Id: I2243dbb87c63f9cbaf7d7051d7a0d4bca2f9fdb5
2019-04-21 22:15:03 -04:00
ashiqopu c707948105 fw: add FaceEndpoint parameter in Forwarding and Strategy API
refs: #4849

Change-Id: Ibe22557488fa83a555fd13d6eb8e03f8d81d0b2b
2019-03-06 02:27:50 +00:00
ashiqopu d3ae85dbad pit: add EndpointId field in in-record and out-record
refs: #4842

Change-Id: Id4bca4ad9c2d7c8a2fd975c0b052fb9271b6e47d
2019-02-18 00:07:10 +00:00
Davide Pesavento b8bd5ee965 core: use ndn-cxx's getRandomNumberEngine()
Change-Id: I3b5b3ac5238d47ac14481b21d0303c63d0c93b56
2019-02-04 18:52:05 -05:00
Davide Pesavento a3148081ce core: reimplement logging using ndn-cxx's facility
Change-Id: Ifc7c5d70a61ad405dc1f1adfa522a2c0ad1586ab
Refs: #4580
2018-05-05 23:04:22 -04:00
Davide Pesavento 87fc0f8d6f core: drop std::function and ndn::Exclude from common.hpp, add ndn::optional
Change-Id: Ie3983d8b6f9929430efd8ada8d942e3f95755cd4
2018-04-12 14:23:40 -04:00
Teng Liang 43bb2315ea fw: introduce afterReceiveData strategy trigger
Change-Id: Ia805f1bd48f481c9b903b6ce5c388dd66fbbb7d1
refs: #4290
2018-04-10 05:30:36 -07:00
Teng Liang 85a36632a7 fw: introduce afterContentStoreHit strategy trigger
Change-Id: I71ca9e21467d2296203eb9686bff7647b1140271
refs: #4290
2018-03-22 21:57:06 -07:00
Teng Liang 63086448bf fw: remove onInterestUnsatisfied pipeline stage
Change-Id: Ic008bb26b87db176bac8d51230e53f923b19e5d2
refs: 4290
2018-02-27 13:20:11 -07:00
Eric Newberry 41aba10d3d fw: add strategy notification for Interests dropped by LpReliability
add dropped Interest counter to faces

refs #3823

Change-Id: I9910b66932d74383203e8f3732bb45cade83b972
2017-11-20 18:10:52 -08:00
Junxiao Shi fc2e13d58d fw: replace Link with forwarding hint
Forwarding now processes forwarding hint on Interests,
and no longer considers the Link object.

refs #4055

Change-Id: I0331687ee8ec31afa2f1a105e903670689647c4d
2017-07-25 02:08:48 +00:00
Junxiao Shi f9858fdd1a fw: strip Link object when Interest reaches producer region
refs #3893

Change-Id: I7cb0a58f75eb4275bbf0fe0c7dcdb583c8519644
2017-02-02 06:07:52 +00:00
Junxiao Shi 55e21b9e17 table: clear StrategyInfo only if Strategy type differs
refs #3868

Change-Id: I164ccba3bd6c69cef9d2ebba303f8d8d941aac99
2017-01-25 09:29:02 -05:00
Junxiao Shi 91f6ee0c72 fw: instantiate strategy of next higher version
When an exact strategy version is unavailable, strategy registry now
instantiates the next higher version which can offer backwards compatibility.

All existing strategies do not support other versions.

refs #3868

Change-Id: Id2cf9ae3a1fa078ce8be815eea9396f5aa81ecbb
2016-12-29 21:44:44 +00:00
Junxiao Shi 18739c4ac1 fw: pass parameters to Strategy subclass constructors
refs #3868

Change-Id: I1a09e7353c047d548065c4ed669d1f7993676428
2016-12-22 08:03:00 +00:00
Junxiao Shi c34d167b91 fw: refactor Strategy registry
Strategy registry is moved into Strategy class.
Strategy instantiation logic is implemented in Strategy::create.
These are in preparation of supporting Strategy parameters.

refs #3868

Change-Id: If36a08ad25a00a7008a5eccc8cfe4f6c63638676
2016-12-09 15:57:59 +00:00
Junxiao Shi 57cda13f7b fw: delete deprecated Strategy::sendInterest overload and violatesScope
refs #1756, #3841

Change-Id: Idd5fb5692435c864a0a9b140992e615b280243a3
2016-12-01 23:43:01 +00:00
Junxiao Shi 00dc91423e fw: localhop scope restriction in BestRouteStrategy2
localhop scope rules are implemented as wouldViolateScope function;
the old violatesScope function is now deprecated.
Strategy::sendInterest overload without specific Interest packet is also
deprecated. BestRouteStrategy2 has switched to use the new overload.

refs #3841, #1756

Change-Id: Ic117f01926eadddf1da3ccb580b52a3903a70c89
2016-11-21 14:23:12 +00:00
Junxiao Shi c5f651f014 fw: allow strategies to pick outgoing Interest
This commit changes outgoing Interest pipeline and Strategy API,
to give strategies an opportunity to pick an outgoing Interest that
matches the Interest table entry.
No strategy is updated in this commit.

refs #1756

Change-Id: Iffad77ef0078c437070039fca6b24a85df13bda7
2016-11-17 22:58:12 +00:00
Junxiao Shi cf0f3ce319 fw: move Forwarder::lookupFib to Strategy::lookupFib
refs #3664

Change-Id: Ib4dd2354d853f7d6455bf08bb6b863b5f77076c1
2016-09-02 13:01:59 +00:00
Junxiao Shi b9420cf0c1 fw: accept const shared_ptr<pit::Entry>& in Forwarder pipelines and Strategy actions
refs #3205

Change-Id: Ia683fb1a9e301270f99bcdd4d97493abf3dbec9f
2016-08-13 04:38:52 +00:00
Junxiao Shi 15e98b00f5 fw: pass const shared_ptr<pit::Entry>& to Strategy triggers
refs #3205

Change-Id: I8f227c57ee6733526f0569de81f20677210cafa4
2016-08-12 11:21:44 +00:00
Junxiao Shi 9cff779038 table: pit::FaceRecord stores Face& instead of shared_ptr
refs #3164

Change-Id: Ib23ab2341a37213fee791f2070f13b76da851d53
2016-08-01 21:45:11 +00:00
Junxiao Shi 8d843148d2 fw: eliminate fibEntry in Strategy API
Strategy::lookupFib can be used to obtain FIB entry.
FIB lookup is skipped when strategy does not need it.

refs #3205

Change-Id: Icba67229cbc261d9def44ffa91461ea4b09982b2
2016-07-11 22:42:42 +00:00
Junxiao Shi 4846f37117 table: simplify pit::Entry API
refs #3546

Change-Id: I6a9cb83b9e56ce1d1bb6047049378c51781605af
2016-04-05 13:39:30 -07:00
Junxiao Shi cde37ad608 face: face refactoring completion
* delete old Face
* rename LpFace as Face
* eliminate LpFaceWrapper and use new Face

refs #3172

Change-Id: I08c3a5dfb4cc1b9834b30cccd9ab634535d0608c
2015-12-24 01:02:05 -07:00
Junxiao Shi 5e5e445182 fw: Nack in pipelines and best-route strategy
* in PIT out-record, add last incoming Nack field
* create incoming Nack pipeline
* create outgoing Nack pipeline
* modify Interest loop pipeline to send Nack upon duplicate Nonce
* in strategy API, add after receive Nack trigger and send Nack action
* in best-route strategy, send Nack-NoRoute before rejecting pending Interest
* in best-route strategy, process incoming Nack

Other changes include:

* Pit::find
* StrategyTester saved arguments structs
* TopologyTester transmit at Transport level

refs #3156

Change-Id: I7868561c0838231083d471261200aeb280cc6e9d
2015-09-26 14:38:03 -07:00
Junxiao Shi 35353963db table: MeasurementsAccessor findLongestPrefixMatch & findExactMatch
This commit also improves unit testing of MeasurementsAccessor,
and changes signature of MeasurementsAccessor constructor.

refs #2314

Change-Id: Ie0494628c6d3faac0473bc4cfb21998f89270aaf
2015-01-09 14:04:43 -08:00
Junxiao Shi 49e11e797e fw: give strategy access to FaceTable
refs #2272
Change-Id: I1a390dac1da8489adcffb71d488b3b8a52d257bd
2014-12-15 11:31:01 -08:00
Junxiao Shi 82e7f58c4f fw: NccStrategy remembers only best face
refs #1961

Strategy::beforeSatisfyPendingInterest is renamed to
Strategy::beforeSatisfyInterest, so as to match the semantics of this trigger.
This is a backwards-incompatible change that requires function renaming in
all subclasses of Strategy class.

LimitedIo::afterOp gets a bugfix that allows it to be invoked out of
LimitedIo::run without leaving io_service unusable.

Change-Id: Ia4c632beb62c554724b83846a3d6358ae08779ad
2014-09-07 15:21:02 -07:00
Alexander Afanasyev 9bcbc7c130 docs: Update of copyright and license statement in all .hpp and .cpp files
Change-Id: I4082db67f2390482615a780d91a513f09d57a9a4
Refs: #1266
2014-04-07 09:18:25 -07:00
Steve DiBenedetto bf6a93da4e core: change logging from environment variable to configuration file-based
GlobalConfigurationFixture uses unit-tests.conf to determine default
and module specific logging levels. Logging will gracefully default to
INFO if unit-tests.conf is not found. See unit-tests.conf.sample for a
sample configuration file.

refs: #1375, #1267

Change-Id: Ib0c4eb4149748e6658f94ef1afa23ddd3072c0fa
2014-03-31 20:46:51 -06:00
Junxiao Shi 7bb01512b0 table: MeasurementsAccessor uses StrategyChoice
This commit also deletes fib::Entry::set/getStrategy attribute.

refs #1276

Change-Id: I57dfe842a8024e0ad9908ba8a9c415d5f4ac1bbe
2014-03-06 07:06:29 -07:00
Junxiao Shi 2d9bdc8a5f fw: ClientControlStrategy
refs #1214

Change-Id: Ia382acad6c8eeac85663fd664d1d34ba6f2ad478
2014-03-05 01:46:12 -08:00
Junxiao Shi bb5105f218 table: Strategy Choice table
refs #1309

Change-Id: I6fd8efdfc98175a1cc39fdc3aa7175671596f470
2014-03-05 09:27:51 +00:00
Junxiao Shi 09498f0646 fw: rename "Interest rebuff" to "Interest reject"
Change-Id: I8275354a3eff6f4785187a8fb00da1d421df8460
2014-02-26 19:43:22 -07:00
Junxiao Shi dbe7173db1 table: MeasurementsAccessor for strategy
refs #1276

Change-Id: Idec8f615c726f51612236a55a7532fabeb81a32d
2014-02-24 23:32:48 -07:00
Junxiao Shi 22be22c868 fw: Strategy::beforeSatisfyPendingInterest trigger
refs #1254

Change-Id: I817fc4d354e52170fb4b5d2493b66c8cca0fbda2
2014-02-17 19:46:49 -07:00