From e598af67d2260de67968f8cf4d4d2ca2d84aeeb4 Mon Sep 17 00:00:00 2001 From: Yusuke Iwase Date: Mon, 30 Mar 2015 11:47:14 +0900 Subject: [PATCH] rest_firewall: Prevent adding fields which is unrelated to match This patch prevent rest_firewall.py from adding unrelated fields (e.g. priority, actions) into match fields. Signed-off-by: IWASE Yusuke Signed-off-by: FUJITA Tomonori --- ryu/app/rest_firewall.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ryu/app/rest_firewall.py b/ryu/app/rest_firewall.py index 4e52b1fc..b60e62d5 100644 --- a/ryu/app/rest_firewall.py +++ b/ryu/app/rest_firewall.py @@ -897,6 +897,19 @@ class Match(object): REST_NW_PROTO_ICMP: inet.IPPROTO_ICMP, REST_NW_PROTO_ICMPV6: inet.IPPROTO_ICMPV6}} + _MATCHES = [REST_IN_PORT, + REST_SRC_MAC, + REST_DST_MAC, + REST_DL_TYPE, + REST_DL_VLAN, + REST_SRC_IP, + REST_DST_IP, + REST_SRC_IPV6, + REST_DST_IPV6, + REST_NW_PROTO, + REST_TP_SRC, + REST_TP_DST] + @staticmethod def to_openflow(rest): @@ -1002,7 +1015,7 @@ class Match(object): match.setdefault(key, Match._CONVERT[key][value]) else: raise ValueError('Invalid rule parameter. : key=%s' % key) - else: + elif key in Match._MATCHES: match.setdefault(key, value) return match