Skip to content

Commit fe32c4a

Browse files
authored
Use new refactored UPF entities and get slice ID from entities (#463)
1 parent 7c00a0e commit fe32c4a

File tree

6 files changed

+63
-63
lines changed

6 files changed

+63
-63
lines changed

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
1111
<parent>
1212
<groupId>org.onosproject</groupId>
1313
<artifactId>onos-dependencies</artifactId>
14-
<version>2.5.6-SNAPSHOT</version>
14+
<version>2.5.7-SNAPSHOT</version>
1515
</parent>
1616

1717
<groupId>org.stratumproject</groupId>

src/main/java/org/stratumproject/fabric/tna/behaviour/upf/FabricUpfProgrammable.java

+15-15
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
import org.onosproject.core.CoreService;
1212
import org.onosproject.drivers.p4runtime.AbstractP4RuntimeHandlerBehaviour;
1313
import org.onosproject.net.PortNumber;
14-
import org.onosproject.net.behaviour.upf.GtpTunnelPeer;
15-
import org.onosproject.net.behaviour.upf.SessionDownlink;
16-
import org.onosproject.net.behaviour.upf.SessionUplink;
14+
import org.onosproject.net.behaviour.upf.UpfGtpTunnelPeer;
15+
import org.onosproject.net.behaviour.upf.UpfSessionDownlink;
16+
import org.onosproject.net.behaviour.upf.UpfSessionUplink;
1717
import org.onosproject.net.behaviour.upf.UpfApplication;
1818
import org.onosproject.net.behaviour.upf.UpfCounter;
1919
import org.onosproject.net.behaviour.upf.UpfEntity;
@@ -603,10 +603,10 @@ public void apply(UpfEntity entity) throws UpfProgrammableException {
603603
addInterface((UpfInterface) entity);
604604
break;
605605
case SESSION_UPLINK:
606-
addUeSessionUplink((SessionUplink) entity);
606+
addUeSessionUplink((UpfSessionUplink) entity);
607607
break;
608608
case SESSION_DOWNLINK:
609-
addUeSessionDownlink((SessionDownlink) entity);
609+
addUeSessionDownlink((UpfSessionDownlink) entity);
610610
break;
611611
case TERMINATION_UPLINK:
612612
addUpfTerminationUplink((UpfTerminationUplink) entity);
@@ -615,7 +615,7 @@ public void apply(UpfEntity entity) throws UpfProgrammableException {
615615
addUpfTerminationDownlink((UpfTerminationDownlink) entity);
616616
break;
617617
case TUNNEL_PEER:
618-
addGtpTunnelPeer((GtpTunnelPeer) entity);
618+
addGtpTunnelPeer((UpfGtpTunnelPeer) entity);
619619
break;
620620
case APPLICATION:
621621
addUpfApplication((UpfApplication) entity);
@@ -646,7 +646,7 @@ private void addInterface(UpfInterface upfInterface) throws UpfProgrammableExcep
646646
}
647647
}
648648

649-
private void addGtpTunnelPeer(GtpTunnelPeer peer) throws UpfProgrammableException {
649+
private void addGtpTunnelPeer(UpfGtpTunnelPeer peer) throws UpfProgrammableException {
650650
Pair<FlowRule, FlowRule> fabricGtpTunnelPeers = upfTranslator.gtpTunnelPeerToFabricEntry(
651651
peer, deviceId, appId, DEFAULT_PRIORITY);
652652
log.info("Installing ingress and egress rules {}, {}",
@@ -656,15 +656,15 @@ private void addGtpTunnelPeer(GtpTunnelPeer peer) throws UpfProgrammableExceptio
656656
fabricGtpTunnelPeers.getLeft().id().value(), fabricGtpTunnelPeers.getRight().id().value());
657657
}
658658

659-
private void addUeSessionUplink(SessionUplink ueSession) throws UpfProgrammableException {
659+
private void addUeSessionUplink(UpfSessionUplink ueSession) throws UpfProgrammableException {
660660
FlowRule fabricUeSession = upfTranslator.sessionUplinkToFabricEntry(
661661
ueSession, deviceId, appId, DEFAULT_PRIORITY);
662662
log.info("Installing {}", ueSession.toString());
663663
flowRuleService.applyFlowRules(fabricUeSession);
664664
log.debug("Uplink UE session added with flowID {}", fabricUeSession.id().value());
665665
}
666666

667-
private void addUeSessionDownlink(SessionDownlink ueSession) throws UpfProgrammableException {
667+
private void addUeSessionDownlink(UpfSessionDownlink ueSession) throws UpfProgrammableException {
668668
FlowRule fabricUeSession = upfTranslator.sessionDownlinkToFabricEntry(
669669
ueSession, deviceId, appId, DEFAULT_PRIORITY);
670670
log.info("Installing {}", ueSession.toString());
@@ -699,10 +699,10 @@ public void delete(UpfEntity entity) throws UpfProgrammableException {
699699
removeInterface((UpfInterface) entity);
700700
break;
701701
case SESSION_UPLINK:
702-
removeSessionUplink((SessionUplink) entity);
702+
removeSessionUplink((UpfSessionUplink) entity);
703703
break;
704704
case SESSION_DOWNLINK:
705-
removeSessionDownlink((SessionDownlink) entity);
705+
removeSessionDownlink((UpfSessionDownlink) entity);
706706
break;
707707
case TERMINATION_UPLINK:
708708
removeUpfTerminationUplink((UpfTerminationUplink) entity);
@@ -711,7 +711,7 @@ public void delete(UpfEntity entity) throws UpfProgrammableException {
711711
removeUpfTerminationDownlink((UpfTerminationDownlink) entity);
712712
break;
713713
case TUNNEL_PEER:
714-
removeGtpTunnelPeer((GtpTunnelPeer) entity);
714+
removeGtpTunnelPeer((UpfGtpTunnelPeer) entity);
715715
break;
716716
case APPLICATION:
717717
removeUpfApplication((UpfApplication) entity);
@@ -792,7 +792,7 @@ private void removeInterface(UpfInterface upfInterface) throws UpfProgrammableEx
792792
removeEntry(match2, FABRIC_INGRESS_SPGW_INTERFACES, false);
793793
}
794794

795-
private void removeSessionUplink(SessionUplink ueSession) throws UpfProgrammableException {
795+
private void removeSessionUplink(UpfSessionUplink ueSession) throws UpfProgrammableException {
796796
final PiCriterion match;
797797

798798
match = PiCriterion.builder()
@@ -803,7 +803,7 @@ private void removeSessionUplink(SessionUplink ueSession) throws UpfProgrammable
803803
removeEntry(match, FABRIC_INGRESS_SPGW_UPLINK_SESSIONS, false);
804804
}
805805

806-
private void removeSessionDownlink(SessionDownlink ueSession) throws UpfProgrammableException {
806+
private void removeSessionDownlink(UpfSessionDownlink ueSession) throws UpfProgrammableException {
807807
final PiCriterion match;
808808

809809
match = PiCriterion.builder()
@@ -836,7 +836,7 @@ private void removeUpfTerminationDownlink(UpfTerminationDownlink upfTermination)
836836
removeEntry(match, FABRIC_INGRESS_SPGW_DOWNLINK_TERMINATIONS, false);
837837
}
838838

839-
private void removeGtpTunnelPeer(GtpTunnelPeer peer) throws UpfProgrammableException {
839+
private void removeGtpTunnelPeer(UpfGtpTunnelPeer peer) throws UpfProgrammableException {
840840
PiCriterion match = PiCriterion.builder()
841841
.matchExact(HDR_TUN_PEER_ID, peer.tunPeerId())
842842
.build();

src/main/java/org/stratumproject/fabric/tna/behaviour/upf/FabricUpfTranslator.java

+22-23
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
import org.onlab.packet.Ip4Prefix;
99
import org.onosproject.core.ApplicationId;
1010
import org.onosproject.net.DeviceId;
11-
import org.onosproject.net.behaviour.upf.GtpTunnelPeer;
12-
import org.onosproject.net.behaviour.upf.SessionDownlink;
13-
import org.onosproject.net.behaviour.upf.SessionUplink;
11+
import org.onosproject.net.behaviour.upf.UpfGtpTunnelPeer;
12+
import org.onosproject.net.behaviour.upf.UpfSessionDownlink;
13+
import org.onosproject.net.behaviour.upf.UpfSessionUplink;
1414
import org.onosproject.net.behaviour.upf.UpfApplication;
1515
import org.onosproject.net.behaviour.upf.UpfInterface;
1616
import org.onosproject.net.behaviour.upf.UpfProgrammableException;
@@ -95,9 +95,6 @@
9595
*/
9696
public class FabricUpfTranslator {
9797

98-
// FIXME: slice ID should come from UP4
99-
private static final SliceId SLICE_MOBILE = SliceId.DEFAULT;
100-
10198
/**
10299
* Returns true if the given table entry is a GTP tunnel peer rule from the
103100
* physical fabric pipeline, and false otherwise.
@@ -107,7 +104,7 @@ public class FabricUpfTranslator {
107104
*/
108105
public boolean isFabricGtpTunnelPeer(FlowRule entry) {
109106
// we return egress tunnel_peers table, because only this table
110-
// contains all necessary information to create GtpTunnelPeer instance.
107+
// contains all necessary information to create UpfGtpTunnelPeer instance.
111108
return entry.table().equals(FABRIC_EGRESS_SPGW_EG_TUNNEL_PEERS);
112109
}
113110

@@ -186,16 +183,16 @@ private void assertTableId(FlowRule entry, PiTableId tableId) throws UpfProgramm
186183
}
187184

188185
/**
189-
* Translate a fabric.p4 GTP tunnel peer table entry to a GtpTunnelPeer instance for easier handling.
186+
* Translate a fabric.p4 GTP tunnel peer table entry to a UpfGtpTunnelPeer instance for easier handling.
190187
*
191188
* @param entry the fabric.p4 entry to translate, the method expects FlowRule from eg_tunnel_peers table.
192-
* @return the corresponding GtpTunnelPeer
189+
* @return the corresponding UpfGtpTunnelPeer
193190
* @throws UpfProgrammableException if the entry cannot be translated
194191
*/
195-
public GtpTunnelPeer fabricEntryToGtpTunnelPeer(FlowRule entry)
192+
public UpfGtpTunnelPeer fabricEntryToGtpTunnelPeer(FlowRule entry)
196193
throws UpfProgrammableException {
197194
assertTableId(entry, FABRIC_EGRESS_SPGW_EG_TUNNEL_PEERS);
198-
GtpTunnelPeer.Builder builder = GtpTunnelPeer.builder();
195+
UpfGtpTunnelPeer.Builder builder = UpfGtpTunnelPeer.builder();
199196

200197
Pair<PiCriterion, PiTableAction> matchActionPair = FabricUpfTranslatorUtil.fabricEntryToPiPair(entry);
201198
PiCriterion match = matchActionPair.getLeft();
@@ -204,7 +201,7 @@ public GtpTunnelPeer fabricEntryToGtpTunnelPeer(FlowRule entry)
204201

205202
if (!action.id().equals(FABRIC_EGRESS_SPGW_LOAD_TUNNEL_PARAMS)) {
206203
throw new UpfProgrammableException(
207-
"Invalid action provided, cannot build GtpTunnelPeer instance: " + action.id());
204+
"Invalid action provided, cannot build UpfGtpTunnelPeer instance: " + action.id());
208205
}
209206

210207
builder.withSrcAddr(FabricUpfTranslatorUtil.getParamAddress(action, TUNNEL_SRC_ADDR))
@@ -221,10 +218,10 @@ public GtpTunnelPeer fabricEntryToGtpTunnelPeer(FlowRule entry)
221218
* @return the corresponding UeSession
222219
* @throws UpfProgrammableException if the entry cannot be translated
223220
*/
224-
public SessionUplink fabricEntryToUeSessionUplink(FlowRule entry)
221+
public UpfSessionUplink fabricEntryToUeSessionUplink(FlowRule entry)
225222
throws UpfProgrammableException {
226223
assertTableId(entry, FABRIC_INGRESS_SPGW_UPLINK_SESSIONS);
227-
SessionUplink.Builder builder = SessionUplink.builder();
224+
UpfSessionUplink.Builder builder = UpfSessionUplink.builder();
228225

229226
Pair<PiCriterion, PiTableAction> matchActionPair = FabricUpfTranslatorUtil.fabricEntryToPiPair(entry);
230227
PiCriterion match = matchActionPair.getLeft();
@@ -250,10 +247,10 @@ public SessionUplink fabricEntryToUeSessionUplink(FlowRule entry)
250247
* @return the corresponding UeSession
251248
* @throws UpfProgrammableException if the entry cannot be translated
252249
*/
253-
public SessionDownlink fabricEntryToUeSessionDownlink(FlowRule entry)
250+
public UpfSessionDownlink fabricEntryToUeSessionDownlink(FlowRule entry)
254251
throws UpfProgrammableException {
255252
assertTableId(entry, FABRIC_INGRESS_SPGW_DOWNLINK_SESSIONS);
256-
SessionDownlink.Builder builder = SessionDownlink.builder();
253+
UpfSessionDownlink.Builder builder = UpfSessionDownlink.builder();
257254
Pair<PiCriterion, PiTableAction> matchActionPair = FabricUpfTranslatorUtil.fabricEntryToPiPair(entry);
258255
PiCriterion match = matchActionPair.getLeft();
259256
PiAction action = (PiAction) matchActionPair.getRight();
@@ -365,7 +362,8 @@ public UpfInterface fabricEntryToInterface(FlowRule entry)
365362
PiAction action = (PiAction) matchActionPair.getRight();
366363

367364
var ifaceBuilder = UpfInterface.builder()
368-
.setPrefix(FabricUpfTranslatorUtil.getFieldPrefix(match, HDR_IPV4_DST_ADDR));
365+
.setPrefix(FabricUpfTranslatorUtil.getFieldPrefix(match, HDR_IPV4_DST_ADDR))
366+
.setSliceId(FabricUpfTranslatorUtil.getParamByte(action, SLICE_ID));
369367

370368
if (action.id().equals(FABRIC_INGRESS_SPGW_IFACE_ACCESS)) {
371369
ifaceBuilder.setAccess();
@@ -388,6 +386,7 @@ public UpfApplication fabricEntryToUpfApplication(FlowRule entry)
388386
PiAction action = (PiAction) matchActionPair.getRight();
389387
UpfApplication.Builder appFilteringBuilder = UpfApplication.builder()
390388
.withAppId(FabricUpfTranslatorUtil.getParamByte(action, APP_ID))
389+
.withSliceId(FabricUpfTranslatorUtil.getFieldInt(match, HDR_SLICE_ID))
391390
.withPriority(entry.priority());
392391
if (FabricUpfTranslatorUtil.fieldIsPresent(match, HDR_APP_IPV4_ADDR)) {
393392
appFilteringBuilder.withIp4Prefix(FabricUpfTranslatorUtil.getFieldPrefix(match, HDR_APP_IPV4_ADDR));
@@ -402,7 +401,7 @@ public UpfApplication fabricEntryToUpfApplication(FlowRule entry)
402401
}
403402

404403
/**
405-
* Translate a GtpTunnelPeer to two FlowRules to be inserted into the fabric.p4 pipeline.
404+
* Translate a UpfGtpTunnelPeer to two FlowRules to be inserted into the fabric.p4 pipeline.
406405
*
407406
* @param gtpTunnelPeer the GTP tunnel peer to be translated
408407
* @param deviceId the ID of the device the FlowRule should be installed on
@@ -411,7 +410,7 @@ public UpfApplication fabricEntryToUpfApplication(FlowRule entry)
411410
* @return a pair of FlowRules translated from GTP tunnel peer
412411
* @throws UpfProgrammableException if the interface cannot be translated
413412
*/
414-
public Pair<FlowRule, FlowRule> gtpTunnelPeerToFabricEntry(GtpTunnelPeer gtpTunnelPeer, DeviceId deviceId,
413+
public Pair<FlowRule, FlowRule> gtpTunnelPeerToFabricEntry(UpfGtpTunnelPeer gtpTunnelPeer, DeviceId deviceId,
415414
ApplicationId appId, int priority)
416415
throws UpfProgrammableException {
417416
FlowRule ingressEntry;
@@ -465,7 +464,7 @@ public Pair<FlowRule, FlowRule> gtpTunnelPeerToFabricEntry(GtpTunnelPeer gtpTunn
465464
* @return the uplink ue session translated to a FlowRule
466465
* @throws UpfProgrammableException if the UE session cannot be translated
467466
*/
468-
public FlowRule sessionUplinkToFabricEntry(SessionUplink ueSession, DeviceId deviceId,
467+
public FlowRule sessionUplinkToFabricEntry(UpfSessionUplink ueSession, DeviceId deviceId,
469468
ApplicationId appId, int priority)
470469
throws UpfProgrammableException {
471470
final PiCriterion match;
@@ -501,7 +500,7 @@ public FlowRule sessionUplinkToFabricEntry(SessionUplink ueSession, DeviceId dev
501500
* @return the downlink ue session translated to a FlowRule
502501
* @throws UpfProgrammableException if the UE session cannot be translated
503502
*/
504-
public FlowRule sessionDownlinkToFabricEntry(SessionDownlink ueSession, DeviceId deviceId,
503+
public FlowRule sessionDownlinkToFabricEntry(UpfSessionDownlink ueSession, DeviceId deviceId,
505504
ApplicationId appId, int priority)
506505
throws UpfProgrammableException {
507506
final PiCriterion match;
@@ -662,7 +661,7 @@ public FlowRule interfaceToFabricEntry(UpfInterface upfInterface, DeviceId devic
662661
.build();
663662
PiAction action = PiAction.builder()
664663
.withId(actionId)
665-
.withParameter(new PiActionParam(SLICE_ID, SLICE_MOBILE.id()))
664+
.withParameter(new PiActionParam(SLICE_ID, SliceId.of(upfInterface.sliceId()).id()))
666665
.build();
667666
return DefaultFlowRule.builder()
668667
.forDevice(deviceId).fromApp(appId).makePermanent()
@@ -692,7 +691,7 @@ public FlowRule upfApplicationToFabricEntry(
692691

693692
public PiCriterion buildApplicationCriterion(UpfApplication appFilter) {
694693
PiCriterion.Builder matchBuilder = PiCriterion.builder();
695-
matchBuilder.matchExact(HDR_SLICE_ID, SLICE_MOBILE.id());
694+
matchBuilder.matchExact(HDR_SLICE_ID, SliceId.of(appFilter.sliceId()).id());
696695
if (appFilter.ip4Prefix().isPresent()) {
697696
Ip4Prefix ip4Prefix = appFilter.ip4Prefix().get();
698697
matchBuilder.matchLpm(HDR_APP_IPV4_ADDR, ip4Prefix.address().toOctets(), ip4Prefix.prefixLength());

src/test/java/org/stratumproject/fabric/tna/behaviour/upf/FabricUpfProgrammableTest.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
import org.onosproject.core.CoreService;
1313
import org.onosproject.net.DeviceId;
1414
import org.onosproject.net.PortNumber;
15-
import org.onosproject.net.behaviour.upf.SessionDownlink;
16-
import org.onosproject.net.behaviour.upf.SessionUplink;
15+
import org.onosproject.net.behaviour.upf.UpfSessionDownlink;
16+
import org.onosproject.net.behaviour.upf.UpfSessionUplink;
1717
import org.onosproject.net.behaviour.upf.UpfApplication;
1818
import org.onosproject.net.behaviour.upf.UpfCounter;
1919
import org.onosproject.net.behaviour.upf.UpfEntity;
@@ -160,7 +160,7 @@ public void setUp() throws Exception {
160160
@Test
161161
public void testUplinkUeSession() throws Exception {
162162
assertTrue(upfProgrammable.readAll(UpfEntityType.SESSION_UPLINK).isEmpty());
163-
SessionUplink expectedUeSession = TestUpfConstants.UPLINK_UE_SESSION;
163+
UpfSessionUplink expectedUeSession = TestUpfConstants.UPLINK_UE_SESSION;
164164
upfProgrammable.apply(expectedUeSession);
165165
Collection<? extends UpfEntity> installedUeSessions = upfProgrammable.readAll(UpfEntityType.SESSION_UPLINK);
166166
assertThat(installedUeSessions.size(), equalTo(1));
@@ -174,7 +174,7 @@ public void testUplinkUeSession() throws Exception {
174174
@Test
175175
public void testDownlinkUeSession() throws Exception {
176176
assertTrue(upfProgrammable.readAll(UpfEntityType.SESSION_DOWNLINK).isEmpty());
177-
SessionDownlink expectedUeSession = TestUpfConstants.DOWNLINK_UE_SESSION;
177+
UpfSessionDownlink expectedUeSession = TestUpfConstants.DOWNLINK_UE_SESSION;
178178
upfProgrammable.apply(expectedUeSession);
179179
Collection<? extends UpfEntity> installedUeSessions = upfProgrammable.readAll(UpfEntityType.SESSION_DOWNLINK);
180180
assertThat(installedUeSessions.size(), equalTo(1));

src/test/java/org/stratumproject/fabric/tna/behaviour/upf/FabricUpfTranslatorTest.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
import org.apache.commons.lang3.tuple.Pair;
66
import org.junit.Test;
7-
import org.onosproject.net.behaviour.upf.GtpTunnelPeer;
8-
import org.onosproject.net.behaviour.upf.SessionDownlink;
9-
import org.onosproject.net.behaviour.upf.SessionUplink;
7+
import org.onosproject.net.behaviour.upf.UpfGtpTunnelPeer;
8+
import org.onosproject.net.behaviour.upf.UpfSessionDownlink;
9+
import org.onosproject.net.behaviour.upf.UpfSessionUplink;
1010
import org.onosproject.net.behaviour.upf.UpfApplication;
1111
import org.onosproject.net.behaviour.upf.UpfInterface;
1212
import org.onosproject.net.behaviour.upf.UpfProgrammableException;
@@ -23,8 +23,8 @@ public class FabricUpfTranslatorTest {
2323

2424
@Test
2525
public void fabricEntryToGtpTunnelPeerTest() {
26-
GtpTunnelPeer translated;
27-
GtpTunnelPeer expected = TestUpfConstants.GTP_TUNNEL_PEER;
26+
UpfGtpTunnelPeer translated;
27+
UpfGtpTunnelPeer expected = TestUpfConstants.GTP_TUNNEL_PEER;
2828
try {
2929
translated = upfTranslator.fabricEntryToGtpTunnelPeer(TestUpfConstants.FABRIC_EGRESS_GTP_TUNNEL_PEER);
3030
} catch (UpfProgrammableException e) {
@@ -37,8 +37,8 @@ public void fabricEntryToGtpTunnelPeerTest() {
3737

3838
@Test
3939
public void fabricEntryToUplinkUeSessionTest() {
40-
SessionUplink translated;
41-
SessionUplink expected = TestUpfConstants.UPLINK_UE_SESSION;
40+
UpfSessionUplink translated;
41+
UpfSessionUplink expected = TestUpfConstants.UPLINK_UE_SESSION;
4242
try {
4343
translated = upfTranslator.fabricEntryToUeSessionUplink(TestUpfConstants.FABRIC_UPLINK_UE_SESSION);
4444
} catch (UpfProgrammableException e) {
@@ -51,8 +51,8 @@ public void fabricEntryToUplinkUeSessionTest() {
5151

5252
@Test
5353
public void fabricEntryToDownlinkUeSessionTest() {
54-
SessionDownlink translated;
55-
SessionDownlink expected = TestUpfConstants.DOWNLINK_UE_SESSION;
54+
UpfSessionDownlink translated;
55+
UpfSessionDownlink expected = TestUpfConstants.DOWNLINK_UE_SESSION;
5656
try {
5757
translated = upfTranslator.fabricEntryToUeSessionDownlink(TestUpfConstants.FABRIC_DOWNLINK_UE_SESSION);
5858
} catch (UpfProgrammableException e) {
@@ -65,8 +65,8 @@ public void fabricEntryToDownlinkUeSessionTest() {
6565

6666
@Test
6767
public void fabricEntryToDownlinkUeSessionDbufTest() {
68-
SessionDownlink translated;
69-
SessionDownlink expected = TestUpfConstants.DOWNLINK_UE_SESSION_DBUF;
68+
UpfSessionDownlink translated;
69+
UpfSessionDownlink expected = TestUpfConstants.DOWNLINK_UE_SESSION_DBUF;
7070
try {
7171
translated = upfTranslator.fabricEntryToUeSessionDownlink(TestUpfConstants.FABRIC_DOWNLINK_UE_SESSION_DBUF);
7272
} catch (UpfProgrammableException e) {

0 commit comments

Comments
 (0)