diff options
author | Takeshi <a86487817@gmail.com> | 2015-07-09 00:47:00 +0800 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2015-07-09 05:51:08 +0900 |
commit | 4175f99a347da42aa965576cbfeb178ad0af5aff (patch) | |
tree | c05fb524639e2e1a24cc2516e88179c0efae1aae | |
parent | 607eeb0c7e33f9ac22877a33bf7c7acecca2dbee (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.py | 8 | ||||
-rw-r--r-- | ryu/app/simple_switch_12.py | 7 | ||||
-rw-r--r-- | ryu/app/simple_switch_13.py | 8 | ||||
-rw-r--r-- | ryu/app/simple_switch_14.py | 7 |
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 |