zoukankan      html  css  js  c++  java
  • ovs 缓存packet + buffer_id

    Packet-In

    使用Packet-In消息的目的是为了将到达OpenFlow交换机的数据包发送至OpenFlow控制器。以下2种情况即可发送Packet-In消息。

    不存在与流表项一致的项目时(Table-miss),OFPR_NO_MATCH 匹配的流表项中记载的行动为“发送至OpenFlow控制器”时,OFPR_ACTION

    发送Packet-In消息时OpenFlow交换机分为两种情况,一种是缓存数据包,一种是不缓存数据包。如果不通过OpenFlow交换机缓存数据包,那么Packet-In消息的buffer_id字段设置为-1,将整个数据包发送至OpenFlow控制器。 如果通过OpenFlow交换机缓存数据包,那么以通过SET_CONFIG消息设置的miss_send_len为最大值的数据包数据将发送至OpenFlow控制器。 miss_send_len的默认值为128。未实施SET_CONFIG消息的交换时,使用该默认值。

    字段 比特数 内容
    buffer_id 32 表示OpenFlow交换机中保存的数据包的缓存id
    Total_len 16 帧的长度
    in_port 16 接受帧的端口
    reason 8 发送Packet-in消息的原因
    pad 8 用于调整对齐的填充
    data 任意 包含以太网帧的数据时使用的字段。

    Packet-Out

    Packet-Out消息是从OpenFlow控制器向OpenFlow交换机发送的消息,是包含数据包发送命令的消息”。 若OpenFlow交换机的缓存中已存在数据包,而OpenFlow控制器发出“发送该数据包”的命令时,该消息指定了表示相应数据包的buffer_id。使用Packet-Out消息还可将OpenFlow控制器创建的数据包发送至OpenFlow交换机。此时,buffer_id置为-1,在Packet-Out消息的最后添加数据包数据。

    字段 比特数 内容
    buffer_id 32 表示OpenFlow交换机中保存的数据包的缓存id
    in_port 16 数据包的输入端口
    actions_len 16 行动信息的长度
  • 相关阅读:
    java算法:树遍历
    java算法:图遍历(深度优先和广度优先)
    Google禁止继续研发开源的"盖亚计划"
    Vc编程调试入门
    访著名Linux内核程序员大鹰
    访著名Linux内核程序员大鹰
    百度玩"精准搜索" 个人隐私保护问题值得商榷
    Google禁止继续研发开源的"盖亚计划"
    加密CMD使电脑溢出也拿不到CMD权限
    百度玩"精准搜索" 个人隐私保护问题值得商榷
  • 原文地址:https://www.cnblogs.com/dream397/p/13182629.html
Copyright © 2011-2022 走看看