Project

General

Profile

Actions

Bug #1556

closed

Forwarder repeats Data received from multicast group

Added by Junxiao Shi over 10 years ago. Updated over 10 years ago.

Status:
Closed
Priority:
Urgent
Assignee:
Category:
Forwarding
Target version:
Start date:
04/29/2014
Due date:
% Done:

100%

Estimated time:
4.00 h

Description

Topology: A,B,C connected on the same Ethernet switch

Steps to reproduce:

  1. run Wireshark or tcpdump to observe traffic
  2. start NFD on A,B,C with UDP multicast enabled
  3. on host B, run ndn-traffic-server to server ndn:/test-mcast
  4. on host A, add FIB entry ndn:/test-mcast toward UDP multicast face
  5. on host A, run ndn-tlv-peek to request ndn:/test-mcast/B/1

Actual: after B sends a Data packet to the multicast group, C repeats the Data packet to the multicast group

Expected: C does not repeat the Data packet

Relevant log lines from C:

1398806704.842483 DEBUG: [Forwarder] onIncomingInterest face=3 interest=/test-mcast/B/1
1398806704.842640 DEBUG: [Forwarder] onInterestReject interest=/test-mcast/B/1
1398806704.852856 DEBUG: [Forwarder] onIncomingData face=3 data=/test-mcast/B/1
1398806704.853038 DEBUG: [Forwarder] onIncomingData matching=/test-mcast/B/1
1398806704.853153 DEBUG: [Strategy] beforeSatisfyPendingInterest pitEntry=/test-mcast/B/1 inFace=3 data=/test-mcast/B/1
1398806704.853318 DEBUG: [Forwarder] onOutgoingData face=3 data=/test-mcast/B/1
Actions #1

Updated by Junxiao Shi over 10 years ago

  • Estimated time set to 4.00 h

This problem is caused by:

  1. C receives the Interest but cannot forward it, so BestRouteStrategy rejects it
  2. PIT entry is kept for loop detection purpose "for a short while"
  3. matching Data arrives
  4. C thinks the PIT entry is still active, and does not check whether inFace equals pending downstream
  5. Data is sent
Actions #2

Updated by Junxiao Shi over 10 years ago

  • Priority changed from Normal to Urgent

Similar problem exists for unicast face.

1400047223.669974 DEBUG: [Forwarder] onIncomingData face=6 data=/P/ping/0/600
1400047223.670158 DEBUG: [Forwarder] onIncomingData matching=/P/ping/0/600
1400047223.670429 DEBUG: [Forwarder] onOutgoingData face=4 data=/P/ping/0/600
1400047223.670491 DEBUG: [Forwarder] onOutgoingData face=6 data=/P/ping/0/600
Actions #3

Updated by Junxiao Shi over 10 years ago

  • Status changed from New to In Progress
Actions #4

Updated by Junxiao Shi over 10 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 0 to 70

Fixed in a private branch.
Will upload after #1596 is approved.

Actions #5

Updated by Junxiao Shi over 10 years ago

  • Status changed from Resolved to Code review
Actions #6

Updated by Junxiao Shi over 10 years ago

  • Status changed from Code review to Closed
  • % Done changed from 70 to 100
Actions

Also available in: Atom PDF