From 4c66cd4f91b2f6cdff2373a83d13932affa7ff05 Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Wed, 7 Nov 2018 14:09:15 +0900 Subject: [PATCH] gobgp: unexport cmd/ Only stuff in pkg/ should be exported. Signed-off-by: FUJITA Tomonori --- cmd/gobgp/cmd/bmp.go | 10 +- cmd/gobgp/cmd/common.go | 163 +++++++++-------- cmd/gobgp/cmd/common_test.go | 10 +- cmd/gobgp/cmd/global.go | 332 +++++++++++++++++------------------ cmd/gobgp/cmd/global_test.go | 2 +- cmd/gobgp/cmd/monitor.go | 16 +- cmd/gobgp/cmd/mrt.go | 8 +- cmd/gobgp/cmd/neighbor.go | 134 +++++++------- cmd/gobgp/cmd/policy.go | 88 +++++----- cmd/gobgp/cmd/root.go | 16 +- cmd/gobgp/cmd/rpki.go | 10 +- cmd/gobgp/cmd/vrf.go | 26 +-- 12 files changed, 405 insertions(+), 410 deletions(-) diff --git a/cmd/gobgp/cmd/bmp.go b/cmd/gobgp/cmd/bmp.go index c176d7707..8a58bbc56 100644 --- a/cmd/gobgp/cmd/bmp.go +++ b/cmd/gobgp/cmd/bmp.go @@ -48,7 +48,7 @@ func modBmpServer(cmdType string, args []string) error { var err error switch cmdType { - case CMD_ADD: + case cmdAdd: policyType := api.AddBmpRequest_PRE if len(args) > 1 { switch args[1] { @@ -69,7 +69,7 @@ func modBmpServer(cmdType string, args []string) error { Port: port, Type: policyType, }) - case CMD_DEL: + case cmdDel: _, err = client.DeleteBmp(ctx, &api.DeleteBmpRequest{ Address: address, Port: port, @@ -78,12 +78,12 @@ func modBmpServer(cmdType string, args []string) error { return err } -func NewBmpCmd() *cobra.Command { +func newBmpCmd() *cobra.Command { bmpCmd := &cobra.Command{ - Use: CMD_BMP, + Use: cmdBMP, } - for _, w := range []string{CMD_ADD, CMD_DEL} { + for _, w := range []string{cmdAdd, cmdDel} { subcmd := &cobra.Command{ Use: w, Run: func(cmd *cobra.Command, args []string) { diff --git a/cmd/gobgp/cmd/common.go b/cmd/gobgp/cmd/common.go index 93a7fca51..eaa09dbed 100644 --- a/cmd/gobgp/cmd/common.go +++ b/cmd/gobgp/cmd/common.go @@ -31,59 +31,56 @@ import ( "github.com/osrg/gobgp/pkg/packet/bgp" ) -const GLOBAL_RIB_NAME = "global" +const globalRIBName = "global" const ( - CMD_GLOBAL = "global" - CMD_NEIGHBOR = "neighbor" - CMD_POLICY = "policy" - CMD_RIB = "rib" - CMD_ADD = "add" - CMD_DEL = "del" - CMD_ALL = "all" - CMD_SET = "set" - CMD_LOCAL = "local" - CMD_ADJ_IN = "adj-in" - CMD_ADJ_OUT = "adj-out" - CMD_RESET = "reset" - CMD_SOFT_RESET = "softreset" - CMD_SOFT_RESET_IN = "softresetin" - CMD_SOFT_RESET_OUT = "softresetout" - CMD_SHUTDOWN = "shutdown" - CMD_ENABLE = "enable" - CMD_DISABLE = "disable" - CMD_PREFIX = "prefix" - CMD_ASPATH = "as-path" - CMD_COMMUNITY = "community" - CMD_EXTCOMMUNITY = "ext-community" - CMD_IMPORT = "import" - CMD_EXPORT = "export" - CMD_IN = "in" - CMD_MONITOR = "monitor" - CMD_MRT = "mrt" - CMD_DUMP = "dump" - CMD_INJECT = "inject" - CMD_RPKI = "rpki" - CMD_RPKI_TABLE = "table" - CMD_RPKI_SERVER = "server" - CMD_VRF = "vrf" - CMD_ACCEPTED = "accepted" - CMD_REJECTED = "rejected" - CMD_STATEMENT = "statement" - CMD_CONDITION = "condition" - CMD_ACTION = "action" - CMD_UPDATE = "update" - CMD_ROTATE = "rotate" - CMD_BMP = "bmp" - CMD_LARGECOMMUNITY = "large-community" - CMD_SUMMARY = "summary" - CMD_VALIDATION = "validation" + cmdGlobal = "global" + cmdNeighbor = "neighbor" + cmdPolicy = "policy" + cmdRib = "rib" + cmdAdd = "add" + cmdDel = "del" + cmdAll = "all" + cmdSet = "set" + cmdLocal = "local" + cmdAdjIn = "adj-in" + cmdAdjOut = "adj-out" + cmdReset = "reset" + cmdSoftReset = "softreset" + cmdSoftResetIn = "softresetin" + cmdSoftResetOut = "softresetout" + cmdShutdown = "shutdown" + cmdEnable = "enable" + cmdDisable = "disable" + cmdPrefix = "prefix" + cmdAspath = "as-path" + cmdCommunity = "community" + cmdExtcommunity = "ext-community" + cmdImport = "import" + cmdExport = "export" + cmdIn = "in" + cmdMonitor = "monitor" + cmdMRT = "mrt" + cmdInject = "inject" + cmdRPKI = "rpki" + cmdRPKITable = "table" + cmdRPKIServer = "server" + cmdVRF = "vrf" + cmdAccepted = "accepted" + cmdRejected = "rejected" + cmdStatement = "statement" + cmdCondition = "condition" + cmdAction = "action" + cmdUpdate = "update" + cmdBMP = "bmp" + cmdLargecommunity = "large-community" + cmdSummary = "summary" ) const ( - PARAM_FLAG = iota - PARAM_SINGLE - PARAM_LIST + paramFlag = iota + paramSingle + paramList ) var subOpts struct { @@ -164,15 +161,15 @@ func extractReserved(args []string, keys map[string]int) (map[string][]string, e continue } switch keys[k] { - case PARAM_FLAG: + case paramFlag: if len(v) != 0 { return nil, fmt.Errorf("%s should not have arguments", k) } - case PARAM_SINGLE: + case paramSingle: if len(v) != 1 { return nil, fmt.Errorf("%s should have one argument", k) } - case PARAM_LIST: + case paramList: if len(v) == 0 { return nil, fmt.Errorf("%s should have one or more arguments", k) } @@ -227,67 +224,67 @@ func addr2AddressFamily(a net.IP) *api.Family { } var ( - IPv4_UC = &api.Family{ + ipv4UC = &api.Family{ Afi: api.Family_AFI_IP, Safi: api.Family_SAFI_UNICAST, } - IPv6_UC = &api.Family{ + ipv6UC = &api.Family{ Afi: api.Family_AFI_IP6, Safi: api.Family_SAFI_UNICAST, } - IPv4_VPN = &api.Family{ + ipv4VPN = &api.Family{ Afi: api.Family_AFI_IP, Safi: api.Family_SAFI_MPLS_VPN, } - IPv6_VPN = &api.Family{ + ipv6VPN = &api.Family{ Afi: api.Family_AFI_IP6, Safi: api.Family_SAFI_MPLS_VPN, } - IPv4_MPLS = &api.Family{ + ipv4MPLS = &api.Family{ Afi: api.Family_AFI_IP, Safi: api.Family_SAFI_MPLS_LABEL, } - IPv6_MPLS = &api.Family{ + ipv6MPLS = &api.Family{ Afi: api.Family_AFI_IP6, Safi: api.Family_SAFI_MPLS_LABEL, } - EVPN = &api.Family{ + evpn = &api.Family{ Afi: api.Family_AFI_L2VPN, Safi: api.Family_SAFI_EVPN, } - IPv4_ENCAP = &api.Family{ + ipv4Encap = &api.Family{ Afi: api.Family_AFI_IP, Safi: api.Family_SAFI_ENCAPSULATION, } - IPv6_ENCAP = &api.Family{ + ipv6Encap = &api.Family{ Afi: api.Family_AFI_IP6, Safi: api.Family_SAFI_ENCAPSULATION, } - RTC = &api.Family{ + rtc = &api.Family{ Afi: api.Family_AFI_IP, Safi: api.Family_SAFI_ROUTE_TARGET_CONSTRAINTS, } - IPv4_FS = &api.Family{ + ipv4Flowspec = &api.Family{ Afi: api.Family_AFI_IP, Safi: api.Family_SAFI_FLOW_SPEC_UNICAST, } - IPv6_FS = &api.Family{ + ipv6Flowspec = &api.Family{ Afi: api.Family_AFI_IP6, Safi: api.Family_SAFI_FLOW_SPEC_UNICAST, } - IPv4_VPN_FS = &api.Family{ + ipv4VPNflowspec = &api.Family{ Afi: api.Family_AFI_IP, Safi: api.Family_SAFI_FLOW_SPEC_VPN, } - IPv6_VPN_FS = &api.Family{ + ipv6VPNflowspec = &api.Family{ Afi: api.Family_AFI_IP6, Safi: api.Family_SAFI_FLOW_SPEC_VPN, } - L2_VPN_FS = &api.Family{ + l2VPNflowspec = &api.Family{ Afi: api.Family_AFI_L2VPN, Safi: api.Family_SAFI_FLOW_SPEC_VPN, } - OPAQUE = &api.Family{ + opaque = &api.Family{ Afi: api.Family_AFI_OPAQUE, Safi: api.Family_SAFI_KEY_VALUE, } @@ -298,37 +295,37 @@ func checkAddressFamily(def *api.Family) (*api.Family, error) { var e error switch subOpts.AddressFamily { case "ipv4", "v4", "4": - f = IPv4_UC + f = ipv4UC case "ipv6", "v6", "6": - f = IPv6_UC + f = ipv6UC case "ipv4-l3vpn", "vpnv4", "vpn-ipv4": - f = IPv4_VPN + f = ipv4VPN case "ipv6-l3vpn", "vpnv6", "vpn-ipv6": - f = IPv6_VPN + f = ipv6VPN case "ipv4-labeled", "ipv4-labelled", "ipv4-mpls": - f = IPv4_MPLS + f = ipv4MPLS case "ipv6-labeled", "ipv6-labelled", "ipv6-mpls": - f = IPv6_MPLS + f = ipv6MPLS case "evpn": - f = EVPN + f = evpn case "encap", "ipv4-encap": - f = IPv4_ENCAP + f = ipv4Encap case "ipv6-encap": - f = IPv6_ENCAP + f = ipv6Encap case "rtc": - f = RTC + f = rtc case "ipv4-flowspec", "ipv4-flow", "flow4": - f = IPv4_FS + f = ipv4Flowspec case "ipv6-flowspec", "ipv6-flow", "flow6": - f = IPv6_FS + f = ipv6Flowspec case "ipv4-l3vpn-flowspec", "ipv4vpn-flowspec", "flowvpn4": - f = IPv4_VPN_FS + f = ipv4VPNflowspec case "ipv6-l3vpn-flowspec", "ipv6vpn-flowspec", "flowvpn6": - f = IPv6_VPN_FS + f = ipv6VPNflowspec case "l2vpn-flowspec": - f = L2_VPN_FS + f = l2VPNflowspec case "opaque": - f = OPAQUE + f = opaque case "": f = def default: diff --git a/cmd/gobgp/cmd/common_test.go b/cmd/gobgp/cmd/common_test.go index d7bb87b25..8a2ae0dc2 100644 --- a/cmd/gobgp/cmd/common_test.go +++ b/cmd/gobgp/cmd/common_test.go @@ -26,11 +26,11 @@ func Test_ExtractReserved(t *testing.T) { assert := assert.New(t) args := strings.Split("10 rt 100:100 med 10 nexthop 10.0.0.1 aigp metric 10 local-pref 100", " ") keys := map[string]int{ - "rt": PARAM_LIST, - "med": PARAM_SINGLE, - "nexthop": PARAM_SINGLE, - "aigp": PARAM_LIST, - "local-pref": PARAM_SINGLE} + "rt": paramList, + "med": paramSingle, + "nexthop": paramSingle, + "aigp": paramList, + "local-pref": paramSingle} m, _ := extractReserved(args, keys) assert.True(len(m["rt"]) == 1) assert.True(len(m["med"]) == 1) diff --git a/cmd/gobgp/cmd/global.go b/cmd/gobgp/cmd/global.go index 637caf6a1..43b8593b8 100644 --- a/cmd/gobgp/cmd/global.go +++ b/cmd/gobgp/cmd/global.go @@ -34,71 +34,71 @@ import ( "github.com/osrg/gobgp/pkg/packet/bgp" ) -type ExtCommType int +type extCommType int const ( - ACCEPT ExtCommType = iota - DISCARD - RATE - REDIRECT - MARK - ACTION - RT - ENCAP - ESI_LABEL - ROUTER_MAC - DEFAULT_GATEWAY - VALID - NOT_FOUND - INVALID - COLOR + ctAccept extCommType = iota + ctDiscard + ctRate + ctRedirect + ctMark + ctAction + ctRT + ctEncap + ctESILabel + ctRouterMAC + ctDefaultGateway + ctValid + ctNotFound + ctInvalid + ctColor ) -var ExtCommNameMap = map[ExtCommType]string{ - ACCEPT: "accept", - DISCARD: "discard", - RATE: "rate-limit", - REDIRECT: "redirect", - MARK: "mark", - ACTION: "action", - RT: "rt", - ENCAP: "encap", - ESI_LABEL: "esi-label", - ROUTER_MAC: "router-mac", - DEFAULT_GATEWAY: "default-gateway", - VALID: "valid", - NOT_FOUND: "not-found", - INVALID: "invalid", - COLOR: "color", +var extCommNameMap = map[extCommType]string{ + ctAccept: "accept", + ctDiscard: "discard", + ctRate: "rate-limit", + ctRedirect: "redirect", + ctMark: "mark", + ctAction: "action", + ctRT: "rt", + ctEncap: "encap", + ctESILabel: "esi-label", + ctRouterMAC: "router-mac", + ctDefaultGateway: "default-gateway", + ctValid: "valid", + ctNotFound: "not-found", + ctInvalid: "invalid", + ctColor: "color", } -var ExtCommValueMap = map[string]ExtCommType{ - ExtCommNameMap[ACCEPT]: ACCEPT, - ExtCommNameMap[DISCARD]: DISCARD, - ExtCommNameMap[RATE]: RATE, - ExtCommNameMap[REDIRECT]: REDIRECT, - ExtCommNameMap[MARK]: MARK, - ExtCommNameMap[ACTION]: ACTION, - ExtCommNameMap[RT]: RT, - ExtCommNameMap[ENCAP]: ENCAP, - ExtCommNameMap[ESI_LABEL]: ESI_LABEL, - ExtCommNameMap[ROUTER_MAC]: ROUTER_MAC, - ExtCommNameMap[DEFAULT_GATEWAY]: DEFAULT_GATEWAY, - ExtCommNameMap[VALID]: VALID, - ExtCommNameMap[NOT_FOUND]: NOT_FOUND, - ExtCommNameMap[INVALID]: INVALID, - ExtCommNameMap[COLOR]: COLOR, +var extCommValueMap = map[string]extCommType{ + extCommNameMap[ctAccept]: ctAccept, + extCommNameMap[ctDiscard]: ctDiscard, + extCommNameMap[ctRate]: ctRate, + extCommNameMap[ctRedirect]: ctRedirect, + extCommNameMap[ctMark]: ctMark, + extCommNameMap[ctAction]: ctAction, + extCommNameMap[ctRT]: ctRT, + extCommNameMap[ctEncap]: ctEncap, + extCommNameMap[ctESILabel]: ctESILabel, + extCommNameMap[ctRouterMAC]: ctRouterMAC, + extCommNameMap[ctDefaultGateway]: ctDefaultGateway, + extCommNameMap[ctValid]: ctValid, + extCommNameMap[ctNotFound]: ctNotFound, + extCommNameMap[ctInvalid]: ctInvalid, + extCommNameMap[ctColor]: ctColor, } func rateLimitParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { - exp := regexp.MustCompile(fmt.Sprintf("^(%s|(%s) (\\d+)(\\.(\\d+))?)( as (\\d+))?$", ExtCommNameMap[DISCARD], ExtCommNameMap[RATE])) + exp := regexp.MustCompile(fmt.Sprintf("^(%s|(%s) (\\d+)(\\.(\\d+))?)( as (\\d+))?$", extCommNameMap[ctDiscard], extCommNameMap[ctRate])) elems := exp.FindStringSubmatch(strings.Join(args, " ")) if len(elems) != 8 { return nil, fmt.Errorf("invalid rate-limit") } var rate float32 var as uint64 - if elems[2] == ExtCommNameMap[RATE] { + if elems[2] == extCommNameMap[ctRate] { f, err := strconv.ParseFloat(elems[3]+elems[4], 32) if err != nil { return nil, err @@ -116,7 +116,7 @@ func rateLimitParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { } func redirectParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { - if len(args) < 2 || args[0] != ExtCommNameMap[REDIRECT] { + if len(args) < 2 || args[0] != extCommNameMap[ctRedirect] { return nil, fmt.Errorf("invalid redirect") } rt, err := bgp.ParseRouteTarget(strings.Join(args[1:], " ")) @@ -141,7 +141,7 @@ func redirectParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { } func markParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { - if len(args) < 2 || args[0] != ExtCommNameMap[MARK] { + if len(args) < 2 || args[0] != extCommNameMap[ctMark] { return nil, fmt.Errorf("invalid mark") } dscp, err := strconv.ParseUint(args[1], 10, 8) @@ -152,7 +152,7 @@ func markParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { } func actionParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { - if len(args) < 2 || args[0] != ExtCommNameMap[ACTION] { + if len(args) < 2 || args[0] != extCommNameMap[ctAction] { return nil, fmt.Errorf("invalid action") } sample := false @@ -172,7 +172,7 @@ func actionParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { } func rtParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { - if len(args) < 2 || args[0] != ExtCommNameMap[RT] { + if len(args) < 2 || args[0] != extCommNameMap[ctRT] { return nil, fmt.Errorf("invalid rt") } exts := make([]bgp.ExtendedCommunityInterface, 0, len(args[1:])) @@ -187,7 +187,7 @@ func rtParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { } func encapParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { - if len(args) < 2 || args[0] != ExtCommNameMap[ENCAP] { + if len(args) < 2 || args[0] != extCommNameMap[ctEncap] { return nil, fmt.Errorf("invalid encap") } var typ bgp.TunnelType @@ -215,7 +215,7 @@ func encapParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { } func esiLabelParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { - if len(args) < 2 || args[0] != ExtCommNameMap[ESI_LABEL] { + if len(args) < 2 || args[0] != extCommNameMap[ctESILabel] { return nil, fmt.Errorf("invalid esi-label") } label, err := strconv.ParseUint(args[1], 10, 32) @@ -241,7 +241,7 @@ func esiLabelParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { } func routerMacParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { - if len(args) < 2 || args[0] != ExtCommNameMap[ROUTER_MAC] { + if len(args) < 2 || args[0] != extCommNameMap[ctRouterMAC] { return nil, fmt.Errorf("invalid router's mac") } hw, err := net.ParseMAC(args[1]) @@ -253,7 +253,7 @@ func routerMacParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { } func defaultGatewayParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { - if len(args) < 1 || args[0] != ExtCommNameMap[DEFAULT_GATEWAY] { + if len(args) < 1 || args[0] != extCommNameMap[ctDefaultGateway] { return nil, fmt.Errorf("invalid default-gateway") } return []bgp.ExtendedCommunityInterface{bgp.NewDefaultGatewayExtended()}, nil @@ -278,7 +278,7 @@ func validationParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { } func colorParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { - if len(args) != 2 || args[0] != ExtCommNameMap[COLOR] { + if len(args) != 2 || args[0] != extCommNameMap[ctColor] { return nil, fmt.Errorf("invalid color") } color, err := strconv.ParseUint(args[1], 10, 32) @@ -288,33 +288,33 @@ func colorParser(args []string) ([]bgp.ExtendedCommunityInterface, error) { return []bgp.ExtendedCommunityInterface{bgp.NewColorExtended(uint32(color))}, nil } -var ExtCommParserMap = map[ExtCommType]func([]string) ([]bgp.ExtendedCommunityInterface, error){ - ACCEPT: nil, - DISCARD: rateLimitParser, - RATE: rateLimitParser, - REDIRECT: redirectParser, - MARK: markParser, - ACTION: actionParser, - RT: rtParser, - ENCAP: encapParser, - ESI_LABEL: esiLabelParser, - ROUTER_MAC: routerMacParser, - DEFAULT_GATEWAY: defaultGatewayParser, - VALID: validationParser, - NOT_FOUND: validationParser, - INVALID: validationParser, - COLOR: colorParser, +var extCommParserMap = map[extCommType]func([]string) ([]bgp.ExtendedCommunityInterface, error){ + ctAccept: nil, + ctDiscard: rateLimitParser, + ctRate: rateLimitParser, + ctRedirect: redirectParser, + ctMark: markParser, + ctAction: actionParser, + ctRT: rtParser, + ctEncap: encapParser, + ctESILabel: esiLabelParser, + ctRouterMAC: routerMacParser, + ctDefaultGateway: defaultGatewayParser, + ctValid: validationParser, + ctNotFound: validationParser, + ctInvalid: validationParser, + ctColor: colorParser, } -func ParseExtendedCommunities(args []string) ([]bgp.ExtendedCommunityInterface, error) { +func parseExtendedCommunities(args []string) ([]bgp.ExtendedCommunityInterface, error) { idxs := make([]struct { - t ExtCommType + t extCommType i int - }, 0, len(ExtCommNameMap)) + }, 0, len(extCommNameMap)) for idx, v := range args { - if t, ok := ExtCommValueMap[v]; ok { + if t, ok := extCommValueMap[v]; ok { idxs = append(idxs, struct { - t ExtCommType + t extCommType i int }{t, idx}) } @@ -322,7 +322,7 @@ func ParseExtendedCommunities(args []string) ([]bgp.ExtendedCommunityInterface, exts := make([]bgp.ExtendedCommunityInterface, 0, len(idxs)) for i, idx := range idxs { var a []string - f := ExtCommParserMap[idx.t] + f := extCommParserMap[idx.t] if i < len(idxs)-1 { a = args[:idxs[i+1].i-idx.i] args = args[(idxs[i+1].i - idx.i):] @@ -345,7 +345,7 @@ func ParseExtendedCommunities(args []string) ([]bgp.ExtendedCommunityInterface, return exts, nil } -func ParseFlowSpecArgs(rf bgp.RouteFamily, args []string) (bgp.AddrPrefixInterface, []string, error) { +func parseFlowSpecArgs(rf bgp.RouteFamily, args []string) (bgp.AddrPrefixInterface, []string, error) { // Format: // match ... [then ...] [rd ] [rt ...] req := 3 // match [ ...] @@ -353,10 +353,10 @@ func ParseFlowSpecArgs(rf bgp.RouteFamily, args []string) (bgp.AddrPrefixInterfa return nil, nil, fmt.Errorf("%d args required at least, but got %d", req, len(args)) } m, err := extractReserved(args, map[string]int{ - "match": PARAM_LIST, - "then": PARAM_LIST, - "rd": PARAM_SINGLE, - "rt": PARAM_LIST}) + "match": paramList, + "then": paramList, + "rd": paramSingle, + "rt": paramList}) if err != nil { return nil, nil, err } @@ -412,7 +412,7 @@ func ParseFlowSpecArgs(rf bgp.RouteFamily, args []string) (bgp.AddrPrefixInterfa return nlri, extcomms, nil } -func ParseEvpnEthernetAutoDiscoveryArgs(args []string) (bgp.AddrPrefixInterface, []string, error) { +func parseEvpnEthernetAutoDiscoveryArgs(args []string) (bgp.AddrPrefixInterface, []string, error) { // Format: // esi etag label