Project

General

Profile

Task #3088

Updated by Junxiao Shi about 9 years ago

Refactor `Face` to support [[NDNLPv2]] link service and permanent faces. 

 High-level design: <https://gist.github.com/yoursunny/22a7d53711b4e9bc198a> 

 This issue includes: 

 * Design initialization logic for every `Transport` `Socket` type, including `UnixTransport UdpTransport TcpTransport EthernetTransport WebSocketTransport`. `UnixSocket UdpSocket TcpSocket EthernetSocket WebSocketSocket`. 
 * Implement `LinkService` and `Transport` `Socket` base classes. 
 * Implement a non-inheritable `Face` class that combines connects a `LinkService` and a `Transport`. `Socket`. 
 * Implement a `NullLinkService` that merely passes through packets between network layer and link layer.   
   If network layer attempts to send a NACK, write an ERROR log, and don't send anything. 
 * In all `Factory` and `Channel` subclasses, replace the initialization of `UnixStreamFace UdpFace TcpFace EthernetFace WebSocketFace` to the initialization of a `Face` with `NullLinkService` and the corresponding `Transport`. `Socket`. 
 * Update **NFD Developer Guide** to reflect the new structure. 

 This is an initial step toward a Face that supports [[NDNLPv2]] and full-featured permanent face.

Back