Skip to content

Commit

Permalink
fix(session_proxy): Add Rentransmits field to diam client (#12194)
Browse files Browse the repository at this point in the history
  • Loading branch information
uri200 authored and 119Vik committed May 6, 2022
1 parent 2a9e80d commit 82a6ece
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 13 deletions.
9 changes: 6 additions & 3 deletions feg/gateway/services/s6a_proxy/servicers/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ func GetS6aProxyConfigs() *S6aProxyConfig {
log.Printf("%s Managed Configs Load Error: %v", S6aProxyServiceName, err)
return &S6aProxyConfig{
ClientCfg: &diameter.DiameterClientConfig{
Host: diameter.GetValueOrEnv(diameter.HostFlag, S6aDiamHostEnv, DefaultS6aDiamHost),
Realm: diameter.GetValueOrEnv(diameter.RealmFlag, S6aDiamRealmEnv, DefaultS6aDiamRealm),
ProductName: diameter.GetValueOrEnv(diameter.ProductFlag, S6aDiamProductEnv, diameter.DiamProductName),
Host: diameter.GetValueOrEnv(diameter.HostFlag, S6aDiamHostEnv, DefaultS6aDiamHost),
Realm: diameter.GetValueOrEnv(diameter.RealmFlag, S6aDiamRealmEnv, DefaultS6aDiamRealm),
ProductName: diameter.GetValueOrEnv(diameter.ProductFlag, S6aDiamProductEnv, diameter.DiamProductName),
WatchdogInterval: diameter.DefaultWatchdogIntervalSeconds,
Retransmits: uint(10),
RetryCount: uint(5),
},
ServerCfg: &diameter.DiameterServerConfig{DiameterServerConnConfig: diameter.DiameterServerConnConfig{
Addr: diameter.GetValueOrEnv(diameter.AddrFlag, HSSAddrEnv, ""),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ func GetPCRFConfiguration() []*diameter.DiameterServerConfig {
// GetGxClientConfiguration returns a slice containing all client diameter configuration
func GetGxClientConfiguration() []*diameter.DiameterClientConfig {
var retries uint32 = 1
var retransmits uint32 = 1
configsPtr := &mconfig.SessionProxyConfig{}
err := managed_configs.GetServiceConfigs(credit_control.SessionProxyServiceName, configsPtr)
if err != nil {
Expand All @@ -124,6 +125,7 @@ func GetGxClientConfiguration() []*diameter.DiameterClientConfig {
AppID: diam.GX_CHARGING_CONTROL_APP_ID,
WatchdogInterval: diameter.DefaultWatchdogIntervalSeconds,
RetryCount: uint(retries),
Retransmits: uint(retransmits),
SupportedVendorIDs: diameter.GetValueOrEnv("", GxSupportedVendorIDsEnv, ""),
},
}
Expand All @@ -148,6 +150,11 @@ func GetGxClientConfiguration() []*diameter.DiameterClientConfig {
log.Printf("Invalid Gx Server Retry Count for server (%s): %d, must be >0. Will be set to 1", gxCfg.GetAddress(), retries)
retries = 1
}
retransmits = gxCfg.GetRetransmits()
if retransmits < 1 {
log.Printf("Invalid Gx Retransmit Count for server (%s): %d, must be >0. Will be set to 1", gxCfg.GetAddress(), retransmits)
retransmits = 1
}

wdInterval := gxCfg.GetWatchdogInterval()
if wdInterval == 0 {
Expand All @@ -160,6 +167,7 @@ func GetGxClientConfiguration() []*diameter.DiameterClientConfig {
AppID: diam.GX_CHARGING_CONTROL_APP_ID,
WatchdogInterval: uint(wdInterval),
RetryCount: uint(retries),
Retransmits: uint(retransmits),
SupportedVendorIDs: diameter.GetValueOrEnv("", GxSupportedVendorIDsEnv, "", i),
}
diamClientsConfigs = append(diamClientsConfigs, diamCliCfg)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ func GetOCSConfiguration() []*diameter.DiameterServerConfig {
// GetGyClientConfiguration returns the client diameter configuration
func GetGyClientConfiguration() []*diameter.DiameterClientConfig {
var retries uint32 = 1
var retransmits uint32 = 1
configsPtr := &mconfig.SessionProxyConfig{}
err := managed_configs.GetServiceConfigs(credit_control.SessionProxyServiceName, configsPtr)
if err != nil {
Expand All @@ -163,6 +164,7 @@ func GetGyClientConfiguration() []*diameter.DiameterClientConfig {
AppID: diam.CHARGING_CONTROL_APP_ID,
WatchdogInterval: diameter.DefaultWatchdogIntervalSeconds,
RetryCount: uint(retries),
Retransmits: uint(retransmits),
SupportedVendorIDs: diameter.GetValueOrEnv("", GySupportedVendorIDsEnv, ""),
ServiceContextId: diameter.GetValueOrEnv("", GyServiceContextIdEnv, ""),
},
Expand All @@ -187,6 +189,11 @@ func GetGyClientConfiguration() []*diameter.DiameterClientConfig {
log.Printf("Invalid Gy Server Retry Count for server (%s): %d, must be >0. Will be set to 1", gyCfg.GetAddress(), retries)
retries = 1
}
retransmits = gyCfg.GetRetransmits()
if retransmits < 1 {
log.Printf("Invalid Gy Retransmit Count for server (%s): %d, must be >0. Will be set to 1", gyCfg.GetAddress(), retransmits)
retransmits = 1
}

wdInterval := gyCfg.GetWatchdogInterval()
if wdInterval == 0 {
Expand All @@ -199,6 +206,7 @@ func GetGyClientConfiguration() []*diameter.DiameterClientConfig {
AppID: diam.CHARGING_CONTROL_APP_ID,
WatchdogInterval: uint(wdInterval),
RetryCount: uint(retries),
Retransmits: uint(retransmits),
SupportedVendorIDs: diameter.GetValueOrEnv("", GySupportedVendorIDsEnv, "", i),
ServiceContextId: diameter.GetValueOrEnv("", GyServiceContextIdEnv, "", i),
}
Expand Down
14 changes: 7 additions & 7 deletions feg/gateway/services/session_proxy/session_proxy/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ func generateClientsConfsAndDiameterConnection() (

// Each controller will take one entry of PCRF, OCS, and gx/gy clients confs
gxCliConfs := gx.GetGxClientConfiguration()
gyCLiConfs := gy.GetGyClientConfiguration()
gyCliConfs := gy.GetGyClientConfiguration()
OCSConfs := gy.GetOCSConfiguration()
PCRFConfs := gx.GetPCRFConfiguration()

Expand Down Expand Up @@ -135,7 +135,7 @@ func generateClientsConfsAndDiameterConnection() (
if OCSConfsCopy[i].DiameterServerConnConfig == PCRFConfsCopy[i].DiameterServerConnConfig &&
OCSConfsCopy[i] != PCRFConfsCopy[i] {
var clientCfg = *gxCliConfs[i]
clientCfg.AuthAppID = gyCLiConfs[i].AppID
clientCfg.AuthAppID = gyCliConfs[i].AppID
diamClient := diameter.NewClient(&clientCfg)
diamClient.BeginConnection(OCSConfsCopy[i])
if gyGlobalConf.DisableGy {
Expand All @@ -161,14 +161,13 @@ func generateClientsConfsAndDiameterConnection() (
gxGlobalConf)
}
} else {

glog.Infof("Using distinct Gy: %+v & Gx: %+v connection",
OCSConfsCopy[i].DiameterServerConnConfig, PCRFConfsCopy[i].DiameterServerConnConfig)
glog.Infof("Using distinct Gx and Gy")
if gyGlobalConf.DisableGy {
glog.Info("Gy Disabled by configuration, not connecting to OCS")
} else {
glog.Infof("Gy client: %+v, Gy server: %+v", gyCliConfs[i], OCSConfsCopy[i])
controlParam.CreditClient = gy.NewGyClient(
gy.GetGyClientConfiguration()[i],
gyCliConfs[i],
OCSConfsCopy[i],
gy.GetGyReAuthHandler(cloudReg),
cloudReg,
Expand All @@ -177,8 +176,9 @@ func generateClientsConfsAndDiameterConnection() (
if gxGlobalConf.DisableGx {
glog.Info("Gx Disabled by configuration, not connecting to PCRF")
} else {
glog.Infof("Gx client: %+v, Gx server: %+v", gxCliConfs[i], PCRFConfsCopy[i])
controlParam.PolicyClient = gx.NewGxClient(
gx.GetGxClientConfiguration()[i],
gxCliConfs[i],
PCRFConfsCopy[i],
gx.GetGxReAuthHandler(cloudReg, policyDBClient),
cloudReg,
Expand Down
9 changes: 6 additions & 3 deletions feg/gateway/services/swx_proxy/servicers/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,12 @@ func GetSwxProxyConfig() []*SwxProxyConfig {
return []*SwxProxyConfig{
{
ClientCfg: &diameter.DiameterClientConfig{
Host: diameter.GetValueOrEnv(diameter.HostFlag, SwxDiamHostEnv, DefaultSwxDiamHost),
Realm: diameter.GetValueOrEnv(diameter.RealmFlag, SwxDiamRealmEnv, DefaultSwxDiamRealm),
ProductName: diameter.GetValueOrEnv(diameter.ProductFlag, SwxDiamProductEnv, diameter.DiamProductName),
Host: diameter.GetValueOrEnv(diameter.HostFlag, SwxDiamHostEnv, DefaultSwxDiamHost),
Realm: diameter.GetValueOrEnv(diameter.RealmFlag, SwxDiamRealmEnv, DefaultSwxDiamRealm),
ProductName: diameter.GetValueOrEnv(diameter.ProductFlag, SwxDiamProductEnv, diameter.DiamProductName),
WatchdogInterval: diameter.DefaultWatchdogIntervalSeconds,
Retransmits: uint(10),
RetryCount: uint(5),
},
ServerCfg: &diameter.DiameterServerConfig{DiameterServerConnConfig: diameter.DiameterServerConnConfig{
Addr: diameter.GetValueOrEnv(diameter.AddrFlag, HSSAddrEnv, ""),
Expand Down

0 comments on commit 82a6ece

Please sign in to comment.