Commit Graph

75 Commits

Author SHA1 Message Date
Junxiao Shi 2fe3af0577 fw: duplicate Nonce from same face is not loop
refs #3888

Change-Id: I973f58281dca32b5f807d7be82a49d04314cbfb1
2017-03-04 17:24:19 +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 037f4ab4b6 fw: move STRATEGY_NAME to getStrategyName static function
This avoids potential problems with static initialization order.

refs #3868

Change-Id: I13f0ff6c51c0a3bd43af7993233ff63a4bca9cf9
2016-12-13 04:27:06 +00:00
Junxiao Shi f15058ab06 table: don't share Strategy instance among StrategyChoice entries
For a Strategy type registered in the strategy registry,
a new instance is created for each StrategyChoice entry that uses it.

StrategyChoice::install is deprecated. An installed strategy instance
is still shared among StrategyChoice entries that use it. This will
be removed after unit tests switch to use the strategy registry.

refs #3868

Change-Id: Ibca685e6b6668f64fa1a503e3575867e8babdfe1
2016-12-11 20:15:05 +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 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
Davide Pesavento 5f47aa6140 core: use C++11 <random> instead of Boost.Random
Change-Id: I8f22965b86c681581762a47995f29f888421a558
Refs: #3599
2016-11-04 17:56:14 +01:00
Junxiao Shi e342e8de70 fw: honor NextHopFaceId universally
NextHopFaceId usage no longer depends on client-control strategy.

refs #3783

Change-Id: Ie49c453f90fa34b517b576fe401c8e4e8f23eab7
2016-09-18 16:48:00 +00:00
Junxiao Shi cbc8e947bf daemon+rib: add proper #include line for NDNLPv2 tags
refs #3755

Change-Id: I3ab279405aca7c7139e8d0e8e662eb3ea7200045
2016-09-06 03:17:45 +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 9685cc5682 mgmt: tables.cs_unsolicited_policy config option
This commit introduces tests/check-typeid.hpp which provides
unit testing tools to validate runtime type information.

refs #2181

Change-Id: I987c9875517001ea82878cbe2646839a03ad54f3
2016-08-29 12:47:05 +00:00
Junxiao Shi fbe8efea55 fw: UnsolicitedDataPolicy
The decision of whether to cache or drop an unsolicited Data is moved from
Data unsolicited pipeline to UnsolicitedDataPolicy.

refs #2181

Change-Id: Iba3e72c2214e0ac5f6f305c2c1c0ed182b008e85
2016-08-22 16:02:30 +00:00
Junxiao Shi dbef6dc8e2 table: Pit::erase accepts Entry* instead of shared_ptr
refs #3164

Change-Id: I9ff47c80865da42b09870c632707dffd78ed76b9
2016-08-15 02:58:36 +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 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 02b73f5705 table: delete PIT in-record and out-record when face is destroyed
refs #3685

Change-Id: I3c20417c9a30db69c90c9d59a30af1529bc1f98e
2016-07-28 01:48:27 +00:00
Junxiao Shi dcffdaafb5 fw: decouple Forwarder and FaceTable
refs #3679

Change-Id: I449e20e58a0a67a7172bdf3ab02b0d655149690f
2016-07-26 02:23:56 +00:00
Junxiao Shi a6de4290c8 table: don't use shared_ptr in FIB
refs #3164

Change-Id: I5b5eb47d60f6bf5b6389c32ac840f793767e4334
2016-07-12 02:08:10 +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 05cc50ae37 fw: Forwarder::lookupFib
refs #3664

Change-Id: I0e0cc3de997653c93db9b7c89e81ea73b4fb12ac
2016-07-11 22:38:21 +00:00
Junxiao Shi 891f47bcfa fw: outgoing Interest pipeline prefers newest in-record
refs #3642

Change-Id: I591a9a9c2efdcb4607b69f2c3be584110f9e14aa
2016-06-20 00:02:11 +00:00
Junxiao Shi f3410d8c59 fw: use scope_prefix::LOCALHOST in Forwarder
refs #3546

Change-Id: I10a05b642284e7466746cac121d13e7948ca8667
2016-04-05 13:49:44 -07:00
Junxiao Shi 4846f37117 table: simplify pit::Entry API
refs #3546

Change-Id: I6a9cb83b9e56ce1d1bb6047049378c51781605af
2016-04-05 13:39:30 -07:00
Junxiao Shi fef73e4b86 table+fw: move forwarding semantics out of PIT entry
refs #3546

Change-Id: I1e6f87fd81176c116b6d758156da1cf96ea03608
2016-03-29 14:15:05 -07:00
Junxiao Shi 330136a89e fw: fix PIT leak from DNL-detected duplicate Nonce
refs #3484

Change-Id: Id5928356a39b2f8988b6d4969c15ac744d283e3f
2016-03-10 04:53:08 -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 0de23a29c5 face: use IncomingFaceId, NextHopFaceId, CachePolicy tags
This commit replaces all LocalControlHeader usages with these tags,
and deletes LocalFace.

This commit also does minor improvements in RIB test suites.

refs #3339

