51 lines
1.5 KiB
Diff
51 lines
1.5 KiB
Diff
# UNDF: UNDF-2026-000000197
|
|
--- a/core/api/src/main/java/org/onosproject/net/PipelineTraceableHitChain.java
|
|
+++ b/core/api/src/main/java/org/onosproject/net/PipelineTraceableHitChain.java
|
|
@@ -17,8 +17,9 @@
|
|
package org.onosproject.net;
|
|
|
|
-import com.google.common.collect.Lists;
|
|
+import java.util.LinkedHashSet;
|
|
+import java.util.List;
|
|
+import java.util.ArrayList;
|
|
+import java.util.Set;
|
|
|
|
-import java.util.List;
|
|
import java.util.Objects;
|
|
|
|
@@ -28,14 +29,14 @@ import java.util.Objects;
|
|
public final class PipelineTraceableHitChain {
|
|
|
|
private ConnectPoint outputPort;
|
|
- private List<DataPlaneEntity> hitChain;
|
|
+ private Set<DataPlaneEntity> hitChain;
|
|
private PipelineTraceablePacket egressPacket;
|
|
// By default packets are dropped
|
|
private boolean dropped = true;
|
|
|
|
private PipelineTraceableHitChain() {
|
|
- hitChain = Lists.newArrayList();
|
|
+ hitChain = new LinkedHashSet<>();
|
|
}
|
|
|
|
/**
|
|
@@ -60,7 +61,10 @@ public final class PipelineTraceableHitChain {
|
|
* @return flows and groups that matched.
|
|
*/
|
|
public List<DataPlaneEntity> hitChain() {
|
|
- return hitChain;
|
|
+ return new ArrayList<>(hitChain);
|
|
}
|
|
|
|
/**
|
|
@@ -74,9 +78,8 @@ public final class PipelineTraceableHitChain {
|
|
*/
|
|
public void addDataPlaneEntity(DataPlaneEntity dataPlaneEntity) {
|
|
- if (!hitChain.contains(dataPlaneEntity)) {
|
|
- hitChain.add(dataPlaneEntity);
|
|
- }
|
|
+ // LinkedHashSet.add() is O(1) and silently ignores duplicates
|
|
+ hitChain.add(dataPlaneEntity);
|
|
}
|
|
|
|
/**
|