1. FTTB fixes
2. Delete subscriber with payload
3. Correct ServiceName field in programmed-subscribers response
Change-Id: I54fd24ff08e5c10efdbd0c43623bf699d890bdd8
diff --git a/internal/pkg/application/service.go b/internal/pkg/application/service.go
index e6e81c3..a2e1d54 100644
--- a/internal/pkg/application/service.go
+++ b/internal/pkg/application/service.go
@@ -600,6 +600,9 @@
| Byte8 | Byte7 | Byte6 | Byte5 | Byte4 | Byte3 | Byte2 | Byte1 |
| reserved | reserved | TpID | TpID | uinID | uniID | uniID | uniID | */
metadata := uint64(vs.CVlan)<<48 + uint64(vs.TechProfileID)<<32 + uint64(outport)
+ if vs.ServiceType == FttbSubscriberTraffic {
+ metadata = uint64(of.VlanAny)<<48 + uint64(vs.TechProfileID)<<32 + uint64(outport)
+ }
subflow1.SetWriteMetadata(metadata)
/* TableMetaData 8 Byte(uint64) Voltha usage: (Considering MSB bit as 63rd bit and LSB bit as 0th bit)
@@ -613,8 +616,10 @@
| 0000 | 00 | 0 | 0 | 00000000 | 00000000 | 0000 0000 | 00000000 | 00000000 | 00000000 | 00000000|
| reserved | svlanTpID | Buff us | AT | schedID | schedID | onteth vlanCtrl | ctag | ctag | ctag | ctag | */
- metadata = uint64(l2ProtoValue)<<58 | uint64(allowTransparent)<<56 | uint64(vs.SchedID)<<40 | uint64(vs.ONTEtherTypeClassification)<<36 | uint64(vs.VlanControl)<<32 | uint64(vs.CVlan)
- subflow1.SetTableMetadata(metadata)
+ if vs.ServiceType != FttbSubscriberTraffic {
+ metadata = uint64(l2ProtoValue)<<58 | uint64(allowTransparent)<<56 | uint64(vs.SchedID)<<40 | uint64(vs.ONTEtherTypeClassification)<<36 | uint64(vs.VlanControl)<<32 | uint64(vs.CVlan)
+ subflow1.SetTableMetadata(metadata)
+ }
// TODO - We are using cookie as key and must come up with better cookie
// allocation algorithm
/**
@@ -669,6 +674,9 @@
// refer Table-0 flow generation for byte information
metadata := uint64(vs.CVlan)<<48 + uint64(vs.TechProfileID)<<32 + uint64(outport)
+ if vs.ServiceType == FttbSubscriberTraffic {
+ metadata = uint64(of.VlanAny)<<48 + uint64(vs.TechProfileID)<<32 + uint64(outport)
+ }
subflow2.SetWriteMetadata(metadata)
// Table-1 and inport is NNI: It is a DS flow for ONU, add uniport in metadata to make it unique
@@ -744,6 +752,9 @@
| reserved | reserved | TpID | TpID | uinID | uniID | uniID | uniID | */
//metadata := uint64(vs.CVlan)<<48 + uint64(vs.TechProfileID)<<32 + uint64(outport)
metadata := uint64(vs.TechProfileID)<<32 + uint64(outport)
+ if vs.ServiceType == FttbSubscriberTraffic {
+ metadata = uint64(of.VlanAny)<<48 + uint64(vs.TechProfileID)<<32 + uint64(outport)
+ }
subflow1.SetWriteMetadata(metadata)
if vs.VlanControl == OLTCVlanOLTSVlan {
@@ -783,6 +794,9 @@
// refer Table-0 flow generation for byte information
metadata := uint64(vs.TechProfileID)<<32 + uint64(outport)
+ if vs.ServiceType == FttbSubscriberTraffic {
+ metadata = uint64(of.VlanAny)<<48 + uint64(vs.TechProfileID)<<32 + uint64(outport)
+ }
subflow2.SetWriteMetadata(metadata)
if vs.VlanControl == OLTCVlanOLTSVlan {