Commit Graph

571 Commits

Author SHA1 Message Date
Eric Newberry 78e32b0ee2 face+mgmt: accept LocalUri in ProtocolFactory and FaceManager
refs #4016

Change-Id: I3e192e6d3982ae8e6ced1dbfbaa62f1c993f799e
2017-04-01 14:34:44 +00:00
Davide Pesavento 6bd6d0b50a face: UnicastEthernetTransport
Change-Id: I4d19f52835d9268f2ea63fd4e0b1a0a5aed95c47
Refs: #4011
2017-03-30 18:25:57 -04:00
Teng Liang bfea575095 face: configuration option to make Ethernet face "ad hoc"
Change-Id: I55aeb2ca38ec34365b2d5d951b9ca2d7b05f46b2
Refs: #4018, #3967
2017-03-29 04:51:10 +00:00
Teng Liang fe4fce3a3f face: configuration option to make UDP multicast face "ad hoc"
Change-Id: Ifd407f42e9646826697f73ab1890c819fce16857
Refs: #4018, #3967
2017-03-29 04:49:38 +00:00
Eric Newberry 185ab29325 face: add best-effort link-layer reliability
refs #3931

Change-Id: I009fabe000f4dd4ceb62acab6b0c735c13112430
2017-03-28 06:45:39 +00:00
Junxiao Shi da89fa5a9f fw: silence unused variable warning in FaceTable
Change-Id: I32136aabbac6c25f3b1e4ea17e2eeaddafd5c8c0
2017-03-22 21:34:56 +00:00
Teng Liang 4f5cdcf421 fw: avoid breaking logic after LINK_TYPE_AD_HOC is introduced
Change-Id: I4f17a3a92c6ec44f1cb3ee619600c07e2ec39a16
Refs: #3967
2017-03-16 15:54:03 -07:00
Davide Pesavento 1586aff97b mgmt+tests: no need to wrap ndn::nfd::FibEntry anymore
ndn-cxx provides the required operators now.

Change-Id: I7d7f371b89f8231853cb75682066ac09a858916d
Refs: #3903
2017-03-12 19:53:35 -04:00
Alexander Afanasyev 635bf20ef5 Remove use of deprecated code
Notably, faces/enable-local-control and faces/disable-local-control
management commands are removed in this commit.

Change-Id: I9ba45c9697eca418315c1c749a3c0c602a36f34e
Refs: #3988
2017-03-09 21:57:34 +00:00
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
Ashlesh Gawande ecdbe5f2a6 fw: consumer retansmission in multicast startegy
refs: #2062

Change-Id: I2b58a289fffe262c69a797f339e40ad9037acf8f
2017-03-04 03:08:24 +00:00
Ashlesh Gawande e38e261ae6 fw: Nack in multicast strategy
refs: #3176

Change-Id: I1ef43c277a6a251170b652bf77d5516912a5d630
2017-02-25 07:23:41 +00:00
Davide Pesavento 6fd1e7e5ef fw: in FaceTable::add(), move the shared_ptr instead of copying it
Change-Id: Iddbdc35452f9512a75850b7a9cd3734d4cf89326
2017-02-17 18:45:27 +00:00
Yanbiao Li 58ba3f9429 mgmt+tools: rework FacePersistency handling in faces/create and faces/update
1. enable changing persistency in faces/update command
2. reject faces/create request if the face already exists
3. nfdc changes to support the above

Change-Id: I659906da846608a42a768f08fb110ceee1a947a7
refs: #3232
2017-02-17 20:05:06 +08: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 fab9e0de46 tests: forwarding with Link objects test suite
Fw/TestLinkForwarding is an end-to-end test suite that verifies
the proper forwarding rules for Interest with Link objects.
It replaces Fw/TestStrategy/LookupFib test suite.

refs #3893

Change-Id: I6dd3fe7988f8be6d55dd5dc589f7953c4d18f2ee
2017-02-02 06:04:59 +00:00
Junxiao Shi 9954007722 fw: abstract Nack processing out of BestRouteStrategy2
refs #3176

Change-Id: Ib220269ff52acc47c65f854a610941afd862ad41
2017-01-27 19:57:33 +00:00
Junxiao Shi ea47bde02e mgmt: FaceManager no longer owns FaceSystem
refs #3904

Change-Id: I2ef6fd36a51493eea27d8eb0e1c7dc022766f948
2017-01-26 17:49:16 +00:00
Junxiao Shi c344304026 face: make ProtocolFactory::processConfig pure virtual
refs #3904

Change-Id: I1f2cb0a85b75f9adbabd4c9e5afb7d81567cfbd7
2017-01-26 17:21:35 +00:00
Junxiao Shi c31080d470 mgmt: Create UDP multicast faces according to whitelist/blacklist
refs #1712

Change-Id: Ia957bb1a3a3a0108d06716bfb25ecd29c6952d62
2017-01-25 14:17:55 -05:00
Junxiao Shi b47247dad9 face: ProtocolFactory registry
refs #3904

Change-Id: Ic7c8b3d6138b7c27d4189a2e15cc646055ad1294
2017-01-25 14:17:45 -05: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 64d99f21eb face: process face_system.udp config section in UdpFactory
refs #3904

Change-Id: I8edf69c152f7c164cbab2b482d6b138cbf89d3e2
2017-01-21 23:06:36 +00:00
Junxiao Shi 3409cd399d face: process face_system.websocket config section in WebSocketFactory
refs #3904

Change-Id: I8e30a54ab0664432cebf5d74e0467e9bfba60f2f
2017-01-18 15:31:27 +00:00
Davide Pesavento 3206565bac face: revert unintended behavior change in Transport::setPersistency
Prior to commit 32dab97321, persistency
transitions from NONE were not logged and before/afterChangePersistency
was not called. Restore that behavior.

