summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTakeshi <a86487817@gmail.com>2015-07-09 00:47:00 +0800
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-07-09 05:51:08 +0900
commit4175f99a347da42aa965576cbfeb178ad0af5aff (patch)
treec05fb524639e2e1a24cc2516e88179c0efae1aae
parent607eeb0c7e33f9ac22877a33bf7c7acecca2dbee (diff)
ignore lldp packet to avoid wrong links
Signed-off-by: Takeshi <a86487817@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/app/simple_switch.py8
-rw-r--r--ryu/app/simple_switch_12.py7
-rw-r--r--ryu/app/simple_switch_13.py8
-rw-r--r--ryu/app/simple_switch_14.py7
4 files changed, 30 insertions, 0 deletions
diff --git a/ryu/app/simple_switch.py b/ryu/app/simple_switch.py
index 8fd3d219..a443fa49 100644
--- a/ryu/app/simple_switch.py
+++ b/ryu/app/simple_switch.py
@@ -29,6 +29,7 @@ from ryu.ofproto import ofproto_v1_0
from ryu.lib.mac import haddr_to_bin
from ryu.lib.packet import packet
from ryu.lib.packet import ethernet
+from ryu.topology.switches import LLDPPacket
class SimpleSwitch(app_manager.RyuApp):
@@ -54,6 +55,13 @@ class SimpleSwitch(app_manager.RyuApp):
@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
def _packet_in_handler(self, ev):
msg = ev.msg
+
+ try:
+ # ignore lldp packet
+ LLDPPacket.lldp_parse(msg.data)
+ return
+ except LLDPPacket.LLDPUnknownFormat:
+ pass
datapath = msg.datapath
ofproto = datapath.ofproto
diff --git a/ryu/app/simple_switch_12.py b/ryu/app/simple_switch_12.py
index 3df74e07..ee53d9e0 100644
--- a/ryu/app/simple_switch_12.py
+++ b/ryu/app/simple_switch_12.py
@@ -23,6 +23,7 @@ from ryu.controller.handler import set_ev_cls
from ryu.ofproto import ofproto_v1_2
from ryu.lib.packet import packet
from ryu.lib.packet import ethernet
+from ryu.topology.switches import LLDPPacket
class SimpleSwitch12(app_manager.RyuApp):
@@ -52,6 +53,12 @@ class SimpleSwitch12(app_manager.RyuApp):
@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
def _packet_in_handler(self, ev):
msg = ev.msg
+ try:
+ # ignore lldp packet
+ LLDPPacket.lldp_parse(msg.data)
+ return
+ except LLDPPacket.LLDPUnknownFormat:
+ pass
datapath = msg.datapath
ofproto = datapath.ofproto
in_port = msg.match['in_port']
diff --git a/ryu/app/simple_switch_13.py b/ryu/app/simple_switch_13.py
index b9cbad0f..e224958f 100644
--- a/ryu/app/simple_switch_13.py
+++ b/ryu/app/simple_switch_13.py
@@ -20,6 +20,7 @@ from ryu.controller.handler import set_ev_cls
from ryu.ofproto import ofproto_v1_3
from ryu.lib.packet import packet
from ryu.lib.packet import ethernet
+from ryu.topology.switches import LLDPPacket
class SimpleSwitch13(app_manager.RyuApp):
@@ -70,6 +71,13 @@ class SimpleSwitch13(app_manager.RyuApp):
self.logger.debug("packet truncated: only %s of %s bytes",
ev.msg.msg_len, ev.msg.total_len)
msg = ev.msg
+
+ try:
+ # ignore lldp packet
+ LLDPPacket.lldp_parse(msg.data)
+ return
+ except LLDPPacket.LLDPUnknownFormat:
+ pass
datapath = msg.datapath
ofproto = datapath.ofproto
parser = datapath.ofproto_parser
diff --git a/ryu/app/simple_switch_14.py b/ryu/app/simple_switch_14.py
index 052740af..4cf66a8c 100644
--- a/ryu/app/simple_switch_14.py
+++ b/ryu/app/simple_switch_14.py
@@ -20,6 +20,7 @@ from ryu.controller.handler import set_ev_cls
from ryu.ofproto import ofproto_v1_4
from ryu.lib.packet import packet
from ryu.lib.packet import ethernet
+from ryu.topology.switches import LLDPPacket
class SimpleSwitch14(app_manager.RyuApp):
@@ -61,6 +62,12 @@ class SimpleSwitch14(app_manager.RyuApp):
@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
def _packet_in_handler(self, ev):
msg = ev.msg
+ try:
+ # ignore lldp packet
+ LLDPPacket.lldp_parse(msg.data)
+ return
+ except LLDPPacket.LLDPUnknownFormat:
+ pass
datapath = msg.datapath
ofproto = datapath.ofproto
parser = datapath.ofproto_parser