Change-Id: I14cbfc296a6723a5860bf8bd95d9804d3bac3da5
2015-12-03 20:07:02 +00:00
Junxiao Shi da93f1fd0c face: LpFace counters
FaceCounters for LpFace consist of LinkService::Counters and
Transport::Counters. Old FaceCounters class from 2014 face architecture is
renamed as OldFaceCounters, and can be wrapped with new FaceCounters class.
OldFaceCounters is only used in old Face subclasses.

This commit also updates existing face test suites to use new FaceCounters,
updates ForwarderStatus so that it does not rely on FaceCounters,
and moves the logic of copying face properties and counters into management
structs from face system into FaceManager.

refs #3177

Change-Id: I587e8a32fa72bac3af9d750b2c88342740aa08d6
2015-11-11 06:13:16 -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 0355e9fd06 fw: Forwarder processes Link for mobility
This commit also adds NetworkRegionTable to store producer region names,
and checks packets are well-formed before entering forwarding pipelines.

refs #3034, #3155

Change-Id: I8de4c482e8a289b922be70139675bc4661f9a301
2015-09-02 07:24:53 -07:00
Vince Lehman faa5c0cd3c fw: Correct log message in onContentStoreHit
refs: #3114

Change-Id: I918cffc5d0551484b4cc31a4b7d6aeb73b8969ae
2015-08-18 15:02:25 -07:00
mzhang4 eab7249b74 table: change ContentStore lookup API to allow async implementations
refs: #2411

Change-Id: Ifbb4179c34cf10a7913f8113a2f9238476d8eafa
2015-03-19 04:59:33 -07:00
Junxiao Shi faf3eb0823 fw: register strategy with macro
refs #2410

Change-Id: Ifa79c194c58d0ebe1bca6236fc0a47debe2da05e
2015-02-16 22:30:16 -07:00
Junxiao Shi b2bcbcd866 table: simplify PIT with C++11 features
refs #2100

Change-Id: I1159761d9439f0a2ff9f6463f89f39372a696e48
2014-11-14 15:03:18 -08:00
Junxiao Shi a110f268c7 fw: use dead Nonce list in pipelines
refs #1953

Change-Id: I0faef2a985b03fe96387c2e0181588713550b9ce
2014-10-19 20:50:48 -07: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
Junxiao Shi ad3f1cbc87 fw: when Interest matches CS, set straggler timer on PIT entry
refs #1882

Change-Id: I2291783ff3175912ab646fabf247e29dba530e25
2014-08-18 14:05:48 -07:00
Junxiao Shi 7b984c6d8e face: reserved FaceIds and NullFace
refs #1620, #1622

Change-Id: I315ae262c7e0813a64b69d3e7d67de61b7b88c55
2014-07-20 14:58:26 -07:00
Junxiao Shi 33152f18b1 face: link layer byte counts in FaceCounters
This commit declares the counters, but does not increment the new counters.

refs #1729

Change-Id: I9cd136fc65955192a92d567629a9aba2df8090f3
2014-07-19 01:14:05 -07:00
Alexander Afanasyev a57f8b4194 fw: set unsatisfy timer in incoming Interest pipeline
Change-Id: I478de1482f79f96f81162ab5e6e8df490061b852
Refs: #1754
2014-07-14 19:59:44 -07:00
Junxiao Shi 0e173b7690 fw: permit setStragglerTimer with unexpired OutRecord
refs #1733

Change-Id: I899ce2f826d84b048536bcf56aec2ff038534901
2014-07-07 16:15:51 -07:00
Junxiao Shi 223271ba39 fw: require valid FaceId in outgoing Interest/Data pipelines
This is to avoid sending via a failed/closed face.

refs #1732

Change-Id: I31b205c2b97185e7955107a2591f8c4d2b7f0cc0
2014-07-03 22:52:00 -07:00
Junxiao Shi af6569aa7e core: unify randomization
Non-security randomizations are changed to use boost::random,
with a global random number generator.

refs #1369

Change-Id: I5000fd02f170fa47058af790e2bea767f9c65650
2014-06-17 17:34:39 -07:00
Junxiao Shi da006f5a05 fw: incoming Data pipeline avoid sending to inFace
refs #1556

Change-Id: I1e38e3142f9c6536180f2aa494d7e2032ad76c2d
2014-05-16 11:18:00 -07:00
Junxiao Shi d938a6bb89 fw: Strategy::sendInterest allows changing Nonce
This commit also includes some tweaks in forwarding pipelines.

refs #1596

Change-Id: I65a4129be24089357b28fa9d35a3451e0d9ae258
2014-05-15 11:37:53 -07:00
Alexander Afanasyev f6980284e6 src: Remove unnecessary uses of boost::cref in make_shared and replace boost::cref/boost::ref with just cref/ref
In some cases, due to argument-dependent lookup, it is necessary to use
ndn::ref, instead of just ref.

Change-Id: I682180a007609535855f77511b49622154ad4f11
Refs: #1591
2014-05-15 09:52:28 -07:00
Haowei Yuan f52dac7f03 table: NameTree optimization
This commit adds platform-specific hash function selection and hash
table shrink function.

Change-Id: Iaaa0e5b86842d4e0582d3523f0a6b6836e152239
Refs: #1305
2014-04-10 16:46:49 -07:00
Junxiao Shi 9f7455b6dd fw: avoid setting PIT unsatisfy timer twice
refs #1448

Change-Id: If48a90be2b554bc7c1ea4b869e1a927bad578e0a
2014-04-07 21:02:16 -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