Bug #1314
closed
I disagree (in general) with this. If application wants to keep transport open, it should do something to make it open. Right now it can be tricked by enabling listening on a specific prefix. I can add a separate method that allows transport to be persistent, but this definitely not the general case.
Btw. Which performance issues you're referring to? NFD performance or ping? It shouldn't be a big problem for NFD to create/destroy faces...
- Tracker changed from Task to Bug
Face setup/teardown is an expensive task on forwarder (both NFD and ndnd-tlv), compared to Interest/Data processing. Keeping faces open is cheap.
Steps on face setup:
- allocate Face object
- assign FaceId
- publish face create notification
Steps on face teardown:
- delete nexthop records for failed face
- publish face destroy notification
- deallocate Face object
I'm not going to change the default behavior, since it is desired to close face when operation on face finishes (=outstanding interest satisfied). This is used by both test cases and should be used by client apps.
ping is really a special case, which needs to be always connected. I will make a separate call to allow face to be persistent.
I'll check the possibility of using socket::cancel instead of close for Face::checkPitExpire. This way we wouldn't need special handling for ping.
- Assignee set to Alex Afanasyev
- Status changed from New to Code review
- Status changed from Code review to Closed
- % Done changed from 0 to 100
Also available in: Atom
PDF