Add slice_id to up4 application match string
- add ability to configure slice id per application filter
Change-Id: I6c0a9aedf908b6255e4cd5c1f3700d64de4f18d7
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/up4.py b/TestON/tests/USECASE/SegmentRouting/dependencies/up4.py
index 833cea1..39621e2 100644
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/up4.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/up4.py
@@ -102,6 +102,9 @@
self.pdn_interface = self.pdn_host.interfaces[0]
self.router_mac = main.params["UP4"].get("router_mac", None)
+ for app_filter in self.app_filters.values():
+ if app_filter.get('slice_id', None) is None:
+ app_filter['slice_id'] = self.slice_id
# Start components
self.up4_client.startP4RtClient()
if not self.no_host:
@@ -419,7 +422,7 @@
expect=True,
actual=retValue,
onpass="Correct UE session, terminations and GTP tunnel peers in ONOS",
- onfail="Wrong UE session, terminations and GTP tunnel peers in ONOS. " +
+ onfail="Wrong Application Filters, UE sessions, terminations and/or GTP tunnel peers in ONOS. " +
"Missing:\n" + '\n'.join(failString)
)
@@ -466,13 +469,21 @@
fail = True
return not fail
- def appFilterOnosString(self, app_id, priority, ip_proto, ip_prefix, port_range, slice_id, **kwargs):
- return "UpfApplication(priority=%s, Match(%s%s%s%s) -> Action(app_id=%s))" % (
+ def appFilterOnosString(self, app_id, priority, slice_id=None, ip_proto=None, ip_prefix=None, port_range=None, **kwargs):
+ if slice_id is None:
+ slice_id = self.slice_id
+ matches = []
+ if ip_prefix:
+ matches.append("ip_prefix=%s" % ip_prefix)
+ if port_range:
+ matches.append("l4_port_range=[%s]" % port_range)
+ if ip_proto:
+ matches.append("ip_proto=%s" % ip_proto)
+ matches.append("slice_id=%s" % slice_id)
+
+ return "UpfApplication(priority=%s, Match(%s) -> Action(app_id=%s))" % (
priority,
- ("ip_prefix=%s, " % ip_prefix) if ip_prefix else "",
- ("l4_port_range=[%s], " % port_range) if port_range else "",
- ("ip_proto=%s, " % ip_proto) if ip_proto else "",
- "slice_id=s" % slice_id,
+ ", ".join(matches),
app_id
)
@@ -570,7 +581,7 @@
tunn_peer_id,
tc, five_g, op="clear")
- def __programAppFilter(self, app_id, ip_prefix=None, ip_proto=None,
+ def __programAppFilter(self, app_id, slice_id, ip_prefix=None, ip_proto=None,
port_range=None, priority=0, op="program", **kwargs):
entries = []
@@ -579,7 +590,7 @@
actionName = 'PreQosPipe.set_app_id'
actionParams = {'app_id': str(app_id)}
matchFields = {
- 'slice_id': str(self.slice_id)
+ 'slice_id': str(slice_id)
}
if ip_prefix:
matchFields['app_ip_addr'] = str(ip_prefix)