This commit also improves test coverage of the persistency-related
functions in the various Transport subclasses.

Change-Id: Ide77c67ea277fca3d1cad5ea131ae0fa259db75c
Refs: #3232
2017-01-15 15:04:19 -05:00
Yanbiao Li 32dab97321 face: Transport::canChangePersistencyTo
Feasibility of transport persistency change can be checked with
Transport::canChangePersistencyTo before executing the actual change.
This enables management to verify persistency and other parameters
in a faces/update command before applying the updates.

Change-Id: Ia283f0daf678f47aad7b78b7e06dee4827f57cab
refs: #3232
2017-01-13 14:30:01 +08:00
Junxiao Shi 7003c609b8 face: process face_system.ether config section in EthernetFactory
This commit also fixes a potential memory access error in EthernetTransport.

refs #3904

Change-Id: I08296e7c6f1039b59b2859d277fc95326af34f52
2017-01-10 13:35:28 +00:00
Junxiao Shi 406deb5971 face: process face_system.unix config section in UnixStreamFactory
refs #3904

Change-Id: I8f8772054ece2971758efd0599ef06fd3b778735
2017-01-05 20:07:44 +00:00
Junxiao Shi 38b24c7b94 face: process face_system.tcp config section in TcpFactory
refs #3904

Change-Id: I509f07e6835a96c7ba05137529f29da76a6514fd
2017-01-05 02:59:31 +00:00
Junxiao Shi 530cf00d68 table: StrategyChoice::insert return value includes error description
The error description is used in the response to a strategy-choice/set
management command failure.

refs #3868

Change-Id: I14e0eb4dc311806a90ebfe60fa17177d2809d104
2017-01-03 14:43:16 +00: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 b859031855 face: FaceSystem class
FaceSystem class is the entry point of NFD's face system. It owns
ProtocolFactory objects that are created from face_system section of
NFD configuration file. This responsibility is split from FaceManager.

This commit also adds test coverage for face_system.websocket config
section processing routine.

refs #3904

Change-Id: If9a23c23b81f03d2b76c29febb3f29e6007d595b
2016-12-29 21:22:25 +00:00
Junxiao Shi 7f566dd0e5 table: StrategyChoice no longer supports installed instances
All strategies should be registered in the strategy registry.

refs #3868

Change-Id: Ie89b0ffaf9943e591f9f2d80546b013d5cc16ff8
2016-12-27 02:28:31 +00:00
Junxiao Shi 65800d22e7 mgmt: change strategy-choice/set response codes
If the specified strategy name cannot be instantiated,
respond with 404 status code.

refs #3868

Change-Id: I8275923f149ec9c2ed82e485e933d16320bd3a03
2016-12-25 21:05:45 +00:00
Junxiao Shi 4cb74319f9 fw: delete deprecated Strategy::getName in favor of getInstanceName
This commit also renames strategy_choice::Entry::getStrategyName
to getStrategyInstanceName.

refs #3868

Change-Id: I40301e744fc236918d6be1c1262eba952198e22f
2016-12-25 20:48:47 +00:00
Junxiao Shi 3aba7548f4 table: make FIB and StrategyChoice iterators default-constructible
They were previously not default-constructible when compiled with gcc 4.8.4.

refs #3882

Change-Id: I2431c869fb61b7adbe83d5551705981bf8618280
2016-12-24 02:42:52 +00:00
Junxiao Shi 593887c8d0 mgmt: use strategy registry in TablesConfigSection
refs #3868

Change-Id: I3500505f11d8dbfa37bb57c283bd4847ab0f11e5
2016-12-24 02:39:29 +00:00
Junxiao Shi 0e4a1f112d tests: register instead of install DummyStrategy
refs #3868

Change-Id: I5e44582625be51ef874e2a92e4bb7cc22d5b607b
2016-12-24 02:39:01 +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 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 b4a5acd890 mgmt: tables.cs_policy config option
refs #3148

Change-Id: Icf30bbe508c1c491949d9fcb433fdfa16842d312
2016-12-07 19:59:18 +00:00
Junxiao Shi 7ee00fb680 table: cs::Policy::getPolicyNames
refs #3148

Change-Id: I06f66e9780b9c5c4820ba18cca5fbc9b1061eae0
2016-12-04 21:23:00 +00:00
Junxiao Shi c29c0b01a7 fw: don't expose UnsolicitedDataPolicy::Registry
UnsolicitedDataPolicy::Registry was mistakenly made public when
implementing getPolicyNames.

refs #2181

Change-Id: Ib2e68360aef2e7d3695273f8ef2b6c0c67bd914a
2016-12-04 21:11:44 +00:00
Junxiao Shi 9db735958c fw: UnsolicitedDataPolicy::getPolicyNames
refs #2181

Change-Id: Ie2abcd7503d1079734e6386fbab37cadd186e07c
2016-12-01 23:43:11 +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
Ashlesh Gawande 2a73f35ce6 fw: localhop scope restriction in ASF strategy
refs: #3841, #1756

Change-Id: Ic82e7055ace9d3f8eca8f9bad94603692ff321d5
2016-12-01 17:27:02 -06:00
Junxiao Shi 52555b06d4 table: CS policy registry
refs #3148

Change-Id: I058357839e514787405952569d1abf402375d1ea
2016-11-25 21:39:06 +00:00
Junxiao Shi e21b3f3dc4 fw: localhop scope restriction in best-route v1, multicast, ncc strategies
canForwardToLegacy function no longer checks scope. Strategies using this
function shall use wouldViolateScope separately.

refs #3841, #1756

Change-Id: Ib1bd3f9fe19e4cadfa27e86dcc730d16cfd4b0db
2016-11-24 14:13:46 +00:00