Skip to content

Commit cb9c5ff

Browse files
committed
change cli flag of asn
1 parent ef6f876 commit cb9c5ff

File tree

3 files changed

+20
-25
lines changed

3 files changed

+20
-25
lines changed

cmd/db-controller/cli.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,17 @@ var (
3434
globalInterfaceNameFlag string
3535
// chainNameForDBAclFlag is a cli-flag that specifies the nftables chain name for DB access control list.
3636
chainNameForDBAclFlag string
37-
// bgpMyAsNumberFlag is a cli-flag that specifies the my as number
38-
bgpMyAsNumberFlag int
37+
// bgpLocalAsnFlag is a cli-flag that specifies the my as number
38+
bgpLocalAsnFlag int
3939
// bgpServingPortFlag is a cli-flag that specifies the port of bgp
4040
bgpServingPortFlag int
4141
// bgpKeepaliveIntervalSecFlag is a cli-flag that specifies the interval seconds of bgp keepalive
4242
bgpKeepaliveIntervalSecFlag int
4343
// bgpPeerXAddrFlag and bgpPeerXAsn is a cli-flag that specifies neighbor address and asn of bgp peer.
4444
bgpPeer1AddrFlag string
45-
bgpPeer1AsnFlag string
45+
bgpPeer1AsnFlag int
4646
bgpPeer2AddrFlag string
47-
bgpPeer2AsnFlag string
47+
bgpPeer2AsnFlag int
4848
// gobgpGrpcPortFlag is a cli-flag that specifies port of gobgp gRPC
4949
gobgpGrpcPortFlag int
5050

@@ -74,16 +74,16 @@ func parseAllFlags(args []string) error {
7474
fs.StringVar(&chainNameForDBAclFlag, "chain-name-for-db-acl", "mariadb", "the chain name for DB access control")
7575
fs.StringVar(&dbReplicaUserNameFlag, "db-replica-user-name", "repl", "the username for replication")
7676
fs.StringVar(&bgpPeer1AddrFlag, "bgp-peer1-addr", "", "the address of bgp peer#1")
77-
fs.StringVar(&bgpPeer1AsnFlag, "bgp-peer1-asn", "", "the asn of bgp peer#1")
7877
fs.StringVar(&bgpPeer2AddrFlag, "bgp-peer2-addr", "", "the address of bgp peer#2")
79-
fs.StringVar(&bgpPeer2AsnFlag, "bgp-peer2-asn", "", "the asn of bgp peer#2")
8078

8179
fs.IntVar(&mainPollingSpanSecondFlag, "main-polling-span-second", 4, "the span seconds of the loop in main.go")
8280
fs.IntVar(&httpAPIServerPortFlag, "http-api-server-port", 54545, "the port the http api server listens")
8381
fs.IntVar(&prometheusExporterPortFlag, "prometheus-exporter-port", 50505, "the port the prometheus exporter listens")
8482
fs.IntVar(&dbReplicaSourcePortFlag, "db-replica-source-port", 13306, "the port of primary as replication source")
8583
fs.IntVar(&dbServingPortFlag, "db-serving-port", 3306, "the port of database service")
86-
fs.IntVar(&bgpMyAsNumberFlag, "bgp-my-as-number", 65001, "the my as number")
84+
fs.IntVar(&bgpLocalAsnFlag, "bgp-local-asn", 0, "the as number of local")
85+
fs.IntVar(&bgpPeer1AsnFlag, "bgp-peer1-asn", 0, "the asn of bgp peer#1")
86+
fs.IntVar(&bgpPeer2AsnFlag, "bgp-peer2-asn", 0, "the asn of bgp peer#2")
8787
fs.IntVar(&bgpServingPortFlag, "bgp-serving-port", 179, "the port of bgp")
8888
fs.IntVar(&bgpKeepaliveIntervalSecFlag, "bgp-keepalive-interval-sec", 3, "the interval seconds of bgp keepalive")
8989
fs.IntVar(&gobgpGrpcPortFlag, "gobgp-grpc-port", 50051, "the listen port of gobgp gRPC")
@@ -104,8 +104,12 @@ func validateAllFlags() error {
104104
return fmt.Errorf("--prometheus-exporter-port must be the range of uint16(tcp port)")
105105
}
106106

107-
if bgpPeer1AddrFlag == "" || bgpPeer1AsnFlag == "" || bgpPeer2AddrFlag == "" || bgpPeer2AsnFlag == "" {
108-
return fmt.Errorf("insufficient bgp peer addresses")
107+
if bgpLocalAsnFlag == 0 {
108+
return fmt.Errorf("--bgp-local-asan must be specified")
109+
}
110+
111+
if bgpPeer1AddrFlag == "" || bgpPeer1AsnFlag == 0 || bgpPeer2AddrFlag == "" || bgpPeer2AsnFlag == 0 {
112+
return fmt.Errorf("insufficient bgp peer")
109113
}
110114

111115
return nil

cmd/db-controller/main.go

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"os"
2424
"os/signal"
2525
"path/filepath"
26-
"strconv"
2726
"strings"
2827
"sync"
2928
"syscall"
@@ -84,33 +83,25 @@ func main() {
8483

8584
var bgpPeers []bgpserver.Peer
8685
{
87-
asn, err := strconv.Atoi(bgpPeer1AsnFlag)
88-
if err != nil {
89-
panic("invalid bgp peer1 asn")
90-
}
9186
bgpPeers = append(bgpPeers, bgpserver.Peer{
9287
Neighbor: bgpPeer1AddrFlag,
93-
RemoteAS: uint32(asn),
88+
RemoteAS: uint32(bgpPeer1AsnFlag),
9489
RemotePort: uint32(bgpServingPortFlag),
9590
KeepaliveIntervalSec: uint64(bgpKeepaliveIntervalSecFlag),
9691
})
9792
}
9893
{
99-
asn, err := strconv.Atoi(bgpPeer2AsnFlag)
100-
if err != nil {
101-
panic("invalid bgp peer2 asn")
102-
}
10394
bgpPeers = append(bgpPeers, bgpserver.Peer{
10495
Neighbor: bgpPeer2AddrFlag,
105-
RemoteAS: uint32(asn),
96+
RemoteAS: uint32(bgpPeer2AsnFlag),
10697
RemotePort: uint32(bgpServingPortFlag),
10798
KeepaliveIntervalSec: uint64(bgpKeepaliveIntervalSecFlag),
10899
})
109100
}
110101

111102
bgpServerConnect := bgpserver.NewDefaultConnector(
112103
logger,
113-
bgpserver.WithAsn(uint32(bgpMyAsNumberFlag)),
104+
bgpserver.WithLocalAsn(uint32(bgpLocalAsnFlag)),
114105
bgpserver.WithRouterId(myHostAddress),
115106
bgpserver.WithListenPort(int32(bgpServingPortFlag)),
116107
bgpserver.WithGrpcPort(gobgpGrpcPortFlag),

pkg/bgpserver/connector.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ type Connector interface {
5353
type bgpServerConnector struct {
5454
logger *slog.Logger
5555
server *gobgpserver.BgpServer
56-
asn uint32
56+
localAsn uint32
5757
routerId string
5858
listenPort int32
5959
grpcPort int
@@ -74,9 +74,9 @@ func NewDefaultConnector(logger *slog.Logger, configs ...func(*bgpServerConnecto
7474
return bs
7575
}
7676

77-
func WithAsn(asn uint32) func(*bgpServerConnector) {
77+
func WithLocalAsn(localAsn uint32) func(*bgpServerConnector) {
7878
return func(c *bgpServerConnector) {
79-
c.asn = asn
79+
c.localAsn = localAsn
8080
}
8181
}
8282

@@ -109,7 +109,7 @@ func (bs *bgpServerConnector) Start() error {
109109

110110
err := bs.server.StartBgp(context.Background(), &gobgpapi.StartBgpRequest{
111111
Global: &gobgpapi.Global{
112-
Asn: bs.asn,
112+
Asn: bs.localAsn,
113113
RouterId: bs.routerId,
114114
ListenAddresses: []string{"0.0.0.0"},
115115
ListenPort: bs.listenPort,

0 commit comments

Comments
 (0)