# US 10,320,674 B2 · Independent network interfaces for virtual network environments

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

- Number: US 10,320,674 B2
- Document ID: US10320674B2
- Status: Granted
- Kind: B2
- Application number: 15/414,457
- Filed: 2017-01-24
- Published: 2017-05-11
- Granted: 2019-06-11
- Earliest claimed: 2013-01-22
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Stephan Benny
- Web page: https://patentgrep.com/patent/US10320674B2

## CPC

- H04L 49/70: {Virtual switches}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 41/0213: Standardised network management protocols, e.g. simple network management protocol [SNMP]
- H04L 45/745: Address table lookup; Address filtering
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 2101/622: Layer-2 addresses, e.g. medium access control [MAC] addresses
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

One embodiment includes using a bridge device in support of a kernel bridge infrastructure. The kernel bridge infrastructure is modified using netfilter hooks to prevent forwarding of broadcast packets between bridge ports and to set a source media access control (MAC) address of an egress packet to a corresponding MAC address of a virtual network interface card (vNIC).

## Claims

### Claim 1

A method comprising:
using a bridge device as a root interface in support of a kernel bridge infrastructure;
adding a plurality of virtual network interface cards (vNICs) as bridge ports; and
modifying behavior of the kernel bridge infrastructure using netfilter hooks, the modified behavior including prevention of forwarding of broadcast packets between the bridge ports and setting a source media access control (MAC) address of an egress packet to a corresponding MAC address of a vNIC, resulting in a network independent vNIC,
wherein the bridge device learns the MAC address on each bridge port and selects a vNIC for egress packets.

### Claim 2 (depends on 1)

The method of claim 1, wherein the network independent vNIC operates in Linux/Berkley Software Distribution (BSD) virtual machines (VMs).

### Claim 3 (depends on 1)

The method of claim 1, wherein network operations are executed on the root interface for a first device based on receiving packets through the vNICs, and the root interface is created in the first device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the root interface is a single access point for accessing a plurality of underlying networks.

### Claim 5 (depends on 1)

The method of claim 1, wherein the root interface is assigned network properties and comprises a logical parent interface for all vNICs.

### Claim 6 (depends on 1)

The method of claim 1, wherein processing is performed for the operating system (OS) of the first device as if the received packets are directly received on the root interface to enable the first device to perform the network operations independent of vNICs connectivity; and each of the vNICs comprise child interfaces of the root interface.

### Claim 7 (depends on 4)

The method of claim 4, further comprising: connecting a vNIC added to the root interface to any virtual switch (VS) or VS port in the network system, wherein the vNICs connectivity is transparent to the underlying networks.

### Claim 8 (depends on 4)

The method of claim 4, further comprising:
receiving a packet comprising an address;
creating a table for mapping the address to vNICs;
selecting a vNIC for communicating to an underlying network based on a destination address; and
forwarding broadcast packets generated in the root interface to child vNICs without forwarding broadcast packets between the child vNICs.

### Claim 9 (depends on 8)

The method of claim 8, wherein the root interface is created using a device driver that provides adding other vNICs as child interfaces to the root interface, and a packet received on a child vNIC passes through the root device prior to reaching a networking stack of the OS.

### Claim 10 (depends on 9)

The method of claim 9, wherein the root interface is created based on managing bridge module operations using a bridge utility tool.

### Claim 11 (depends on 3)

The method of claim 3, wherein the first device is one of a virtual machine (VM), and a server with more than one network interfaces.

### Claim 12

A computer program product for providing a network independent interface, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:
use, by the processor, a bridge device as a root interface for supporting a kernel bridge infrastructure;
add, by the processor, a plurality of virtual network interface cards (vNICs) as bridge ports; and
modify, by the processor, behavior of the kernel bridge infrastructure using netfilter hooks, the modified behavior including prevention of forwarding of broadcast packets between bridge ports and setting a source media access control (MAC) address of an egress packet to a corresponding MAC address of a vNIC, resulting in a network independent vNIC,
wherein the bridge device learns the MAC address on each bridge port and selects a vNIC for egress packets.

### Claim 13 (depends on 12)

The computer program product of claim 12, wherein the network independent vNIC operates in Linux/Berkley Software Distribution (BSD) virtual machines (VMs).

### Claim 14 (depends on 12)

The computer program product of claim 12, wherein:
a first device executes network services on the root interface;
network operations are executed on the root interface for the first device based on receiving packets through the vNICs;
the root interface is a single access point for accessing a plurality of underlying networks; and
the root interface is assigned network properties and comprises a logical parent interface for all vNICs.

### Claim 15 (depends on 12)

The computer program product of claim 12, wherein processing is performed for the operating system (OS) of the first device as if the received packets are directly received on the root interface to enable the first device to perform the network operations independent of vNICs connectivity; and each of the vNICs comprise child interfaces of the root interface.

### Claim 16 (depends on 12)

The computer program product of claim 12, further comprising program instructions executable by the processor to cause the processor to: connect a vNIC added to the root interface to any virtual switch (VS) or VS port in the network system, wherein the vNICs connectivity is transparent to the underlying networks.

### Claim 17 (depends on 12)

The computer program product of claim 12, further comprising program instructions executable by the processor to cause the processor to:
receive a packet comprising an address;
create a table for mapping the address to vNICs;
select a vNIC for communicating to an underlying network based on a destination address; and
forward broadcast packets generated in the root interface to child vNICs without forwarding broadcast packets between the child vNICs.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein the root interface is created using a device driver that provides for adding other vNICs as child interfaces to the root interface, and a packet received on a child vNIC passes through the root device prior to reaching a networking stack of the OS.
