# US 10,484,274 B2 · Controlling packets of virtual machines

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

- Number: US 10,484,274 B2
- Document ID: US10484274B2
- Status: Granted
- Kind: B2
- Application number: 16/066,398
- Filed: 2016-12-26
- Published: 2019-08-29
- Granted: 2019-11-19
- Earliest claimed: 2015-12-31
- Assignees: New H3C Technologies Co., Ltd.
- Applicants: New H3C Technologies Co., Ltd
- Inventors: Weifeng Wang
- Web page: https://patentgrep.com/patent/US10484274B2

## CPC

- H04L 45/64: using an overlay routing layer
- 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/0894: Policy-based network configuration management
- H04L 41/342: between virtual entities, e.g. orchestrators, SDN or NFV entities
- H04L 45/38: {Flow based routing}
- H04L 45/66: {Layer 2 routing, e.g. in Ethernet based MAN's}
- H04L 45/74: Address processing for routing
- H04L 49/70: {Virtual switches}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- 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

Examples of the present disclosure provide a VM packet controlling method and apparatus, applicable for an OpenStack network. The OpenStack network includes an OpenStack controller node, an OpenStack compute node, and a virtual network system. The OpenStack network is communicatively connected with an SDN controller, the virtual network system includes a VM and a virtual network apparatus responsible for forwarding packets of the virtual machine. The OpenStack controller node creates a port for the VM, informs the SDN controller of a port UUID and a forwarding rule applied on the port; the OpenStack controller node receives a port ID, and transmits a corresponding relationship between the port ID and the port UUID to the SDN controller, the SDN controller generates a flow table according to the forwarding rule applied on the port, and issues the flow table to the virtual network apparatus according to the corresponding relationship.

## Claims

### Claim 1

A virtual machine packet controlling method, applicable for an OpenStack network, wherein the OpenStack network comprises an OpenStack controller node, an OpenStack compute node, and a virtual network system; the OpenStack network is communicatively connected with a software defined network (SDN) controller, the virtual network system comprises a virtual machine (VM), and a virtual network apparatus responsible for forwarding packets of the virtual machine; the method comprising:
creating, by the OpenStack controller node, a port for the virtual machine, and informing the SDN controller of a port universally unique identifier (UUID) of the port created for the VM and a forwarding rule applied on the port;
after the VM is created in the virtual network system, the OpenStack controller node receiving a port ID of the VM retrieved by the OpenStack compute node, wherein the port ID of the VM is allocated by the virtual network system according to a configured port group;
the OpenStack controller node transmitting a corresponding relationship between the port ID and the port UUID of the VM to the SDN controller, wherein the SDN controller generates a flow table according to the forwarding rule applied on the port, and issues the flow table to the virtual network apparatus according to the corresponding relationship.

### Claim 2 (depends on 1)

The method of claim 1, wherein the OpenStack controller node transmitting the corresponding relationship between the port ID and the port UUID of the VM to the SDN controller comprises:
the OpenStack controller generating a port update message, wherein the port update message includes the port ID acting as a port name of the VM and the port UUID corresponding to the port ID;
the OpenStack controller node transmitting the port update message to the SDN controller.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
before the OpenStack controller node creating the port for the VM, the OpenStack controller node transmitting a configured forwarding group and the forwarding rule to the SDN controller, wherein each forwarding group has a unique forwarding group identifier;
the informing the SDN controller of the port UUID created for the VM and the forwarding rule applied on the port comprises:
informing the SDN controller of the port UUID created for the VM and the forwarding group identifier of the forwarding group configured for the port of the VM.

### Claim 4 (depends on 3)

The method of claim 3, wherein the forwarding group is a security group, the forwarding rule is a security group rule, and the forwarding group identifier is a security group identifier;
or, the forwarding group is a service chain, the forwarding rule is service chain information, and the forwarding group identifier is a service chain identifier.

### Claim 5

A virtual machine packet controlling method, applicable for a software defined network (SDN) controller, wherein the SDN controller is communicatively connected with an OpenStack network, the OpenStack network comprises an OpenStack controller node, an OpenStack compute node and a virtual network system, the virtual network system comprises a virtual machine (VM), and a virtual network apparatus responsible for forwarding packets of the virtual machine; the method comprising:
after the OpenStack controller node creates a port for the VM, the SDN controller obtaining a port universally unique identifier (UUID) of the port created for the VM by the OpenStack controller node and a forwarding rule applied on the port;
the SDN controller receiving from the OpenStack controller and saving a corresponding relationship between an port ID and the port UUID of the VM, wherein the OpenStack controller node receives from the OpenStack compute node the port ID of the VM retrieved by the OpenStack compute node, the port ID of the VM is allocated by the virtual network system according to a configured port group;
the SDN controller generating a flow table according to the forwarding rule applied on the port, and issuing the flow table to the virtual network apparatus according to the corresponding relationship.

### Claim 6 (depends on 5)

The method of claim 5, wherein the SDN controller receiving and saving the corresponding relationship between the port ID and the port UUID of the VM comprises:
the SDN controller receiving a port update message from the OpenStack controller node;
the SDN controller parsing the port update message and obtaining the port UUID and the port ID carried in a port name; and
the SDN controller saving the corresponding relationship between the port UUID and the port ID of the VM.

### Claim 7 (depends on 5)

The method of claim 5, wherein before the SDN controller obtains the port UUID of the port created for the VM by the OpenStack controller node and the forwarding rule applied on the port, the method further comprises:
the SDN controller receiving a forwarding group and the forwarding rule from the OpenStack controller node; wherein each forwarding group has a unique forwarding group identifier;
the SDN controller obtaining the port UUID of the port created for the VM by the OpenStack controller and the forwarding rule applied on the port comprises:
the SDN controller receiving the port UUID of the VM from the OpenStack controller node and a forwarding group identifier of the forwarding group utilized by the port of the VM, creating a corresponding relationship between the port UUID of the VM and the forwarding group identifier of the forwarding group utilized by the port of the VM;
the SDN controller generating the flow table according to the forwarding rule applied on the port and issuing the flow table to the virtual network apparatus according to the corresponding relationship comprises:
the SDN controller determining the forwarding rule contained in the forwarding group applied on the port of the VM according to the forwarding group identifier;
the SDN controller generating the flow table according to the determined forwarding rule; and
the SDN controller issuing the flow table to the corresponding virtual network apparatus according to the corresponding relationship between the port ID and the port UUID of the VM.

### Claim 8

A virtual machine packet controlling apparatus, applicable for an OpenStack controller node of an OpenStack network, wherein the OpenStack network comprises an OpenStack controller node, an OpenStack compute node and a virtual network system, the OpenStack controller node is communicatively connected with a software defined network (SDN) controller, the virtual network system comprises a virtual machine (VM), and a virtual network apparatus responsible for forwarding packets of the virtual machine, the apparatus comprising:
a port creation notifying module, to create a port for the VM, and inform the SDN controller of a port universally unique identifier (UUID) of the port created for the VM and a forwarding rule applied on the port; and
a port update notifying module, to receive, after the OpenStack controller node creates the VM in the virtual network system, a port ID of the port of the VM retrieved by the OpenStack compute node, wherein the port ID of the port of the VM is allocated by the virtual network system according to a configured port group; transmit the port ID of the port UUID to the SDN controller, wherein the SDN controller generates a flow table according to the forwarding rule applied on the port, and issues the flow table to the virtual network apparatus according to the corresponding relationship.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein in order to transmit the corresponding relationship between the port ID and the port UUID to the SDN controller, the port update notifying module is further to:
generate a port update message, wherein the port update message comprises the port ID acting as a port name and the port UUID corresponding to the port ID; and
transmit the port update message to the SDN controller.

### Claim 10 (depends on 8)

The apparatus of claim 8, wherein the port creation notifying module is further to: before the port is created for the VM, transmit a configured forwarding group and the forwarding rule to the SDN controller, wherein each forwarding group has a unique forwarding group identifier;
in order to inform the SDN controller of the port UUID of the port created for the VM and the forwarding rule applied on the port of the VM, the port creation notifying module is further to:
inform the SDN controller of the port UUID of the port created for the VM and the forwarding group identifier of the forwarding group configured for the port of the VM.

### Claim 11

A virtual machine packet controlling apparatus, applied in a software defined network (SDN) controller, wherein the SDN controller is communicatively connected with an OpenStack network, the OpenStack network comprises an OpenStack controller node, an OpenStack compute node and a virtual network system, the virtual network system comprises a virtual machine (VM) and a virtual network apparatus responsible for forwarding packets of the virtual machine; the apparatus comprising:
a port creation notification receiving module, to obtain, after the OpenStack controller node creates a port for the VM, a port universally unique identifier (UUID) of the port created for the VM by the OpenStack controller node and a forwarding rule applied on the port; and
a flow table generating module, to receive from the OpenStack controller node and save a corresponding relationship between a port ID of the port of the VM and the port UUID of the VM, wherein the OpenStack controller node receives from the OpenStack compute node the port ID of the VM retrieved by the OpenStack compute node, the port ID of the VM is allocated by the virtual network system according to a configured port group; generate a flow table according to the forwarding rule applied on the port, and issue the flow table to the virtual network apparatus according to the corresponding relationship.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein in order to receive and save the corresponding relationship between the port ID and the port UUID of the VM, the flow table generating module is further to:
receive a port update message from the OpenStack controller node;
parse the port update message, obtain the port UUID of the VM and the port ID of the VM carried in a port name; and
save the corresponding relationship between the port UUID and the port ID of the VM.

### Claim 13 (depends on 11)

The apparatus of claim 11, wherein the port creation notification receiving module is further to receive a forwarding group and the forwarding rule transmitted by the OpenStack controller node before obtaining the port UUID of the port created for the VM by the OpenStack controller node and the forwarding rule applied on the port, wherein each forwarding group has a unique forwarding group identifier;
in order to obtain the port UUID of the port created for the VM by the OpenStack controller node and the forwarding rule applied on the port, the port creation notification receiving module is further to:
receive the port UUID of the VM transmitted by the OpenStack controller node and the forwarding group identifier of the forwarding group utilized by the port of the VM, and establish a corresponding relationship between the port UUID of the VM and the forwarding group identifier of the forwarding group utilized by the port of the VM;
in order to generate the flow table according to the forwarding rule applied on the port and issue the flow table to the virtual network apparatus according to the corresponding relationship, the flow table generating module is further to:
determine the forwarding rule included in the forwarding group applied on the port of the VM according to the forwarding group identifier;
generate the flow table according to the determined forwarding rule; and
issue the flow table to the corresponding virtual network apparatus according to the corresponding relationship between the port UUID and the port ID of the VM.
