Feature #2989
Updated by Junxiao Shi over 9 years ago
Implement a minimal UDP **permanent face**. In this minimal implementation, * `UdpFace` constructor accepts `FacePersistency persistency` parameter in place of `bool isOnDemand`. * If `persistency == FacePersistency::PERMANENT`, the face ignores all socket errors after successful creation. Errors during the initial face creation should be reported as usual. errors. * There is no UP/DOWN state transitions. An operator who decides to use a permanent The face must take care to choose a strategy that is able to try multiple faces (ie. not `best-route`). transmits packets whenever the underlying socket allows immediate transmission. This Feature also includes the following changes: * `ProtocolFactory::createFace` needs a `FacePersistency persistency` parameter. If a `ProtocolFactory` subclass does not support the specified `persistency`, throw `ProtocolFactory::Error`. * `UdpFactory::createFace` should support `FacePersistency::PERSISTENT` and `FacePersistency::PERMANENT`. * `FaceManager::createFace` passes `FacePersistency::PERSISTENT` to `ProtocolFactory::createFace`. To allow an operator to use UDP permanent faces, management and `nfdc` changes are needed, but they are not part of this Feature.