VOL-3419: Replicate voltha flows in openolt agent
Pass the following additional information in the Flow message for agent to replicate the flow
- voltha flow_id
- symmetric voltha_flow_id (where applicable)
- flag to indicate whether the flow is to be replicated
- when flow is to be replicated, the pbit to gemport map
- Bump major version to 4.0.0 since this change is NOT backward compatible
This will enable the agent to do the flow replication if necessary.
Change-Id: I9e3d43b5b24721e352ccd8a2011b4ad0a83eaf69
diff --git a/protos/voltha_protos/openolt.proto b/protos/voltha_protos/openolt.proto
index 08e0a39..b647b4a 100644
--- a/protos/voltha_protos/openolt.proto
+++ b/protos/voltha_protos/openolt.proto
@@ -447,11 +447,16 @@
sfixed32 access_intf_id = 1;
sfixed32 onu_id = 2;
sfixed32 uni_id = 11;
- fixed32 flow_id = 3;
- string flow_type = 4; // upstream, downstream, broadcast, multicast
+
+ fixed64 flow_id = 3; // voltha flow-id. 0 is not a valid flow_id
+ fixed64 symmetric_flow_id = 18; // symmetric voltha flow-id, if applicable. All data path flows generally have a symmetric flow,
+ // but trap-to-controller flows do not have a symmetric flow
+ // Broadcom BAL requires that symmetric flows use the same BAL flow-id
+
+ string flow_type = 4; // upstream, downstream, broadcast, multicast
sfixed32 alloc_id = 10;
sfixed32 network_intf_id = 5;
- sfixed32 gemport_id = 6;
+ sfixed32 gemport_id = 6; // When 'replicate_flow' field is true, this field is obsolete.
Classifier classifier = 7;
Action action = 8;
sfixed32 priority = 9;
@@ -459,6 +464,10 @@
fixed32 port_no = 13; // must be provided for any flow with trap_to_host action. Returned in PacketIndication
fixed32 group_id = 14;
fixed32 tech_profile_id = 15;
+
+ bool replicate_flow = 16; // When this field is true, use pbitToGemPortID to know which p-bit needs to be classfied to which gem port.
+ map<fixed32, fixed32> pbit_to_gemport = 17; // Map of p-bit to gem port ID
+
}
message SerialNumber {