Project

General

Profile

Actions

Feature #4012

closed

Ethernet unicast configuration

Added by Alex Afanasyev over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Category:
Faces
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
2.00 h

Description

In EthernetFactory::processConfig, accept configuration options for Ethernet unicast channels.

face_system {
  ether {
    listen yes
    idle_timeout 600
  }
}

Related issues 1 (0 open1 closed)

Blocked by NFD - Feature #4011: Unicast Ethernet Transport and ChannelClosedDavide Pesavento03/25/2017

Actions
Actions #1

Updated by Davide Pesavento over 7 years ago

  • Tracker changed from Task to Feature
  • Subject changed from Update configuration file for unicast ethernet Faces to Provide options for unicast Ethernet faces in nfd.conf
  • Category set to Faces
Actions #2

Updated by Davide Pesavento over 7 years ago

Not sure how the syntax should look like...

Actions #3

Updated by Davide Pesavento over 7 years ago

  • Related to Feature #4011: Unicast Ethernet Transport and Channel added
Actions #4

Updated by Davide Pesavento over 7 years ago

  • Assignee deleted (Davide Pesavento)
Actions #5

Updated by Junxiao Shi over 7 years ago

  • Description updated (diff)
  • Estimated time set to 2.00 h

This is easy: copy from face_system.udp.

Actions #6

Updated by Junxiao Shi over 7 years ago

  • Subject changed from Provide options for unicast Ethernet faces in nfd.conf to Ethernet unicast configuration
  • Description updated (diff)
Actions #7

Updated by Davide Pesavento over 7 years ago

  • Related to deleted (Feature #4011: Unicast Ethernet Transport and Channel)
Actions #8

Updated by Davide Pesavento over 7 years ago

  • Blocked by Feature #4011: Unicast Ethernet Transport and Channel added
Actions #9

Updated by Davide Pesavento over 7 years ago

  • Status changed from New to In Progress
  • Assignee set to Davide Pesavento
Actions #10

Updated by susmit shannigrahi over 7 years ago

https://gerrit.named-data.net/#/c/3921/4

Testing steps:

Machine 1:
enp68s0f1.801: flags=4163 mtu 9000
inet6 fe80::a236:9fff:fe36:e142 prefixlen 64 scopeid 0x20
ether a0:36:9f:36:e1:42 txqueuelen 1000 (Ethernet)

Machine 2:

enp68s0f0.801: flags=4163 mtu 9000
inet6 fe80::a236:9fff:fe36:237c prefixlen 64 scopeid 0x20
ether a0:36:9f:36:23:7c txqueuelen 1000 (Ethernet)

On Machine 1:
nfdc face create ether://[a0:36:9f:36:23:7c] local dev://enp68s0f1.801
face-created id=265 local=dev://enp68s0f1.801 remote=ether://[a0:36:9f:36:23:7c] persistency=persistent

on Machine 2:

nfdc face create ether://[a0:36:9f:36:e1:42] local dev://enp68s0f0.801
face-created id=265 local=dev://enp68s0f0.801 remote=ether://[a0:36:9f:36:e1:42] persistency=persistent

on Machine 1:
nfdc route add /test 265
route-add-accepted prefix=/test nexthop=265 origin=static cost=0 flags=child-inherit expires=never

On Machine 2:

nfdc route add /test 265
route-add-accepted prefix=/test nexthop=265 origin=static cost=0 flags=child-inherit expires=never

Machine 1:

nfd-status

Faces:
faceid=265 remote=ether://[a0:36:9f:36:e1:42] local=dev://enp68s0f0.801 counters={in={0i 0d 0n 0B} out={0i 0d 0n 0B}} flags={non-local persistent point-to-point}
FIB:
/test nexthops={faceid=265 (cost=0), faceid=267 (cost=0)}

Machine 2:
Faces:

faceid=265 remote=ether://[a0:36:9f:36:e1:42] local=dev://enp68s0f0.801 counters={in={0i 0d 0n 0B} out={0i 0d 0n 0B}} flags={non-local persistent point-to-point}

Fib:
/test nexthops={faceid=265 (cost=0)}

Machine 1:

echo "Hello" | ndnputchunks -v /test
Loading input ...
Created 1 chunks for prefix /test
Data published with name: /test/%FD%00%00%01%5Cvx%CF%14

Machine 2:

ndncatchunks -v /test

Test 1
Add a unicast route at one end. Should create the corresponding face on the other end.

Host 1:
nfdc face create ether://[a0:36:9f:36:e1:42] local dev://enp68s0f0.801
nfdc route add /test 266

Host 2:
[root@atmos-lbl ~]# nfd-status|grep test
/test nexthops={faceid=280 (cost=0)}
/test routes={nexthop=280 origin=app cost=0 flags=child-inherit expires=never}

catchunks/putchunks work too.

Test 2:

One producer, two consumers. Works as expected.

On producer: face: /test nexthops={faceid=274 (cost=0)}
Two Incoming faces:

1498270069.251231 DEBUG: [Forwarder] onIncomingInterest face=275 interest=/test/%FD%00%00%01%5C%D7%DAo%F5/%00%E1
1498270069.251630 DEBUG: [Forwarder] onIncomingInterest face=265 interest=/test/%FD%00%00%01%5C%D7%DAo%F5/%00B

Trace log is here:

http://www.cs.colostate.edu/~susmit/trace_one_producer_two_consumers.txt

Test 3:

Host 1: Select an interface

faceid=257 remote=ether://[01:00:5e:00:17:aa] local=dev://enp68s0f1.801 counters={in={5i 0d 0n 195B} out={0i 1d 0n 84B}} flags={non-local permanent multi-access}

Host 2:

faceid=256 remote=ether://[01:00:5e:00:17:aa] local=dev://enp68s0f0.801 counters={in={0i 1d 0n 84B} out={5i 0d 0n 195B}} flags={non-local permanent multi-access}

Add a route (/test) on the multicast face.

/test nexthops={faceid=256 (cost=0)}
The other end receives the packets on face 257.

Now, add a unicast route on host2. Now, host 2 has two routes.
/test nexthops={faceid=256 (cost=0), faceid=269 (cost=0)}

The first is chosen (as expected). On host1, receiving side, the multicast face is correctly chosen.

http://www.cs.colostate.edu/~susmit/host1_multicast_unicast_test.txt
http://www.cs.colostate.edu/~susmit/host2_multicast_unicast_test.txt

Actions #11

Updated by Davide Pesavento over 7 years ago

  • % Done changed from 0 to 80
Actions #12

Updated by Davide Pesavento over 7 years ago

  • Status changed from In Progress to Code review
  • % Done changed from 80 to 100
Actions #13

Updated by Junxiao Shi over 7 years ago

  • Status changed from Code review to Closed
Actions

Also available in: Atom PDF