IP Library Granted Patent US 10,785,164
Granted Patent B2
US 10,785,164 · App. 16/058,256 · Granted Sep 22, 2020

Preventing duplication of packets in a network

Inventors: Mario Baldi (Brooklyn, NY); Murty Kotha (San Jose, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L47/70H04L45/70H04L47/32
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,785,164
App. No.
16/058,256
Granted
Sep 22, 2020
Kind
B2
Abstract

In one example, a collection network node comprising a plurality of ingress ports obtains, at a first one of the plurality of ingress ports, a first copy of a packet of a packet flow comprising a plurality of packets. The collection network node determines whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow. When it is determined that the collection network node had previously obtained a copy, the collection network node determines whether the collection network node had previously obtained a copy at the first one of the plurality of ingress ports or at a different one of the plurality of ingress ports. When it is determined that the collection network node had previously obtained a copy at a different one of the plurality of ingress ports, the collection network node refrains from forwarding the first copy.

Claims (55)

1. A method comprising:

at a collection network node comprising a plurality of ingress ports:

obtaining, at a first one of the plurality of ingress ports, a first copy of a packet of a packet flow comprising a plurality of packets;

determining whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow;

when it is determined that the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow, determining whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow at the first one of the plurality of ingress ports or at a different one of the plurality of ingress ports; and

when it is determined that the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow at a different one of the plurality of ingress ports, refraining from forwarding the first copy of the packet of the packet flow.

2. The method of claim 1 , further comprising:

when it is determined that the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow at the first one of the plurality of ingress ports, forwarding the first copy of the packet of the packet flow.

3. The method of claim 1 , further comprising:

when it is determined that the collection network node had not previously obtained a copy of any of the plurality of packets of the packet flow:

storing an indication that the first copy of the packet of the packet flow has been received at the first one of the plurality of ingress ports; and

forwarding the first copy of the packet of the packet flow.

4. The method of claim 1 , wherein determining whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow includes determining whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow within a period of time preceding receipt of the first copy of the packet of the packet flow.

5. The method of claim 4 , wherein a length of the period of time is set based on a time at which the first one of the plurality of ingress ports had previously obtained a copy of any of the plurality of packets of the packet flow.

6. The method of claim 1 , wherein determining whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow at the first one of the plurality of ingress ports includes maintaining a count of a number of copies of any of the plurality of packets of the packet flow that the collection network node had previously obtained at the first one of the plurality of ingress ports.

7. The method of claim 1 , wherein determining whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow at the first one of the plurality of ingress ports includes comparing a unique identifier of the first copy of the packet of the packet flow obtained at the first one of the plurality of ingress ports with a unique identifier of a copy of any of the plurality of packets of the packet flow.

8. The method of claim 1 , wherein:

determining whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow includes determining whether the packet flow is stored in a table; and

determining whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow at the first one of the plurality of ingress ports includes determining whether the table associates the packet flow with the first one of the plurality of ingress ports.

9. The method of claim 1 , wherein:

determining whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow includes determining whether the packet flow is stored in a register; and

determining whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow at the first one of the plurality of ingress ports includes determining whether the register associates the packet flow with the first one of the plurality of ingress ports.

10. An apparatus comprising:

a network interface including a plurality of ingress ports; and

one or more processors coupled to the network interface, wherein the one or more processors are configured to:

obtain, at a first one of the plurality of ingress ports, a first copy of a packet of a packet flow comprising a plurality of packets;

determine whether the apparatus had previously obtained a copy of any of the plurality of packets of the packet flow;

when it is determined that the apparatus had previously obtained a copy of any of the plurality of packets of the packet flow, determine whether the apparatus had previously obtained a copy of any of the plurality of packets of the packet flow at the first one of the plurality of ingress ports or at a different one of the plurality of ingress ports; and

when it is determined that the apparatus had previously obtained a copy of any of the plurality of packets of the packet flow at a different one of the plurality of ingress ports, refrain from forwarding the first copy of the packet of the packet flow.

11. The apparatus of claim 10 , wherein the one or more processors are further configured to:

when it is determined that the apparatus had previously obtained a copy of any of the plurality of packets of the packet flow at the first one of the plurality of ingress ports, forward the first copy of the packet of the packet flow.

12. The apparatus of claim 10 , wherein the one or more processors are further configured to:

when it is determined that the apparatus had not previously obtained a copy of any of the plurality of packets of the packet flow:

store an indication that the first copy of the packet of the packet flow has been received at the first one of the plurality of ingress ports; and

forward the first copy of the packet of the packet flow.

13. The apparatus of claim 10 , wherein the one or more processors are further configured to:

determine whether the apparatus had previously obtained a copy of any of the plurality of packets of the packet flow within a period of time preceding receipt of the first copy of the packet of the packet flow.

14. The apparatus of claim 13 , wherein the length of the period of time is set based on a time at which the first one of the plurality of ingress ports had previously obtained a copy of any of the plurality of packets of the packet flow.

15. The apparatus of claim 10 , wherein the one or more processors are further configured to:

maintain a count of a number of copies of any of the plurality of packets of the packet flow that the apparatus had previously obtained at the first one of the plurality of ingress ports.

16. The apparatus of claim 10 , wherein the one or more processors are further configured to:

compare a unique identifier of the first copy of the packet of the packet flow obtained at the first one of the plurality of ingress ports with a unique identifier of a copy of any of the plurality of packets of the packet flow.

17. One or more non-transitory computer readable storage media encoded with instructions that, when executed by a processor of a collection network node comprising a plurality of ingress ports, cause the processor to:

obtain, at a first one of the plurality of ingress ports, a first copy of a packet of a packet flow comprising a plurality of packets;

determine whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow;

when it is determined that the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow, determine whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow at the first one of the plurality of ingress ports or at a different one of the plurality of ingress ports; and

when it is determined that the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow at a different one of the plurality of ingress ports, refrain from forwarding the first copy of the packet of the packet flow.

18. The one or more non-transitory computer readable storage media of claim 17 , wherein the instructions further cause the processor to:

when it is determined that the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow at the first one of the plurality of ingress ports, forward the first copy of the packet of the packet flow.

19. The one or more non-transitory computer readable storage media of claim 17 , wherein the instructions further cause the processor to:

when it is determined that the collection network node had not previously obtained a copy of any of the plurality of packets of the packet flow:

store an indication that the first copy of the packet of the packet flow has been received at the first one of the plurality of ingress ports; and

forward the first copy of the packet of the packet flow.

20. The one or more non-transitory computer readable storage media of claim 17 , wherein the instructions further cause the processor to:

determine whether the collection network node had previously obtained a copy of any of the plurality of packets of the packet flow within a period of time preceding receipt of the first copy of the packet of the packet flow.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2018
From: BALDI, MARIO; KOTHA, MURTY
To: CISCO TECHNOLOGY, INC.
Reel/Frame 046586/0168 →
Continuity (2)
Provisional Application 62678581 · May 31, 2018
Related Publication 20190372906A1 · Dec 5, 2019