[VOL-2761][VOL-2905] Support for DT workflow
Change-Id: I9fe1fae20d3a5970a474a234aa3bde0f9110569e
diff --git a/internal/bbsim/responders/sadis/sadis.go b/internal/bbsim/responders/sadis/sadis.go
index d24daeb..fc2b451 100644
--- a/internal/bbsim/responders/sadis/sadis.go
+++ b/internal/bbsim/responders/sadis/sadis.go
@@ -93,10 +93,10 @@
NasPortID string `json:"nasPortId"`
CircuitID string `json:"circuitId"`
RemoteID string `json:"remoteId"`
- UniTagList []SadisUniTag `json:"uniTagList"`
+ UniTagList []interface{} `json:"uniTagList"` // this can be SadisUniTagAtt, SadisUniTagDt
}
-type SadisUniTag struct {
+type SadisUniTagAtt struct {
PonCTag int `json:"ponCTag, omitempty"`
PonSTag int `json:"ponSTag, omitempty"`
TechnologyProfileID int `json:"technologyProfileId, omitempty"`
@@ -106,6 +106,15 @@
IsIgmpRequired bool `json:"isIgmpRequired, omitempty"`
}
+type SadisUniTagDt struct {
+ UniTagMatch int `json:"uniTagMatch, omitempty"`
+ PonCTag int `json:"ponCTag, omitempty"`
+ PonSTag int `json:"ponSTag, omitempty"`
+ TechnologyProfileID int `json:"technologyProfileId, omitempty"`
+ UpstreamBandwidthProfile string `json:"upstreamBandwidthProfile, omitempty"`
+ DownstreamBandwidthProfile string `json:"downstreamBandwidthProfile, omitempty"`
+}
+
// SADIS BandwithProfile Entry
type SadisBWPEntry struct {
ID string `json:"id"`
@@ -189,18 +198,34 @@
RemoteID: onu.Sn() + uniSuffix,
}
- // TODO this sadis config only works for the ATT workflow
- // address VOL-2761 to support DT
- sonuUniTag := SadisUniTag{
- PonCTag: onu.CTag,
- PonSTag: onu.STag,
- TechnologyProfileID: 64,
- // NOTE do we want to select a random bandwidth profile?
- // if so use bandwidthProfiles[rand.Intn(len(bandwidthProfiles))].ID
- UpstreamBandwidthProfile: "Default",
- DownstreamBandwidthProfile: "User_Bandwidth1",
- IsDhcpRequired: true,
- IsIgmpRequired: true,
+ // base structure common to all use cases
+ var sonuUniTag interface{}
+
+ // set workflow specific params
+ switch common.Options.BBSim.SadisFormat {
+ case common.SadisFormatAtt:
+ sonuUniTag = SadisUniTagAtt{
+ PonCTag: onu.CTag,
+ PonSTag: onu.STag,
+ TechnologyProfileID: 64,
+ // NOTE do we want to select a random bandwidth profile?
+ // if so use bandwidthProfiles[rand.Intn(len(bandwidthProfiles))].ID
+ UpstreamBandwidthProfile: "Default",
+ DownstreamBandwidthProfile: "User_Bandwidth1",
+ IsDhcpRequired: true,
+ IsIgmpRequired: true,
+ }
+ case common.SadisFormatDt:
+ sonuUniTag = SadisUniTagDt{
+ PonCTag: 4096,
+ PonSTag: onu.STag,
+ TechnologyProfileID: 64,
+ // NOTE do we want to select a random bandwidth profile?
+ // if so use bandwidthProfiles[rand.Intn(len(bandwidthProfiles))].ID
+ UpstreamBandwidthProfile: "Default",
+ DownstreamBandwidthProfile: "User_Bandwidth1",
+ UniTagMatch: 4096,
+ }
}
sonuv2.UniTagList = append(sonuv2.UniTagList, sonuUniTag)