ovs流表

流表分为两大类:

1、 内核中flow table 也称为fast path

2、找用户态中flow table被称为slow path

一个数据报文接收后,会经过多个流表,每个流表负责特定的功能, ovs中的多级流表存放在用户空间,内核态存放的是流表的缓存。

网卡收到报文时,Openvswitch.ko是这么处理数据报文的:

1、通过key查找内核中的flow table,得到action,然后执行action之后,直接发送这个包;

2、在内核无法查找到流表项的时候,通过netlink的方式发送到用户空间,接着会去查找用户态的流表。 真个过程是通过upcall来调用用户态ovs-vswtichd中的flow table实现的

3、如果用户态命中则将对应的信息丢给内核态进行缓存。用户空间没有查到,用户态还要继续将报文的信息丢给控制器,由控制器下发对应的规则

key的组成

MAC层的key :key->eth

网络层的key:key->ip

传输层的key:key->tp

流表发送 流表下发一般是通过以下两种方式: controller通过openflow协议下发FLOW_MOD命令给ovs的Userspace流表。 ovs-ofctl通过openflow协议下发FLOW_MOD给ovs的Userspace流表。ovs-ofctl add-flow最终调用 ofctl_flow_mod(ctx->argc, ctx->argv, OFPFC_ADD); ofctl_flow_mod handle_openflow

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值