# US 2014/0192646 A1 · User traffic accountability under congestion in flow-based multi-layer switches

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0192646 A1
- Document ID: US20140192646A1
- Status: Published application
- Kind: A1
- Application number: 14/008,689
- Filed: 2011-09-06
- Published: 2014-07-10
- Earliest claimed: 2011-03-29
- Assignees: NEC Europe Ltd.
- Applicants: NEC Europe Ltd.
- Inventors: Faisal Ghias Mir; Marcus Brunner; Rolf Winter; Dirk Kutscher
- Web page: https://patentgrep.com/patent/US20140192646A1

## CPC

- H04L 47/20: Traffic policing
- H04L 43/0829: Packet loss
- H04L 43/20: the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
- H04L 47/12: Avoiding congestion; Recovering from congestion
- H04L 47/2441: relying on flow classification, e.g. using integrated services [IntServ]
- H04L 47/122: by diverting traffic away from congested entities
- H04L 47/30: in combination with information about buffer occupancy at either end or at transit nodes
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method of policing network traffic based on congestion on a flow-based programmable switch, such as an OpenFlow switch is provided. The method polices congestion-causing flows in a network by detecting congestion at a flow-based programmable switch on the network. Once congestion has been detected, the method identifies one or more flows that are causing the congestion at the flow-based programmable switch, and penalizes the flows that were identified as causing congestion. A flow-based programmable switch including a data plane having input ports, output ports, and forwarding rules that map packets received on an input port to an output port based on a packet matching a rule in the forwarding rules is also described.

## Claims

### Claim 1

A method of policing congestion-causing flows in a network, characterized in that the method includes:
detecting congestion at a flow-based programmable switch on the network;
identifying a flow that is causing congestion at the flow-based programmable switch; and
penalizing the flow that was identified as causing congestion.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the flow-based programmable switch is configured to use the OpenFlow protocol.

### Claim 3 (depends on 1)

The method according to claim 1, wherein detecting congestion comprises monitoring a statistic of a port of the flow-based programmable switch.

### Claim 4 (depends on 1)

The method according to claim 1, wherein detecting congestion comprises monitoring a statistic of a flow on the flow-based programmable switch.

### Claim 5 (depends on 1)

The method according to claim 1, wherein detecting congestion comprises monitoring a statistic based on a drop count, indicating a number of packets dropped.

### Claim 6 (depends on 1)

The method according to claim 1, wherein detecting congestion comprises monitoring a statistic based on a mark count, related to a packet queue length.

### Claim 7 (depends on 1)

The method according to claim 1, wherein detecting congestion comprises monitoring a statistic based on a count of packets that are marked with a congestion mark, indicating that the packets have been subject to congestion on the network.

### Claim 8 (depends on 5)

The method according to claim 5 wherein the statistic is monitored over a period of time.

### Claim 9 (depends on 5)

The method according to claim 5, wherein the statistic based on the drop count and/or the mark count is monitored using a counter added to a flow table entry in the flow-based programmable switch.

### Claim 10 (depends on 9)

The method according to claim 9, wherein the counter is reset to zero for flow table entries that forward traffic to a port on which congestion has been detected.

### Claim 11 (depends on 1)

The method according to claim 1, wherein detecting congestion comprises monitoring a statistic related to a time between handling a packet on the flow-based programmable switch, and handling a return packet associated with the packet on the flow-based programmable switch.

### Claim 12 (depends on 1)

The method according to claim 1, wherein identifying a flow that is causing congestion comprises re-routing packets that have been determined to be subject to congestion for further analysis.

### Claim 13 (depends on 12)

The method according to claim 12, wherein re-routing packets comprises mirroring the packets that have been determined to be subject to congestion.

### Claim 14 (depends on 12)

The method according to claim 12, wherein further analysis of the packets that have been determined to be subject to congestion comprises using timing information of the packets to determine which of the flows represented by the packets is causing congestion.

### Claim 15 (depends on 1)

The method according to claim 1, wherein identifying a flow that is causing congestion comprises correlating port statistics and flow statistics.

### Claim 16 (depends on 1)

The method according to claim 1, wherein penalizing the flow that was identified as causing congestion comprises re-routing the flow that was identified as causing congestion, increasing a probability of dropping packets of the flow that was identified as causing congestion, and/or charging a premium tariff to the owner of the flow that was identified as causing congestion.

### Claim 17 (depends on 1)

The method according to claim 1, wherein penalizing the flow that was identified as causing congestion comprises load balancing traffic across multiple flow-based programmable switches.

### Claim 18 (depends on 1)

The method according to claim 1, wherein one or more of detecting congestion, identifying a flow that is causing congestion, and penalizing the flow that was identified as causing congestion is implemented at least in part outside of the flow-based programmable switch.

### Claim 19

A flow-based programmable switch including a data plane having input ports, output ports, and forwarding rules that map packets received on an input port to an output port based on a packet matching a rule in the forwarding rules, characterized in that the flow-based programmable switch further includes:
a congestion detection module that receives statistics from the data plane, the congestion detection module configured to detect congestion at the flow-based programmable switch;
a traffic/flow extractor module that receives statistics and/or packets from the data plane, the traffic/flow extractor module configured to identify a flow that is causing congestion at the flow-based programmable switch when congestion has been detected; and
a policing module that receives information on the flow that is causing congestion from the traffic/flow extractor module, the policing module configured to penalize the flow that has been identified as causing congestion at the flow-based programmable switch.

### Claim 20 (depends on 19)

The flow-based programmable switch of claim 19, wherein the flow-based programmable switch is configured to use the OpenFlow protocol.
