添加流以通过ODL控制器的RESTCONF API推送MPLS

时间:2016-08-02 20:24:47

标签: sdn openflow opendaylight ietf-restconf

我是SDN和ODL的初学者,我正在尝试将OpenFlow流添加到mininet中的OVS交换机,但是当我检查Wireshark中的数据包时,流量没有反映出来。这就是我的情景。

  • 3个具有线性拓扑和3个主机连接的交换机:sudo mn --topo linear --controller remote --switch ovsk,protocols = OpenFlow13
  • ODL控制器在与mininet相同的VM上运行

我想要做的是手动配置MPLS。例如,作为一个起点,我试图为从Host1到Host3的数据包添加MPLS标签。我正在尝试使用RESTCONF API完成此任务,并且我为我发送的请求获取状态代码200(OK)。下面是RESTCONF请求的XML主体。

对于在Switch1的端口1上传入的IP数据包,要推送值为12的MPLS标签并将其转发出端口2:    0 0 0x8847 1 12 2 2 0 100 0x800 1 0 10 true 0 flow-action-push-mpls 220

网址=" http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table0/flow/100"

标题= {'内容类型':' application / xml''接受':' application / json'}

请求类型= PUT

身份验证=基本身份验证

然后当我在交换机1的端口2上使用wireshark检查数据包时,我看不到MPLS头。

OpenFlow和RestConf插件安装在ODL中。添加的流不作用于数据包的可能原因是什么?

PS。我使用包管理器安装了mininet而没有使用预先构建的VM。

1 个答案:

答案 0 :(得分:0)

我发现OpenvSwitch没有在我的主机上运行!我不得不在/etc/init.d/openvswitch-switch中重启服务。我使用$sudo /etc/init.d/openvswitch-switch status检查了状态,通常应该说openvswitch正在运行,但事实并非如此。要重新启动服务,我执行了sudo /etc/init.d/openvswitch-switch restart

在此之后,我能够在交换机和控制器之间进行连接。但是我的流量没有从控制器推送到交换机,原因是我仍然不确定它是什么,但我想我有一些丢失的xml标签,当我提到ODL端到端时它被修复了。结束流程示例https://wiki.opendaylight.org/view/Editing_OpenDaylight_OpenFlow_Plugin:End_to_End_Flows:Example_Flows,以我感兴趣的示例为基础,并根据我的需求进行定制。

相关问题