鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

简介

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

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

表1 控制面支持下发的key

下发条件

DPDK key类型名称

有效字段类型描述

报文L3协议为IPV4

RTE_FLOW_ITEM_TYPE_IPV4

IPv4的protocol字段,指代报文下一层的协议类型。

IPv4的SIP字段,源IP。

IPv4的DIP字段,目的IP。

报文L3协议为IPV6

RTE_FLOW_ITEM_TYPE_IPV6

IPv6的protocol字段,指代报文下一层的协议类型。

IPv6的SIP字段,源IP。

IPv6的DIP字段,目的IP。

报文L4协议为TCP

RTE_FLOW_ITEM_TYPE_TCP

TCP的sport字段,源端口。

TCP的dport字段,目的端口。

报文L4协议为UDP

RTE_FLOW_ITEM_TYPE_UDP

UDP的sport字段,源端口。

UDP的dport字段,目的端口。

报文L2协议为ETH和VLAN

RTE_FLOW_ITEM_TYPE_ETH

以太协议的eth_type字段,指代报文下一层的协议类型。

以太协议的smac字段,源MAC。

以太协议的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的报文类型。

ICMP的code字段,表示消息的细分类型,与type共同标识ICMP的报文类型。

ICMP的identifier字段,表示ICMP该回显应答对应的是哪个回显请求。

报文L4协议为ICMP6

RTE_FLOW_ITEM_TYPE_ICMP6

ICMP6的type字段,表示消息的类型,与code共同标识ICMP的报文类型。

ICMP6的code字段,表示消息的细分类型,与type共同标识ICMP的报文类型。

以下action由openvswitch及openflow流表配置决定是否下发。

表2 控制面支持下发的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字段。