# US 12,010,021 B2 · Method and system for routing data frames in a network topology

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

- Number: US 12,010,021 B2
- Document ID: US12010021B2
- Status: Granted
- Kind: B2
- Application number: 18/138,255
- Filed: 2023-04-24
- Published: 2023-10-26
- Granted: 2024-06-11
- Earliest claimed: 2022-04-22
- Assignees: Telia AB
- Applicants: Telia Company AB
- Inventors: Babak Tamizkar
- Web page: https://patentgrep.com/patent/US12010021B2

## CPC

- H04L 45/745: Address table lookup; Address filtering
- H04L 45/04: {Interdomain routing, e.g. hierarchical routing}
- H04L 45/24: Multipath
- H04L 45/566: {Routing instructions carried by the data packet, e.g. active networks}
- H04L 45/66: {Layer 2 routing, e.g. in Ethernet based MAN's}
- H04L 45/72: {Routing based on the source address}
- H04L 45/02: Topology update or discovery
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The embodiments herein relate to a method and a system for routing data frames. The method comprising, a first router (R12 120) receiving from a first node (Node-A 121) a data frame. The first router (R12 120) replacing the source MAC address field in the data frame with a MAC address of an egress interface of the first router (R12 120). The first router (R12 120) determining, a MAC address of an ingress interface of a second router (R0 130), and replacing the destination MAC address field of the data frame with the MAC address of the ingress interface of the second router (R0 130). The first router (R12 120) sending the data frame to the second router (R0 130) which replaces the destination MAC address field with the MAC address of the ingress interface of a third router (R34 140). The second router (R0 130) setting the MAC address of the egress interface of the first router (R12 120) in routing table of the second router (R0 130) that matches with the source IP address field of the received data frame, and the second router (R0 130) sending the data frame to the third router (R34 140) through an egress interface of the second router (R0 130) that matches with the destination IP address field of the received data frame.

## Claims

### Claim 1

A method for routing data frames in a network topology comprising a plurality of routers and a plurality of nodes; the method comprising:
a first router (R12 120) receiving from a first node (Node-A 121) a data frame including an Internet Protocol (IP) address of the first node (Node-A 121) in a source IP address field of the data frame, an IP address of a second node (Node-D 141) in a destination IP address field of the data frame, a Medium Access Control (MAC) address of the first node (Node-A 121) in a source MAC address field of the data frame, and in a destination MAC address field of the data frame a MAC address of an ingress interface of the first router (R12 120) obtained by the first node (Node-A 121) from the first router (R12 120);
if the first router (R12 120) is a source router (R12 120), the source router (R12 120) replacing the source MAC address field in the data frame with a MAC address of an egress interface of the first router (R12 120), wherein the egress interface of the first router is indicated in an entry line of a routing table of the first router (R12 120) that matches with the destination IP address field in the received data frame;
the first router (R12 120) determining, based on the IP address of the second node (Node-D 141), a MAC address of an ingress interface of a second router (R0 130), and replacing the destination MAC address field of the data frame with the MAC address of the ingress interface of the second router (R0 130);
the first router (R12 120) sending the data frame to the second router (R0 130) through the egress interface of the first router (R12 120);
if the second router (R0 130) is a transit router (R0 130), the transit router (R0 130) determining, based on the IP address of the second node (Node-D 141) indicated in the destination IP address field in the received data frame, a MAC address of an ingress interface of a third router (R34 140), and the second router (R0 130) replacing the destination MAC address field in the received data frame with the MAC address of the ingress interface of the third router (R34 140);
the second router (R0 130) as the transit router (R0 130) setting/indicating the MAC address of the egress interface of the first router (R12 120) indicated in the source MAC address field of the data frame, in an entry line of a routing table of the transit router (R0 130) that matches with the source IP address field of the received data frame;
the second router (R0 130) sending the data frame to the third router (R34 140) through an egress interface of the second router (R0 130) that matches with the destination IP address field of the received data frame;
if the third router (R34 140) is the destination router (R34 140), the destination router (R34 140) replacing the destination MAC address of the received data frame with the MAC address of the second node (Node-D 141), and the source MAC address of the data frame with the MAC address of an egress interface of the third router (R34 140), wherein the egress interface of the third router (R34 140) is indicated in an entry line of a routing table of the third router (R34 140) that matches with the destination IP address field in the received data frame; the third router (R34 140) forwarding the data frame to the second node (Node-D 141) based on the destination MAC address indicated in the data frame; and the third router (R34 140) setting/indicating the MAC address of the egress interface of the first router (R12 120) indicated in the source MAC address field of the data frame, in an entry line of the routing table of the third router (R34 140) that matches with the source IP address field of the received data frame;
the third router (R34 140) receiving a data frame from the second node (Node-D 141), the data frame including the IP address of the second node (Node-D 141) in a source IP address field of the data frame, the IP address of the first node (Node-A 121) in a destination IP address field of the data frame, a MAC address of the second node (Node-D 141) in a source MAC address field of the data frame, and a MAC address of the ingress interface of the third router (R34 140) in a destination MAC address field of the data frame;
the third router (R34 140) replacing the source MAC address field of the data frame with a MAC address of an egress interface of the third router (R34 140), wherein the egress interface of the third router (R34 140) is indicated in an entry line of the routing table of the third router (R34 140) that matches with the destination IP address field in the received data frame;
the third router (R34 140) retrieving from the routing table of the third router (R34 140), based on the IP address of the first node (Node-A 121), the MAC address of the interface of the first router (R12 120), and replacing the destination MAC address field of the data frame with the MAC address of the interface of the first router (R12 120); and
the third router (R34 140) sending the data frame to the second router (R0 130) being a transit router through the egress interface of the third router (R34 140).

### Claim 2 (depends on 1)

The method according to claim 1, further comprising, the first node (Node-A 121) sending an Address resolution Protocol (ARP) request to the first router (R12 120) to obtain the MAC address of the ingress interface of the first router (R12 120).

### Claim 3 (depends on 1)

The method according to claim 1, further comprising the first router (R12 120) determining based on the IP address of the second node (Node-D 141), a MAC address of the ingress interface of the second router (R0 130), including, either retrieving the MAC address of the ingress interface of the second router (R0 130) from an ARP table of the first router (R12 120), or if not present in the ARP table of the first router (R12 120), sending an ARP request to the second router (R0 130) to obtain the MAC address of the ingress interface of the second router (R0 130).

### Claim 4 (depends on 1)

The method according to claim 1, wherein the first router (R12 120) is the source router if the source IP address in the received data frame is in a same subnet as an IP address of the ingress interface of the first router (R12 120) and the destination IP address field of the received data frame is not in a same subnet as an IP address of any one of the interfaces of the first router (R12 120).

### Claim 5 (depends on 1)

The method according to claim 1, wherein the second router (R0 130) is a transit router (R0 130) if the source IP address and the destination IP address indicated in the data frame are not in a same subnet as an IP address of anyone of the interfaces of the second router (R0 130).

### Claim 6

The method according to 1, further comprising the second router (R0 130) determining based on the IP address of the second node (Node-D 141), a MAC address of the ingress interface of said third router (R34 140), including, either retrieving the MAC address of the ingress interface of the third router (R34 140) from an ARP table of the second router (R0 130), or if not present in the ARP table of the second router (R0 130), sending an ARP request to the third router (R34 140) to obtain the MAC address of the ingress interface of the third router (R34 140).

### Claim 7 (depends on 1)

The method according to claim 1, wherein the third router (R34 140) is the destination router (R34 140) if the destination IP address indicated in the data frame received by the third router (R34 140) is in a same subnet as an IP address of one of the interfaces of the third router (R34 140).

### Claim 8 (depends on 1)

The method according to claim 1, further comprising:
the second router (R0 130) receiving the data frame from the third router (R34 140);
the second router (R0 130) setting/indicating the MAC address of the egress interface of the third router (R34 140) indicated in the source MAC address field of the data frame, in an entry line of the routing table of the second router (R0 130) that matches with the source IP address field of the received data frame; and
the second router (R0 130) sending the data frame to the first router (R12 120) through the egress interface indicated in an entry line of the routing table of the second router (R0 130) that matches with the destination MAC address field of the received data frame.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising:
the first router (R12 120) receiving the data frame from the second router (R0 130);
the first router (R12 120) setting/indicating the MAC address of the egress interface of the third router (R34 140) indicated in the source MAC address field in the received data frame, in an entry line of the routing table of the first router (R12 140) that matches with the source IP address field of the received data frame;
the first router (R12 120) replacing the destination MAC address field of the data frame with the MAC address of the first node (Node-A 121), and replacing the source MAC address of the data frame with the MAC address of the egress interface of the first router (R12 120) that matches with the destination IP address field of the received data frame, and
the first router (R12 120) forwarding the data frame to the first node (Node-A 121) based on the destination MAC address indicated in the data frame.

### Claim 10 (depends on 9)

The method according to claim 9, further comprising:
the first router (R12 120) receiving a data frame from the first node (Node-A 121), the data frame including the IP address of the first node (Node-A 121) in a source IP address field of the data frame, the IP address of the second node (Node-D 141) in a destination IP address field of the data frame, a MAC address of the first node (Node-A 121) in a source MAC address field of the data frame, and a MAC address of the ingress interface of the first router (R12 120) in a destination MAC address field of the data frame;
the first router (R12 120) replacing the source MAC address field of the received data frame with a MAC address of the egress interface of the first router (R12 120), wherein the egress interface of the first router is indicated in an entry line of the routing table of the first router (R12 120) that matches with the destination IP address field in the received data frame;
the first router (R12 120) retrieving from the routing table of the first router (R12 120), based on the IP address of the second node (Node-D 141), the MAC address of the ingress interface of the third router (R34 140), and replacing the destination MAC address field of the data frame with the MAC address of the ingress interface of the third router (R34 140); and
the first router (R12 120) sending the data frame to the second router (R0 130) being a transit router through the egress interface of the first router (R12 120);
the second router (R0 130) receiving the data frame from the first router (R12 120); and
the second router (R0 130) forwarding the data frame to the third router (R34 140) through the egress interface indicated in an entry line of the routing table of the second router (R0 130) that matches with the destination MAC address field in the received data frame.

### Claim 11 (depends on 10)

The method according to claim 10, further comprising:
the third router (R34 140) receiving the data frame from the second router (R0 130);
the third router (R34 140) replacing the destination MAC address field of the data frame with the MAC address of the second node (Node-D 121), and replacing the source MAC address of the data frame with the MAC address of the egress interface of the third router (R34 140), wherein the egress interface of the third router (R34 140) is indicated in an entry line of the routing table of the third router (R34 140) that matches with the destination IP address field in the received data frame; and
the third router (R34 140) forwarding the data frame to the second node (Node-D 141) based on the destination MAC address indicated in the data frame.

### Claim 12

A system for routing data frames in a network topology comprising a plurality of routers and a plurality of nodes; wherein in the system:
a first router (R12 120) receives from a first node (Node-A 121) a data frame including an Internet Protocol (IP) address of the first node (Node-A 121) in a source IP address field of the data frame, an IP address of a second node (Node-D 141) in a destination IP address field of the data frame, a Medium Access Control (MAC) address of the first node (Node-A 121) in a source MAC address field of the data frame, and in a destination MAC address field of the data frame a MAC address of an ingress interface of the first router (R12 120) obtained by the first node (Node-A 121) from the first router (R12 120);
if the first router (R12 120) is a source router (R12 120), the source router (R12 120) replaces the source MAC address field in the data frame with a MAC address of an egress interface of the first router (R12 120), wherein the egress interface of the first router is indicated in an entry line of routing table of the first router (R12 20) that matches with the destination IP address field in the received data frame;
the first router (R12 120) determines, based on the IP address of the second node (Node-D 141), a MAC address of an ingress interface of a second router (R0 130), and replaces the destination MAC address field of the data frame with the MAC address of the ingress interface of the second router (R0 130);
the first router (R12 120) sends the data frame to the second router (R0 130) through the egress interface of the first router (R12 120);
if the second router (R0 130) is a transit router (R0 130), the transit router (R0 130) determines, based on the IP address of the second node (Node-D 141) indicated in the destination IP address field in the received data frame, a MAC address of an ingress interface of a third router (R34 140), and the second router (R0 130) replaces the destination MAC address field in the received data frame with the MAC address of the ingress interface of the third router (R34 140);
the second router (R0 130) as the transit router (R0 130) sets/indicates the MAC address of the egress interface of the first router (R12 120) indicated in the source MAC address field of the data frame, in an entry line of a routing table of the transit router (R0 130) that matches with the source IP address field of the received data frame; and
the second router (R0 130) sends the data frame to the third router (R34 140) through an egress interface of the second router (R0 130) that matches with the destination IP address field of the received data frame;
if the third router (R34 140) is the destination router (R34 140), the destination router (R34 140) replaces the destination MAC address of the received data frame with the MAC address of the second node (Node-D 141), and the source MAC address of the data frame with the MAC address of an egress interface of the third router (R34 140), wherein the egress interface of the third router (R34 140) is indicated in an entry line of a routing table of the third router (R34 140) that matches with the destination IP address field in the received data frame, the third router (R34 140) forwards the data frame to the second node (Node-D 141) based on the destination MAC address indicated in the data frame, and the third router (R34 140) sets/indicates the MAC address of the egress interface of the first router (R12 120) indicated in the source MAC address field of the data frame, in an entry line of the routing table of the third router (R34 140) that matches with the source IP address field of the received data frame;
the third router (R34 140) receives a data frame from the second node (Node-D 141), the data frame including the IP address of the second node (Node-D 141) in a source IP address field of the data frame, the IP address of the first node (Node-A 121) in a destination IP address field of the data frame, a MAC address of the second node (Node-D 141) in a source MAC address field of the data frame, and a MAC address of the ingress interface of the third router (R34 140) in a destination MAC address field of the data frame;
the third router (R34 140) replaces the source MAC address field of the data frame with a MAC address of an egress interface of the third router (R34 140), wherein the egress interface of the third router (R34 140) is indicated in an entry line of the routing table of the third router (R34 140) that matches with the destination IP address field in the received data frame;
the third router (R34 140) retrieves from the routing table of the third router (R34 140), based on the IP address of the first node (Node-A 121), the MAC address of the interface of the first router (R12 120), and replaces the destination MAC address field of the data frame with the MAC address of the interface of the first router (R12 120); and
the third router (R34 140) sends the data frame to the second router (R0 130) being a transit router through the egress interface of the third router (R34 140).

### Claim 13 (depends on 12)

The system according to claim 12, wherein the first node (Node-A 121) sends an Address resolution Protocol (ARP) request to the first router (R12 120) to obtain the MAC address of the ingress interface of the first router (R12 120).

### Claim 14 (depends on 12)

The system according to claim 12, wherein the first router (R12 120) determines based on the IP address of the second node (Node-D 141), a MAC address of the ingress interface of the second router (R0 130), by either retrieving the MAC address of the ingress interface of the second router (R0 130) from an ARP table of the first router (R12 120), or if not present in the ARP table of the first router (R12 120), by sending an ARP request to the second router (R0 130) to obtain the MAC address of the ingress interface of the second router (R0 130).

### Claim 15 (depends on 12)

The system according to claim 12, wherein the first router (R12 120) is the source router if the source IP address in the received data frame is in a same subnet as an IP address of the ingress interface of the first router (R12 120) and the destination IP address field of the received data frame is not in a same subnet as an IP address of anyone of the interfaces of the first router (R12 120).

### Claim 16 (depends on 12)

The system according to claim 12, wherein the second router (R0 130) is a transit router (R0 130) if the source IP address and the destination IP address indicated in the data frame are not in a same subnet as an IP address of anyone of the interfaces of the second router (R0 130).

### Claim 17 (depends on 12)

The system according to claim 12, wherein the second router (R0 130) determines based on the IP address of the second node (Node-D 141), a MAC address of the ingress interface of said third router (R34 140), by either retrieving the MAC address of the ingress interface of the third router (R34 140) from an ARP table of the second router (R0 130), or if not present in the ARP table of the second router (R0 130), by sending an ARP request to the third router (R34 140) to obtain the MAC address of the ingress interface of the third router (R34 140).

### Claim 18 (depends on 12)

The system according to claim 12, wherein the third router (R34 140) is the destination router (R34 140) if the destination IP address indicated in the data frame received by the third router (R34 140) is in a same subnet as an IP address of one of the interfaces of the third router (R34 140).

### Claim 19 (depends on 12)

The system according to claim 12, wherein:
the second router (R0 130) receives the data frame from the third router (R34 140);
the second router (R0 130) sets/indicates the MAC address of the egress interface of the third router (R34 140) indicated in the source MAC address field of the data frame, in an entry line of the routing table of the second router (R0 130) that matches with the source IP address field of the received data frame; and
the second router (R0 130) sends the data frame to the first router (R12 120) through the egress interface indicated in an entry line of the routing table of the second router (R0 130) that matches with the destination MAC address field of the received data frame.

### Claim 20 (depends on 19)

The system according to claim 19, wherein:
the first router (R12 120) receives the data frame from the second router (R0 130);
the first router (R12 120) sets/indicates the MAC address of the egress interface of the third router (R34 140) indicated in the source MAC address field in the received data frame, in an entry line of the routing table of the first router (R12 140) that matches with the source IP address field of the received data frame;
the first router (R12 120) replaces the destination MAC address field of the data frame with the MAC address of the first node (Node-A 121), and replaces the source MAC address of the data frame with the MAC address of the egress interface of the first router (R12 120) that matches with the destination IP address field of the received data frame, and
the first router (R12 120) forwards the data frame to the first node (Node-A 121) based on the destination MAC address indicated in the data frame.

### Claim 21 (depends on 20)

The system according to claim 20, wherein:
the first router (R12 120) receives a data frame from the first node (Node-A 121), the data frame including the IP address of the first node (Node-A 121) in a source IP address field of the data frame, the IP address of the second node (Node-D 141) in a destination IP address field of the data frame, a MAC address of the first node (Node-A 121) in a source MAC address field of the data frame, and a MAC address of the ingress interface of the first router (R12 120) in a destination MAC address field of the data frame;
the first router (R12 120) replaces the source MAC address field of the received data frame with a MAC address of the egress interface of the first router (R12 120), wherein the egress interface of the first router is indicated in an entry line of the routing table of the first router (R12 120) that matches with the destination IP address field in the received data frame;
the first router (R12 120) retrieves from the routing table of the first router (R12 120), based on the IP address of the second node (Node-D 141), the MAC address of the ingress interface of the third router (R34 140), and replaces the destination MAC address field of the data frame with the MAC address of the ingress interface of the third router (R34 140);
the first router (R12 120) sends the data frame to the second router (R0 130) being a transit router through the egress interface of the first router (R12 120);
the second router (R0 130) receives the data frame from the first router (R12 120); and
the second router (R0 130) forwards the data frame to the third router (R34 140) through the egress interface indicated in an entry line of the routing table of the second router (R0 130) that matches with the destination MAC address field in the received data frame.

### Claim 22 (depends on 21)

The system according to claim 21, wherein:
the third router (R34 140) receives the data frame from the second router (R0 130);
the third router (R34 140) replaces the destination MAC address field of the data frame with the MAC address of the second node (Node-D 121); and replaces the source MAC address of the data frame with the MAC address of the egress interface of the third router (R34 140), wherein the egress interface of the third router (R34 140) is indicated in an entry line of the routing table of the third router (R34 140) that matches with the destination IP address field in the received data frame; and
the third router (R34 140) forwards the data frame to the second node (Node-D 141) based on the destination MAC address indicated in the data frame.
