From c6014d47bd851c082e557d4a365b6a189bee1c06 Mon Sep 17 00:00:00 2001 From: Trekkie Coder Date: Sun, 30 Jul 2023 18:06:43 +0900 Subject: [PATCH] Support for custom bgp listen port --- pkg/agent/config/config.go | 1 + pkg/agent/manager/loadbalancer/loadbalancer.go | 18 ++++++++++++------ pkg/api/bgp.go | 2 ++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/pkg/agent/config/config.go b/pkg/agent/config/config.go index bdc6772..dea08cc 100644 --- a/pkg/agent/config/config.go +++ b/pkg/agent/config/config.go @@ -24,6 +24,7 @@ type NetworkConfig struct { ExternalCIDR6 string ExternalSecondaryCIDRs6 []string SetBGP uint16 + ListenBGPPort uint16 ExtBGPPeers []string SetLBMode uint16 Monitor bool diff --git a/pkg/agent/manager/loadbalancer/loadbalancer.go b/pkg/agent/manager/loadbalancer/loadbalancer.go index c8ff82d..4ebb596 100644 --- a/pkg/agent/manager/loadbalancer/loadbalancer.go +++ b/pkg/agent/manager/loadbalancer/loadbalancer.go @@ -1056,12 +1056,18 @@ func (m *Manager) makeLoxiLBCIStatusModel(instance string, client *api.LoxiClien }, nil } -func (m *Manager) makeLoxiLBBGPGlobalModel(localAS int, selfID string, setNHSelf bool) (api.BGPGlobalConfig, error) { +func (m *Manager) makeLoxiLBBGPGlobalModel(localAS int, selfID string, setNHSelf bool, lPort uint16) (api.BGPGlobalConfig, error) { + + port := lPort + if lPort == 0 { + port = 179 + } return api.BGPGlobalConfig{ - LocalAs: int64(localAS), - RouterID: selfID, - SetNHSelf: setNHSelf, + LocalAs: int64(localAS), + RouterID: selfID, + SetNHSelf: setNHSelf, + ListenPort: port, }, nil } @@ -1274,9 +1280,9 @@ loop: } var bgpGlobalCfg api.BGPGlobalConfig if aliveClient.PeeringOnly { - bgpGlobalCfg, _ = m.makeLoxiLBBGPGlobalModel(int(m.networkConfig.SetBGP), aliveClient.Host, false) + bgpGlobalCfg, _ = m.makeLoxiLBBGPGlobalModel(int(m.networkConfig.SetBGP), aliveClient.Host, false, m.networkConfig.ListenBGPPort) } else { - bgpGlobalCfg, _ = m.makeLoxiLBBGPGlobalModel(int(m.networkConfig.SetBGP), aliveClient.Host, true) + bgpGlobalCfg, _ = m.makeLoxiLBBGPGlobalModel(int(m.networkConfig.SetBGP), aliveClient.Host, true, m.networkConfig.ListenBGPPort) } if err := aliveClient.BGP().CreateGlobalConfig(context.Background(), &bgpGlobalCfg); err == nil { klog.Infof("set-bgp-global success") diff --git a/pkg/api/bgp.go b/pkg/api/bgp.go index 93da91f..78a4058 100644 --- a/pkg/api/bgp.go +++ b/pkg/api/bgp.go @@ -18,6 +18,8 @@ type BGPGlobalConfig struct { RouterID string `json:"routerId,omitempty"` // Set Next hop self option SetNHSelf bool `json:"setNextHopSelf,omitempty"` + // Listen Port + ListenPort uint16 `json:"listenPort,omitempty"` } type BGPAPI struct {