使用 pox 控制器显示 SDN 中所有连接的交换机
Show all connected Switches in a SDN with pox controller
我的环境是mininet。我试图实现的是,每次开关连接或断开连接到 pox 控制器时,控制器应打印所有连接的开关(它们的 DPID)。
def _handle_ConnectionUp (self, event):
print "Switch %s has come up." % event.dpid
我可以使用它吗?在我可以使用 _handle_ConnectionUp 之前我需要实施什么?
提前致谢。
最好的方法是在您的控制器中定义一个集合 Class 并在其中添加所有交换机的 DPID。因此,每次在 _handle_ConnectionUp 中发生事件时,您都可以获得交换机的 DPID 并相应地添加它。
在你的主控制器中class初始化函数
self.switches = set()
和_handle_ConnectionUp函数
def _handle_ConnectionUp(self, event):
"""
Fired up openflow connection with the switch
save the switch dpid
Args:
event: openflow ConnectionUp event
Returns: Nada
"""
self.switches.add(pox.lib.util.dpid_to_str(event.dpid))
因此,如果需要,您应该捕获连接断开事件以移除开关。要获取 Dart 版本的 POX 控制器中当前可用的所有开放流事件混合的列表,请转到 https://github.com/noxrepo/pox/blob/dart/pox/openflow/init.py 事件混合
处的第 336 行
_eventMixin_events = set([
ConnectionUp,
ConnectionDown,
FeaturesReceived,
PortStatus,
FlowRemoved,
PacketIn,
BarrierIn,
ErrorIn,
RawStatsReply,
SwitchDescReceived,
FlowStatsReceived,
AggregateFlowStatsReceived,
TableStatsReceived,
PortStatsReceived,
QueueStatsReceived,
FlowRemoved,
])
如需进一步帮助,您可以使用 Dart POX 查看功能齐全的 SDN 控制器代码,我为希腊塞萨洛尼基的 Python 聚会编写了该代码,可在 https://github.com/tsartsaris/pythess-SDN
我的环境是mininet。我试图实现的是,每次开关连接或断开连接到 pox 控制器时,控制器应打印所有连接的开关(它们的 DPID)。
def _handle_ConnectionUp (self, event):
print "Switch %s has come up." % event.dpid
我可以使用它吗?在我可以使用 _handle_ConnectionUp 之前我需要实施什么?
提前致谢。
最好的方法是在您的控制器中定义一个集合 Class 并在其中添加所有交换机的 DPID。因此,每次在 _handle_ConnectionUp 中发生事件时,您都可以获得交换机的 DPID 并相应地添加它。
在你的主控制器中class初始化函数
self.switches = set()
和_handle_ConnectionUp函数
def _handle_ConnectionUp(self, event):
"""
Fired up openflow connection with the switch
save the switch dpid
Args:
event: openflow ConnectionUp event
Returns: Nada
"""
self.switches.add(pox.lib.util.dpid_to_str(event.dpid))
因此,如果需要,您应该捕获连接断开事件以移除开关。要获取 Dart 版本的 POX 控制器中当前可用的所有开放流事件混合的列表,请转到 https://github.com/noxrepo/pox/blob/dart/pox/openflow/init.py 事件混合
处的第 336 行 _eventMixin_events = set([
ConnectionUp,
ConnectionDown,
FeaturesReceived,
PortStatus,
FlowRemoved,
PacketIn,
BarrierIn,
ErrorIn,
RawStatsReply,
SwitchDescReceived,
FlowStatsReceived,
AggregateFlowStatsReceived,
TableStatsReceived,
PortStatsReceived,
QueueStatsReceived,
FlowRemoved,
])
如需进一步帮助,您可以使用 Dart POX 查看功能齐全的 SDN 控制器代码,我为希腊塞萨洛尼基的 Python 聚会编写了该代码,可在 https://github.com/tsartsaris/pythess-SDN