X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Frest%2Fnetwork.py;h=88ea470eedc0553bb1bd42bc68e7446da657210b;hb=9cc7360bf2c0dacb869d8ed0674d9d9e269a1082;hp=68256f59f650760db0ce0381c39b80a406618446;hpb=ff6b404f001a0460252a29051bc34c07c91e4cf1;p=osm%2Fvim-emu.git diff --git a/src/emuvim/api/rest/network.py b/src/emuvim/api/rest/network.py index 68256f5..88ea470 100755 --- a/src/emuvim/api/rest/network.py +++ b/src/emuvim/api/rest/network.py @@ -39,6 +39,7 @@ import json logging.basicConfig(level=logging.INFO) +# the global net is set from the topology file, and connected via connectDCNetwork function in rest_api_endpoint.py net = None @@ -53,6 +54,10 @@ class NetworkAction(Resource): :param match: OpenFlow match format of the flow entry :param bidirectional: boolean value if the link needs to be implemented from src to dst and back :param cookie: cookie value, identifier of the flow entry to be installed. + :param priority: integer indicating the priority of the flow entry + :param skip_vlan_tag: boolean to indicate whether a new vlan tag should be created for this chain + :param monitor: boolean to indicate whether a new vlan tag should be created for this chain + :param monitor_placement: 'tx'=place the monitoring flowrule at the beginning of the chain, 'rx'=place at the end of the chain :return: message string indicating if the chain action is succesful or not """ @@ -74,7 +79,9 @@ class NetworkAction(Resource): try: # check if json data is a dict data = request.json - if type(data) is not dict: + if data is None: + data = {} + elif type(data) is not dict: data = json.loads(request.json) vnf_src_interface = data.get("vnf_src_interface") @@ -83,6 +90,11 @@ class NetworkAction(Resource): match = data.get("match") bidirectional = data.get("bidirectional") cookie = data.get("cookie") + priority = data.get("priority") + skip_vlan_tag = data.get("skip_vlan_tag") + monitor = data.get("monitor") + monitor_placement = data.get("monitor_placement") + c = net.setChain( vnf_src_name, vnf_dst_name, vnf_src_interface=vnf_src_interface, @@ -91,7 +103,11 @@ class NetworkAction(Resource): weight=weight, match=match, bidirectional=bidirectional, - cookie=cookie) + cookie=cookie, + priority=priority, + skip_vlan_tag=skip_vlan_tag, + monitor=monitor, + monitor_placement=monitor_placement) # return setChain response return str(c), 200 except Exception as ex: