Feature #4011
closedUnicast Ethernet Transport and Channel
100%
Updated by Alex Afanasyev over 8 years ago
- Assignee set to Davide Pesavento
- Target version set to v0.6
- % Done changed from 0 to 70
Updated by Davide Pesavento over 8 years ago
- Start date changed from 03/26/2017 to 03/25/2017
Updated by Davide Pesavento over 8 years ago
- Related to Feature #4012: Ethernet unicast configuration added
Updated by Junxiao Shi over 8 years ago
Looking at https://gerrit.named-data.net/3790 patchset3 and https://gerrit.named-data.net/3793 patchset4, similar pcap_* function calls are duplicated between EthernetTransport and EthernetChannel. Is there any way to abstract them into an implementation class?
Updated by Davide Pesavento over 8 years ago
Junxiao Shi wrote:
Looking at https://gerrit.named-data.net/3790 patchset3 and https://gerrit.named-data.net/3793 patchset4, similar
pcap_*function calls are duplicated betweenEthernetTransportandEthernetChannel. Is there any way to abstract them into an implementation class?
https://gerrit.named-data.net/3876 introduces PcapHelper.
There isn't an obvious choice for the level of abstraction. I've decided to keep the PcapHelper class independent of the data-link type (DLT_*). Therefore, the class doesn't know anything about frame structures, ethernet, or any other link-layer protocols. It just wraps a pcap_t handle in a RAII class with a slightly higher-level (more C++-like) interface. Ethernet-specific routines that are reusable can be moved to face/ethernet-protocol.{cpp,hpp}.
Another question is: how can consumers access the raw pcap_t pointer?
- implicit conversion via
operator pcap_t*() - overload
operator*() - member function
getHandle() - don't provide external access to the raw
pcap_t*(this implies thatPcapHelpermust wrap all libpcap functions that we use)
Updated by Davide Pesavento over 8 years ago
- % Done changed from 60 to 90
https://gerrit.named-data.net/3793 (untested)
Updated by Davide Pesavento over 8 years ago
- Related to deleted (Feature #4012: Ethernet unicast configuration)
Updated by Davide Pesavento over 8 years ago
- Blocks Feature #4012: Ethernet unicast configuration added
Updated by Davide Pesavento over 8 years ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100