summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--internal/pkg/config/bgp_configs.go352
-rw-r--r--tools/pyang_plugins/bgpyang2golang.py21
2 files changed, 189 insertions, 184 deletions
diff --git a/internal/pkg/config/bgp_configs.go b/internal/pkg/config/bgp_configs.go
index 5c3cff97..21e16fd8 100644
--- a/internal/pkg/config/bgp_configs.go
+++ b/internal/pkg/config/bgp_configs.go
@@ -55,14 +55,6 @@ var RemovePrivateAsOptionToIntMap = map[RemovePrivateAsOption]int{
REMOVE_PRIVATE_AS_OPTION_REPLACE: 1,
}
-func (v RemovePrivateAsOption) ToInt() int {
- i, ok := RemovePrivateAsOptionToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToRemovePrivateAsOptionMap = map[int]RemovePrivateAsOption{
0: REMOVE_PRIVATE_AS_OPTION_ALL,
1: REMOVE_PRIVATE_AS_OPTION_REPLACE,
@@ -75,6 +67,14 @@ func (v RemovePrivateAsOption) Validate() error {
return nil
}
+func (v RemovePrivateAsOption) ToInt() int {
+ i, ok := RemovePrivateAsOptionToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for typedef bgp-types:bgp-community-regexp-type.
type BgpCommunityRegexpType StdRegexp
@@ -99,14 +99,6 @@ var CommunityTypeToIntMap = map[CommunityType]int{
COMMUNITY_TYPE_NONE: 3,
}
-func (v CommunityType) ToInt() int {
- i, ok := CommunityTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToCommunityTypeMap = map[int]CommunityType{
0: COMMUNITY_TYPE_STANDARD,
1: COMMUNITY_TYPE_EXTENDED,
@@ -121,6 +113,14 @@ func (v CommunityType) Validate() error {
return nil
}
+func (v CommunityType) ToInt() int {
+ i, ok := CommunityTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for typedef bgp-types:bgp-ext-community-type.
type BgpExtCommunityType string
@@ -142,14 +142,6 @@ var PeerTypeToIntMap = map[PeerType]int{
PEER_TYPE_EXTERNAL: 1,
}
-func (v PeerType) ToInt() int {
- i, ok := PeerTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToPeerTypeMap = map[int]PeerType{
0: PEER_TYPE_INTERNAL,
1: PEER_TYPE_EXTERNAL,
@@ -162,6 +154,14 @@ func (v PeerType) Validate() error {
return nil
}
+func (v PeerType) ToInt() int {
+ i, ok := PeerTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity bgp-types:bgp-session-direction.
// Type to describe the direction of NLRI transmission.
type BgpSessionDirection string
@@ -176,14 +176,6 @@ var BgpSessionDirectionToIntMap = map[BgpSessionDirection]int{
BGP_SESSION_DIRECTION_OUTBOUND: 1,
}
-func (v BgpSessionDirection) ToInt() int {
- i, ok := BgpSessionDirectionToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToBgpSessionDirectionMap = map[int]BgpSessionDirection{
0: BGP_SESSION_DIRECTION_INBOUND,
1: BGP_SESSION_DIRECTION_OUTBOUND,
@@ -196,6 +188,14 @@ func (v BgpSessionDirection) Validate() error {
return nil
}
+func (v BgpSessionDirection) ToInt() int {
+ i, ok := BgpSessionDirectionToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity bgp-types:bgp-origin-attr-type.
// Type definition for standard BGP origin attribute.
type BgpOriginAttrType string
@@ -212,14 +212,6 @@ var BgpOriginAttrTypeToIntMap = map[BgpOriginAttrType]int{
BGP_ORIGIN_ATTR_TYPE_INCOMPLETE: 2,
}
-func (v BgpOriginAttrType) ToInt() int {
- i, ok := BgpOriginAttrTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToBgpOriginAttrTypeMap = map[int]BgpOriginAttrType{
0: BGP_ORIGIN_ATTR_TYPE_IGP,
1: BGP_ORIGIN_ATTR_TYPE_EGP,
@@ -233,6 +225,14 @@ func (v BgpOriginAttrType) Validate() error {
return nil
}
+func (v BgpOriginAttrType) ToInt() int {
+ i, ok := BgpOriginAttrTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity bgp-types:afi-safi-type.
// Base identity type for AFI,SAFI tuples for BGP-4.
type AfiSafiType string
@@ -285,14 +285,6 @@ var AfiSafiTypeToIntMap = map[AfiSafiType]int{
AFI_SAFI_TYPE_OPAQUE: 20,
}
-func (v AfiSafiType) ToInt() int {
- i, ok := AfiSafiTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToAfiSafiTypeMap = map[int]AfiSafiType{
0: AFI_SAFI_TYPE_IPV4_UNICAST,
1: AFI_SAFI_TYPE_IPV6_UNICAST,
@@ -324,6 +316,14 @@ func (v AfiSafiType) Validate() error {
return nil
}
+func (v AfiSafiType) ToInt() int {
+ i, ok := AfiSafiTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity bgp-types:bgp-capability.
// Base identity for a BGP capability.
type BgpCapability string
@@ -344,14 +344,6 @@ var BgpCapabilityToIntMap = map[BgpCapability]int{
BGP_CAPABILITY_ADD_PATHS: 4,
}
-func (v BgpCapability) ToInt() int {
- i, ok := BgpCapabilityToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToBgpCapabilityMap = map[int]BgpCapability{
0: BGP_CAPABILITY_MPBGP,
1: BGP_CAPABILITY_ROUTE_REFRESH,
@@ -367,6 +359,14 @@ func (v BgpCapability) Validate() error {
return nil
}
+func (v BgpCapability) ToInt() int {
+ i, ok := BgpCapabilityToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity bgp-types:bgp-well-known-std-community.
// Reserved communities within the standard community space
// defined by RFC1997. These communities must fall within the
@@ -387,14 +387,6 @@ var BgpWellKnownStdCommunityToIntMap = map[BgpWellKnownStdCommunity]int{
BGP_WELL_KNOWN_STD_COMMUNITY_NOPEER: 3,
}
-func (v BgpWellKnownStdCommunity) ToInt() int {
- i, ok := BgpWellKnownStdCommunityToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToBgpWellKnownStdCommunityMap = map[int]BgpWellKnownStdCommunity{
0: BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT,
1: BGP_WELL_KNOWN_STD_COMMUNITY_NO_ADVERTISE,
@@ -409,6 +401,14 @@ func (v BgpWellKnownStdCommunity) Validate() error {
return nil
}
+func (v BgpWellKnownStdCommunity) ToInt() int {
+ i, ok := BgpWellKnownStdCommunityToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity ptypes:match-set-options-restricted-type.
// Options that govern the behavior of a match statement. The
// default behavior is ANY, i.e., the given value matches any
@@ -426,14 +426,6 @@ var MatchSetOptionsRestrictedTypeToIntMap = map[MatchSetOptionsRestrictedType]in
MATCH_SET_OPTIONS_RESTRICTED_TYPE_INVERT: 1,
}
-func (v MatchSetOptionsRestrictedType) ToInt() int {
- i, ok := MatchSetOptionsRestrictedTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToMatchSetOptionsRestrictedTypeMap = map[int]MatchSetOptionsRestrictedType{
0: MATCH_SET_OPTIONS_RESTRICTED_TYPE_ANY,
1: MATCH_SET_OPTIONS_RESTRICTED_TYPE_INVERT,
@@ -456,6 +448,14 @@ func (v MatchSetOptionsRestrictedType) DefaultAsNeeded() MatchSetOptionsRestrict
}
return v
}
+func (v MatchSetOptionsRestrictedType) ToInt() int {
+ _v := v.DefaultAsNeeded()
+ i, ok := MatchSetOptionsRestrictedTypeToIntMap[_v]
+ if !ok {
+ return -1
+ }
+ return i
+}
// typedef for identity ptypes:match-set-options-type.
// Options that govern the behavior of a match statement. The
@@ -475,14 +475,6 @@ var MatchSetOptionsTypeToIntMap = map[MatchSetOptionsType]int{
MATCH_SET_OPTIONS_TYPE_INVERT: 2,
}
-func (v MatchSetOptionsType) ToInt() int {
- i, ok := MatchSetOptionsTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToMatchSetOptionsTypeMap = map[int]MatchSetOptionsType{
0: MATCH_SET_OPTIONS_TYPE_ANY,
1: MATCH_SET_OPTIONS_TYPE_ALL,
@@ -506,6 +498,14 @@ func (v MatchSetOptionsType) DefaultAsNeeded() MatchSetOptionsType {
}
return v
}
+func (v MatchSetOptionsType) ToInt() int {
+ _v := v.DefaultAsNeeded()
+ i, ok := MatchSetOptionsTypeToIntMap[_v]
+ if !ok {
+ return -1
+ }
+ return i
+}
// typedef for typedef ptypes:tag-type.
type TagType string
@@ -535,14 +535,6 @@ var InstallProtocolTypeToIntMap = map[InstallProtocolType]int{
INSTALL_PROTOCOL_TYPE_LOCAL_AGGREGATE: 6,
}
-func (v InstallProtocolType) ToInt() int {
- i, ok := InstallProtocolTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToInstallProtocolTypeMap = map[int]InstallProtocolType{
0: INSTALL_PROTOCOL_TYPE_BGP,
1: INSTALL_PROTOCOL_TYPE_ISIS,
@@ -560,6 +552,14 @@ func (v InstallProtocolType) Validate() error {
return nil
}
+func (v InstallProtocolType) ToInt() int {
+ i, ok := InstallProtocolTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity ptypes:attribute-comparison.
// base type for supported comparison operators on route
// attributes.
@@ -583,14 +583,6 @@ var AttributeComparisonToIntMap = map[AttributeComparison]int{
ATTRIBUTE_COMPARISON_LE: 5,
}
-func (v AttributeComparison) ToInt() int {
- i, ok := AttributeComparisonToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToAttributeComparisonMap = map[int]AttributeComparison{
0: ATTRIBUTE_COMPARISON_ATTRIBUTE_EQ,
1: ATTRIBUTE_COMPARISON_ATTRIBUTE_GE,
@@ -607,6 +599,14 @@ func (v AttributeComparison) Validate() error {
return nil
}
+func (v AttributeComparison) ToInt() int {
+ i, ok := AttributeComparisonToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity rpol:route-disposition.
// Select the final disposition for the route, either
// accept or reject.
@@ -624,14 +624,6 @@ var RouteDispositionToIntMap = map[RouteDisposition]int{
ROUTE_DISPOSITION_REJECT_ROUTE: 2,
}
-func (v RouteDisposition) ToInt() int {
- i, ok := RouteDispositionToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToRouteDispositionMap = map[int]RouteDisposition{
0: ROUTE_DISPOSITION_NONE,
1: ROUTE_DISPOSITION_ACCEPT_ROUTE,
@@ -645,6 +637,14 @@ func (v RouteDisposition) Validate() error {
return nil
}
+func (v RouteDisposition) ToInt() int {
+ i, ok := RouteDispositionToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity rpol:route-type.
// Condition to check the route type in the route update.
type RouteType string
@@ -663,14 +663,6 @@ var RouteTypeToIntMap = map[RouteType]int{
ROUTE_TYPE_LOCAL: 3,
}
-func (v RouteType) ToInt() int {
- i, ok := RouteTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToRouteTypeMap = map[int]RouteType{
0: ROUTE_TYPE_NONE,
1: ROUTE_TYPE_INTERNAL,
@@ -685,6 +677,14 @@ func (v RouteType) Validate() error {
return nil
}
+func (v RouteType) ToInt() int {
+ i, ok := RouteTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity rpol:default-policy-type.
// type used to specify default route disposition in
// a policy chain.
@@ -700,14 +700,6 @@ var DefaultPolicyTypeToIntMap = map[DefaultPolicyType]int{
DEFAULT_POLICY_TYPE_REJECT_ROUTE: 1,
}
-func (v DefaultPolicyType) ToInt() int {
- i, ok := DefaultPolicyTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToDefaultPolicyTypeMap = map[int]DefaultPolicyType{
0: DEFAULT_POLICY_TYPE_ACCEPT_ROUTE,
1: DEFAULT_POLICY_TYPE_REJECT_ROUTE,
@@ -720,6 +712,14 @@ func (v DefaultPolicyType) Validate() error {
return nil
}
+func (v DefaultPolicyType) ToInt() int {
+ i, ok := DefaultPolicyTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity bgp:session-state.
// Operational state of the BGP peer.
type SessionState string
@@ -742,14 +742,6 @@ var SessionStateToIntMap = map[SessionState]int{
SESSION_STATE_ESTABLISHED: 5,
}
-func (v SessionState) ToInt() int {
- i, ok := SessionStateToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToSessionStateMap = map[int]SessionState{
0: SESSION_STATE_IDLE,
1: SESSION_STATE_CONNECT,
@@ -766,6 +758,14 @@ func (v SessionState) Validate() error {
return nil
}
+func (v SessionState) ToInt() int {
+ i, ok := SessionStateToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity bgp:admin-state.
type AdminState string
@@ -781,14 +781,6 @@ var AdminStateToIntMap = map[AdminState]int{
ADMIN_STATE_PFX_CT: 2,
}
-func (v AdminState) ToInt() int {
- i, ok := AdminStateToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToAdminStateMap = map[int]AdminState{
0: ADMIN_STATE_UP,
1: ADMIN_STATE_DOWN,
@@ -802,6 +794,14 @@ func (v AdminState) Validate() error {
return nil
}
+func (v AdminState) ToInt() int {
+ i, ok := AdminStateToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity bgp:mode.
// Ths leaf indicates the mode of operation of BGP graceful
// restart with the peer.
@@ -819,14 +819,6 @@ var ModeToIntMap = map[Mode]int{
MODE_REMOTE_HELPER: 2,
}
-func (v Mode) ToInt() int {
- i, ok := ModeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToModeMap = map[int]Mode{
0: MODE_HELPER_ONLY,
1: MODE_BILATERAL,
@@ -840,6 +832,14 @@ func (v Mode) Validate() error {
return nil
}
+func (v Mode) ToInt() int {
+ i, ok := ModeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for typedef bgp-pol:bgp-next-hop-type.
type BgpNextHopType string
@@ -866,14 +866,6 @@ var BgpSetCommunityOptionTypeToIntMap = map[BgpSetCommunityOptionType]int{
BGP_SET_COMMUNITY_OPTION_TYPE_REPLACE: 2,
}
-func (v BgpSetCommunityOptionType) ToInt() int {
- i, ok := BgpSetCommunityOptionTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToBgpSetCommunityOptionTypeMap = map[int]BgpSetCommunityOptionType{
0: BGP_SET_COMMUNITY_OPTION_TYPE_ADD,
1: BGP_SET_COMMUNITY_OPTION_TYPE_REMOVE,
@@ -887,6 +879,14 @@ func (v BgpSetCommunityOptionType) Validate() error {
return nil
}
+func (v BgpSetCommunityOptionType) ToInt() int {
+ i, ok := BgpSetCommunityOptionTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity gobgp:bmp-route-monitoring-policy-type.
type BmpRouteMonitoringPolicyType string
@@ -906,14 +906,6 @@ var BmpRouteMonitoringPolicyTypeToIntMap = map[BmpRouteMonitoringPolicyType]int{
BMP_ROUTE_MONITORING_POLICY_TYPE_ALL: 4,
}
-func (v BmpRouteMonitoringPolicyType) ToInt() int {
- i, ok := BmpRouteMonitoringPolicyTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToBmpRouteMonitoringPolicyTypeMap = map[int]BmpRouteMonitoringPolicyType{
0: BMP_ROUTE_MONITORING_POLICY_TYPE_PRE_POLICY,
1: BMP_ROUTE_MONITORING_POLICY_TYPE_POST_POLICY,
@@ -929,6 +921,14 @@ func (v BmpRouteMonitoringPolicyType) Validate() error {
return nil
}
+func (v BmpRouteMonitoringPolicyType) ToInt() int {
+ i, ok := BmpRouteMonitoringPolicyTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity gobgp:mrt-type.
type MrtType string
@@ -942,14 +942,6 @@ var MrtTypeToIntMap = map[MrtType]int{
MRT_TYPE_TABLE: 1,
}
-func (v MrtType) ToInt() int {
- i, ok := MrtTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToMrtTypeMap = map[int]MrtType{
0: MRT_TYPE_UPDATES,
1: MRT_TYPE_TABLE,
@@ -962,6 +954,14 @@ func (v MrtType) Validate() error {
return nil
}
+func (v MrtType) ToInt() int {
+ i, ok := MrtTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// typedef for identity gobgp:rpki-validation-result-type.
// indicate the validation result of RPKI based on ROA.
type RpkiValidationResultType string
@@ -980,14 +980,6 @@ var RpkiValidationResultTypeToIntMap = map[RpkiValidationResultType]int{
RPKI_VALIDATION_RESULT_TYPE_INVALID: 3,
}
-func (v RpkiValidationResultType) ToInt() int {
- i, ok := RpkiValidationResultTypeToIntMap[v]
- if !ok {
- return -1
- }
- return i
-}
-
var IntToRpkiValidationResultTypeMap = map[int]RpkiValidationResultType{
0: RPKI_VALIDATION_RESULT_TYPE_NONE,
1: RPKI_VALIDATION_RESULT_TYPE_NOT_FOUND,
@@ -1002,6 +994,14 @@ func (v RpkiValidationResultType) Validate() error {
return nil
}
+func (v RpkiValidationResultType) ToInt() int {
+ i, ok := RpkiValidationResultTypeToIntMap[v]
+ if !ok {
+ return -1
+ }
+ return i
+}
+
// struct for container gobgp:state.
type DynamicNeighborState struct {
// original -> gobgp:prefix
diff --git a/tools/pyang_plugins/bgpyang2golang.py b/tools/pyang_plugins/bgpyang2golang.py
index 62497f09..01ee9c3b 100644
--- a/tools/pyang_plugins/bgpyang2golang.py
+++ b/tools/pyang_plugins/bgpyang2golang.py
@@ -546,14 +546,6 @@ def emit_enum(prefix, name, stmt, substmts, fd):
print(' %s: %d,' % (enum_name, i), file=fd)
print('}\n', file=fd)
- print('func (v %s) ToInt() int {' % type_name, file=fd)
- print('i, ok := %sToIntMap[v]' % type_name, file=fd)
- print('if !ok {', file=fd)
- print('return -1', file=fd)
- print('}', file=fd)
- print('return i', file=fd)
- print('}', file=fd)
-
print('var IntTo%sMap = map[int]%s {' % (type_name, type_name), file=fd)
for i, sub in enumerate(substmts):
enum_name = '%s_%s' % (const_prefix, convert_const_prefix(sub.arg))
@@ -580,6 +572,19 @@ def emit_enum(prefix, name, stmt, substmts, fd):
print(' return v', file=fd)
print('}', file=fd)
+ print('func (v %s) ToInt() int {' % type_name, file=fd)
+ print('_v := v.DefaultAsNeeded()')
+ print('i, ok := %sToIntMap[_v]' % type_name, file=fd)
+
+ else:
+ print('func (v %s) ToInt() int {' % type_name, file=fd)
+ print('i, ok := %sToIntMap[v]' % type_name, file=fd)
+ print('if !ok {', file=fd)
+ print('return -1', file=fd)
+ print('}', file=fd)
+ print('return i', file=fd)
+ print('}', file=fd)
+
def emit_typedef(ctx, mod, fd):
prefix = mod.i_prefix