---
title: 简介
description: "OVS控制面使用C语言开发，提供用户在控制面软件使用开源或定制Open vSwitch场景下，对下发流表进行自定义使其与数据面适配的能力。"
url: https://www.hikunpeng.com/document/detail/zh/flexda/devguide/dpak_dev0066.html
sourcePath: /source/zh/flexda/devguide/dpak_dev0066.html
indexId: fd97fe952ac5a799ecdfd7760b30848e9fdfe451b9b7a6dfde043d9cd901befe44
---
# 简介

OVS控制面使用C语言开发，提供用户在控制面软件使用开源或定制Open vSwitch场景下，对下发流表进行自定义使其与数据面适配的能力。

OVS控制面开发为可选项，默认在未开发情况下，控制面支持下发的key和action列表参见表1与表2。


**表1 控制面支持下发的DPDK key**

| 下发条件 | DPDK key类型名称 | 有效字段类型描述 |
| --- | --- | --- |
| 报文L3协议为IPv4 | RTE\_FLOW\_ITEM\_TYPE\_IPV4 | IPv4的protocol字段，指代报文下一层的协议类型。 |
| 报文L3协议为IPv4 | RTE\_FLOW\_ITEM\_TYPE\_IPV4 | IPv4的SIP字段，源IP。 |
| 报文L3协议为IPv4 | RTE\_FLOW\_ITEM\_TYPE\_IPV4 | IPv4的DIP字段，目的IP。 |
| 报文L3协议为IPv6 | RTE\_FLOW\_ITEM\_TYPE\_IPV6 | IPv6的protocol字段，指代报文下一层的协议类型。 |
| 报文L3协议为IPv6 | RTE\_FLOW\_ITEM\_TYPE\_IPV6 | IPv6的SIP字段，源IP。 |
| 报文L3协议为IPv6 | RTE\_FLOW\_ITEM\_TYPE\_IPV6 | IPv6的DIP字段，目的IP。 |
| 报文L4协议为TCP | RTE\_FLOW\_ITEM\_TYPE\_TCP | TCP的sport字段，源端口。 |
| 报文L4协议为TCP | RTE\_FLOW\_ITEM\_TYPE\_TCP | TCP的dport字段，目的端口。 |
| 报文L4协议为UDP | RTE\_FLOW\_ITEM\_TYPE\_UDP | UDP的sport字段，源端口。 |
| 报文L4协议为UDP | RTE\_FLOW\_ITEM\_TYPE\_UDP | UDP的dport字段，目的端口。 |
| 报文L2协议为ETH和VLAN | RTE\_FLOW\_ITEM\_TYPE\_ETH | 以太协议的eth\_type字段，指代报文下一层的协议类型。 |
| 报文L2协议为ETH和VLAN | RTE\_FLOW\_ITEM\_TYPE\_ETH | 以太协议的smac字段，源MAC。 |
| 报文L2协议为ETH和VLAN | RTE\_FLOW\_ITEM\_TYPE\_ETH | 以太协议的dmac字段，目的MAC。 |
| 报文L2协议为VLAN | RTE\_FLOW\_ITEM\_TYPE\_VLAN | VLAN的vlan\_tci（pri + cfi + vid）字段。 pri表示数据帧的802.1p优先级。 cfi表示MAC地址在不同的传输介质中是否以标准格式进行封装。 vid表示该数据帧所属VLAN的编号。 |
| 默认下发 | RTE\_FLOW\_ITEM\_TYPE\_PORT\_ID | 报文来源的端口ID。 |
| VXLAN隧道报文 | RTE\_FLOW\_ITEM\_TYPE\_VXLAN | VXLAN隧道层的VNI字段，是VXLAN的网络标识符。 |
| 报文L4协议为ICMP | RTE\_FLOW\_ITEM\_TYPE\_ICMP | ICMP的type字段，表示消息的类型，与code共同标识ICMP的报文类型。 |
| 报文L4协议为ICMP | RTE\_FLOW\_ITEM\_TYPE\_ICMP | ICMP的code字段，表示消息的细分类型，与type共同标识ICMP的报文类型。 |
| 报文L4协议为ICMP | RTE\_FLOW\_ITEM\_TYPE\_ICMP | ICMP的identifier字段，表示ICMP该返回应答对应的是哪个返回请求。 |
| 报文L4协议为ICMP6 | RTE\_FLOW\_ITEM\_TYPE\_ICMP6 | ICMP6的type字段，表示消息的类型，与code共同标识ICMP6的报文类型。 |
| 报文L4协议为ICMP6 | RTE\_FLOW\_ITEM\_TYPE\_ICMP6 | ICMP6的code字段，表示消息的细分类型，与type共同标识ICMP6的报文类型。 |


以下action由OVS及OpenFlow流表配置决定是否下发。


**表2 控制面支持下发的DPDK action**

| DPDK action类型名称 | 类型描述 |
| --- | --- |
| RTE\_FLOW\_ACTION\_TYPE\_COUNT | 计数action，用于统计流表表项的命中信息。 |
| RTE\_FLOW\_ACTION\_TYPE\_PORT\_ID | 报文的目的端口ID，用于指示报文出口。 |
| RTE\_FLOW\_ACTION\_TYPE\_SET\_IPV4\_SRC | 修改IPv4的源IP。 |
| RTE\_FLOW\_ACTION\_TYPE\_SET\_IPV4\_DST | 修改IPv4的目的IP。 |
| RTE\_FLOW\_ACTION\_TYPE\_SET\_IPV6\_SRC | 修改IPv6的源IP。 |
| RTE\_FLOW\_ACTION\_TYPE\_SET\_IPV6\_DST | 修改IPv6的目的IP。 |
| RTE\_FLOW\_ACTION\_TYPE\_SET\_TP\_SRC | 修改TCP/UDP的源端口。 |
| RTE\_FLOW\_ACTION\_TYPE\_SET\_TP\_DST | 修改TCP/UDP的目的端口。 |
| RTE\_FLOW\_ACTION\_TYPE\_SET\_MAC\_SRC | 修改eth的源MAC地址。 |
| RTE\_FLOW\_ACTION\_TYPE\_SET\_MAC\_DST | 修改eth的目的MAC地址。 |
| RTE\_FLOW\_ACTION\_TYPE\_OF\_POP\_VLAN | VLAN隧道报文解封装。 |
| RTE\_FLOW\_ACTION\_TYPE\_OF\_PUSH\_VLAN | VLAN隧道报文封装。 |
| RTE\_FLOW\_ACTION\_TYPE\_OF\_SET\_VLAN\_PCP | 修改VLAN报文的优先级PCP字段。 |
| RTE\_FLOW\_ACTION\_TYPE\_OF\_SET\_VLAN\_VID | 修改VLAN报文的VID字段。 |
| RTE\_FLOW\_ACTION\_TYPE\_VXLAN\_ENCAP | VXLAN隧道报文封装。 |
| RTE\_FLOW\_ACTION\_TYPE\_VXLAN\_DECAP | VXLAN隧道报文解封装。 |
| RTE\_FLOW\_ACTION\_TYPE\_SET\_TTL | 设置IP数据包的Time to Live字段。 |
| RTE\_FLOW\_ACTION\_TYPE\_DEC\_TTL | 递减IP数据包的Time to Live字段。 |
