summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIWASE Yusuke <iwase.yusuke0@gmail.com>2017-07-21 16:09:03 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2017-07-26 14:37:04 +0900
commit10d66ebe510f22e74cd30c7e4cd2e6c34a7f0105 (patch)
tree7691d9b8063ebc2ff1b7812f28db9d445380173f
parentf0ae9bd47e43deaea3d25baf0a3f9abaf5766e5b (diff)
config: Insert descriptions extracted from yang files
This patch fixes pyang_plugins to insert the descriptions which extracted from yang files and helps to enrich the documentation (e.g., godoc). Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
-rw-r--r--config/bgp_configs.go1723
-rw-r--r--tools/pyang_plugins/bgpyang2golang.py33
2 files changed, 1435 insertions, 321 deletions
diff --git a/config/bgp_configs.go b/config/bgp_configs.go
index 87542200..36081d2b 100644
--- a/config/bgp_configs.go
+++ b/config/bgp_configs.go
@@ -31,16 +31,18 @@ func mapkey(index int, name string) string {
return fmt.Sprintf("%v", index)
}
-// typedef for typedef openconfig-types:std-regexp
+// typedef for typedef openconfig-types:std-regexp.
type StdRegexp string
-// typedef for typedef openconfig-types:percentage
+// typedef for typedef openconfig-types:percentage.
type Percentage uint8
-// typedef for typedef bgp-types:rr-cluster-id-type
+// typedef for typedef bgp-types:rr-cluster-id-type.
type RrClusterIdType string
-// typedef for identity bgp-types:remove-private-as-option
+// typedef for identity bgp-types:remove-private-as-option.
+// set of options for configuring how private AS path numbers
+// are removed from advertisements.
type RemovePrivateAsOption string
const (
@@ -73,10 +75,14 @@ func (v RemovePrivateAsOption) Validate() error {
return nil
}
-// typedef for typedef bgp-types:bgp-community-regexp-type
+// typedef for typedef bgp-types:bgp-community-regexp-type.
type BgpCommunityRegexpType StdRegexp
-// typedef for identity bgp-types:community-type
+// typedef for identity bgp-types:community-type.
+// type describing variations of community attributes:
+// STANDARD: standard BGP community [rfc1997]
+// EXTENDED: extended BGP community [rfc4360]
+// BOTH: both standard and extended community.
type CommunityType string
const (
@@ -115,13 +121,15 @@ func (v CommunityType) Validate() error {
return nil
}
-// typedef for typedef bgp-types:bgp-ext-community-type
+// typedef for typedef bgp-types:bgp-ext-community-type.
type BgpExtCommunityType string
-// typedef for typedef bgp-types:bgp-std-community-type
+// typedef for typedef bgp-types:bgp-std-community-type.
type BgpStdCommunityType string
-// typedef for identity bgp-types:peer-type
+// typedef for identity bgp-types:peer-type.
+// labels a peer or peer group as explicitly internal or
+// external.
type PeerType string
const (
@@ -154,7 +162,8 @@ func (v PeerType) Validate() error {
return nil
}
-// typedef for identity bgp-types:bgp-session-direction
+// typedef for identity bgp-types:bgp-session-direction.
+// Type to describe the direction of NLRI transmission.
type BgpSessionDirection string
const (
@@ -187,7 +196,8 @@ func (v BgpSessionDirection) Validate() error {
return nil
}
-// typedef for identity bgp-types:bgp-origin-attr-type
+// typedef for identity bgp-types:bgp-origin-attr-type.
+// Type definition for standard BGP origin attribute.
type BgpOriginAttrType string
const (
@@ -223,7 +233,8 @@ func (v BgpOriginAttrType) Validate() error {
return nil
}
-// typedef for identity bgp-types:afi-safi-type
+// typedef for identity bgp-types:afi-safi-type.
+// Base identity type for AFI,SAFI tuples for BGP-4.
type AfiSafiType string
const (
@@ -313,7 +324,8 @@ func (v AfiSafiType) Validate() error {
return nil
}
-// typedef for identity bgp-types:bgp-capability
+// typedef for identity bgp-types:bgp-capability.
+// Base identity for a BGP capability.
type BgpCapability string
const (
@@ -355,7 +367,10 @@ func (v BgpCapability) Validate() error {
return nil
}
-// typedef for identity bgp-types:bgp-well-known-std-community
+// 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
+// range 0x00000000 to 0xFFFFFFFF.
type BgpWellKnownStdCommunity string
const (
@@ -394,7 +409,11 @@ func (v BgpWellKnownStdCommunity) Validate() error {
return nil
}
-// typedef for identity ptypes:match-set-options-restricted-type
+// 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
+// of the members of the defined set. Note this type is a
+// restricted version of the match-set-options-type.
type MatchSetOptionsRestrictedType string
const (
@@ -438,7 +457,10 @@ func (v MatchSetOptionsRestrictedType) DefaultAsNeeded() MatchSetOptionsRestrict
return v
}
-// typedef for identity ptypes:match-set-options-type
+// typedef for identity ptypes:match-set-options-type.
+// Options that govern the behavior of a match statement. The
+// default behavior is ANY, i.e., the given value matches any
+// of the members of the defined set.
type MatchSetOptionsType string
const (
@@ -485,10 +507,12 @@ func (v MatchSetOptionsType) DefaultAsNeeded() MatchSetOptionsType {
return v
}
-// typedef for typedef ptypes:tag-type
+// typedef for typedef ptypes:tag-type.
type TagType string
-// typedef for identity ptypes:install-protocol-type
+// typedef for identity ptypes:install-protocol-type.
+// Base type for protocols which can install prefixes into the
+// RIB.
type InstallProtocolType string
const (
@@ -536,7 +560,9 @@ func (v InstallProtocolType) Validate() error {
return nil
}
-// typedef for identity ptypes:attribute-comparison
+// typedef for identity ptypes:attribute-comparison.
+// base type for supported comparison operators on route
+// attributes.
type AttributeComparison string
const (
@@ -581,7 +607,9 @@ func (v AttributeComparison) Validate() error {
return nil
}
-// typedef for identity rpol:route-disposition
+// typedef for identity rpol:route-disposition.
+// Select the final disposition for the route, either
+// accept or reject.
type RouteDisposition string
const (
@@ -617,7 +645,8 @@ func (v RouteDisposition) Validate() error {
return nil
}
-// typedef for identity rpol:route-type
+// typedef for identity rpol:route-type.
+// Condition to check the route type in the route update.
type RouteType string
const (
@@ -656,7 +685,9 @@ func (v RouteType) Validate() error {
return nil
}
-// typedef for identity rpol:default-policy-type
+// typedef for identity rpol:default-policy-type.
+// type used to specify default route disposition in
+// a policy chain.
type DefaultPolicyType string
const (
@@ -689,7 +720,8 @@ func (v DefaultPolicyType) Validate() error {
return nil
}
-// typedef for identity bgp:session-state
+// typedef for identity bgp:session-state.
+// Operational state of the BGP peer.
type SessionState string
const (
@@ -734,7 +766,7 @@ func (v SessionState) Validate() error {
return nil
}
-// typedef for identity bgp:admin-state
+// typedef for identity bgp:admin-state.
type AdminState string
const (
@@ -770,7 +802,9 @@ func (v AdminState) Validate() error {
return nil
}
-// typedef for identity bgp:mode
+// typedef for identity bgp:mode.
+// Ths leaf indicates the mode of operation of BGP graceful
+// restart with the peer.
type Mode string
const (
@@ -806,16 +840,18 @@ func (v Mode) Validate() error {
return nil
}
-// typedef for typedef bgp-pol:bgp-next-hop-type
+// typedef for typedef bgp-pol:bgp-next-hop-type.
type BgpNextHopType string
-// typedef for typedef bgp-pol:bgp-as-path-prepend-repeat
+// typedef for typedef bgp-pol:bgp-as-path-prepend-repeat.
type BgpAsPathPrependRepeat uint8
-// typedef for typedef bgp-pol:bgp-set-med-type
+// typedef for typedef bgp-pol:bgp-set-med-type.
type BgpSetMedType string
-// typedef for identity bgp-pol:bgp-set-community-option-type
+// typedef for identity bgp-pol:bgp-set-community-option-type.
+// Type definition for options when setting the community
+// attribute in a policy action.
type BgpSetCommunityOptionType string
const (
@@ -851,7 +887,7 @@ func (v BgpSetCommunityOptionType) Validate() error {
return nil
}
-// typedef for identity gobgp:bmp-route-monitoring-policy-type
+// typedef for identity gobgp:bmp-route-monitoring-policy-type.
type BmpRouteMonitoringPolicyType string
const (
@@ -893,7 +929,7 @@ func (v BmpRouteMonitoringPolicyType) Validate() error {
return nil
}
-// typedef for identity gobgp:mrt-type
+// typedef for identity gobgp:mrt-type.
type MrtType string
const (
@@ -926,7 +962,8 @@ func (v MrtType) Validate() error {
return nil
}
-// typedef for identity gobgp:rpki-validation-result-type
+// typedef for identity gobgp:rpki-validation-result-type.
+// indicate the validation result of RPKI based on ROA.
type RpkiValidationResultType string
const (
@@ -965,7 +1002,7 @@ func (v RpkiValidationResultType) Validate() error {
return nil
}
-//struct for container gobgp:state
+// struct for container gobgp:state.
type DynamicNeighborState struct {
// original -> gobgp:prefix
Prefix string `mapstructure:"prefix" json:"prefix,omitempty"`
@@ -973,7 +1010,7 @@ type DynamicNeighborState struct {
PeerGroup string `mapstructure:"peer-group" json:"peer-group,omitempty"`
}
-//struct for container gobgp:config
+// struct for container gobgp:config.
type DynamicNeighborConfig struct {
// original -> gobgp:prefix
Prefix string `mapstructure:"prefix" json:"prefix,omitempty"`
@@ -994,7 +1031,7 @@ func (lhs *DynamicNeighborConfig) Equal(rhs *DynamicNeighborConfig) bool {
return true
}
-//struct for container gobgp:dynamic-neighbor
+// struct for container gobgp:dynamic-neighbor.
type DynamicNeighbor struct {
// original -> gobgp:prefix
// original -> gobgp:dynamic-neighbor-config
@@ -1013,7 +1050,7 @@ func (lhs *DynamicNeighbor) Equal(rhs *DynamicNeighbor) bool {
return true
}
-//struct for container gobgp:state
+// struct for container gobgp:state.
type CollectorState struct {
// original -> gobgp:url
Url string `mapstructure:"url" json:"url,omitempty"`
@@ -1023,7 +1060,7 @@ type CollectorState struct {
TableDumpInterval uint64 `mapstructure:"table-dump-interval" json:"table-dump-interval,omitempty"`
}
-//struct for container gobgp:config
+// struct for container gobgp:config.
type CollectorConfig struct {
// original -> gobgp:url
Url string `mapstructure:"url" json:"url,omitempty"`
@@ -1049,7 +1086,7 @@ func (lhs *CollectorConfig) Equal(rhs *CollectorConfig) bool {
return true
}
-//struct for container gobgp:collector
+// struct for container gobgp:collector.
type Collector struct {
// original -> gobgp:collector-config
Config CollectorConfig `mapstructure:"config" json:"config,omitempty"`
@@ -1067,37 +1104,43 @@ func (lhs *Collector) Equal(rhs *Collector) bool {
return true
}
-//struct for container gobgp:state
+// struct for container gobgp:state.
type ZebraState struct {
// original -> gobgp:enabled
- //gobgp:enabled's original type is boolean
+ // gobgp:enabled's original type is boolean.
+ // Configure enabling to connect to zebra.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> gobgp:url
+ // Configure url for zebra.
Url string `mapstructure:"url" json:"url,omitempty"`
// original -> gobgp:redistribute-route-type
RedistributeRouteTypeList []InstallProtocolType `mapstructure:"redistribute-route-type-list" json:"redistribute-route-type-list,omitempty"`
// original -> gobgp:version
+ // Configure version of zebra protocol. Default is 2. Supported up to 3.
Version uint8 `mapstructure:"version" json:"version,omitempty"`
// original -> gobgp:nexthop-trigger-enable
- //gobgp:nexthop-trigger-enable's original type is boolean
+ // gobgp:nexthop-trigger-enable's original type is boolean.
NexthopTriggerEnable bool `mapstructure:"nexthop-trigger-enable" json:"nexthop-trigger-enable,omitempty"`
// original -> gobgp:nexthop-trigger-delay
NexthopTriggerDelay uint8 `mapstructure:"nexthop-trigger-delay" json:"nexthop-trigger-delay,omitempty"`
}
-//struct for container gobgp:config
+// struct for container gobgp:config.
type ZebraConfig struct {
// original -> gobgp:enabled
- //gobgp:enabled's original type is boolean
+ // gobgp:enabled's original type is boolean.
+ // Configure enabling to connect to zebra.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> gobgp:url
+ // Configure url for zebra.
Url string `mapstructure:"url" json:"url,omitempty"`
// original -> gobgp:redistribute-route-type
RedistributeRouteTypeList []InstallProtocolType `mapstructure:"redistribute-route-type-list" json:"redistribute-route-type-list,omitempty"`
// original -> gobgp:version
+ // Configure version of zebra protocol. Default is 2. Supported up to 3.
Version uint8 `mapstructure:"version" json:"version,omitempty"`
// original -> gobgp:nexthop-trigger-enable
- //gobgp:nexthop-trigger-enable's original type is boolean
+ // gobgp:nexthop-trigger-enable's original type is boolean.
NexthopTriggerEnable bool `mapstructure:"nexthop-trigger-enable" json:"nexthop-trigger-enable,omitempty"`
// original -> gobgp:nexthop-trigger-delay
NexthopTriggerDelay uint8 `mapstructure:"nexthop-trigger-delay" json:"nexthop-trigger-delay,omitempty"`
@@ -1133,7 +1176,7 @@ func (lhs *ZebraConfig) Equal(rhs *ZebraConfig) bool {
return true
}
-//struct for container gobgp:zebra
+// struct for container gobgp:zebra.
type Zebra struct {
// original -> gobgp:zebra-config
Config ZebraConfig `mapstructure:"config" json:"config,omitempty"`
@@ -1151,13 +1194,15 @@ func (lhs *Zebra) Equal(rhs *Zebra) bool {
return true
}
-//struct for container gobgp:config
+// struct for container gobgp:config.
type MrtConfig struct {
// original -> gobgp:dump-type
DumpType MrtType `mapstructure:"dump-type" json:"dump-type,omitempty"`
// original -> gobgp:file-name
+ // Configures a file name to be written.
FileName string `mapstructure:"file-name" json:"file-name,omitempty"`
// original -> gobgp:table-name
+ // specify the table name with route server setup.
TableName string `mapstructure:"table-name" json:"table-name,omitempty"`
// original -> gobgp:dump-interval
DumpInterval uint64 `mapstructure:"dump-interval" json:"dump-interval,omitempty"`
@@ -1187,7 +1232,7 @@ func (lhs *MrtConfig) Equal(rhs *MrtConfig) bool {
return true
}
-//struct for container gobgp:mrt
+// struct for container gobgp:mrt.
type Mrt struct {
// original -> gobgp:file-name
// original -> gobgp:mrt-config
@@ -1204,35 +1249,49 @@ func (lhs *Mrt) Equal(rhs *Mrt) bool {
return true
}
-//struct for container gobgp:state
+// struct for container gobgp:state.
+// Configuration parameters relating to BMP server.
type BmpServerState struct {
// original -> gobgp:address
- //gobgp:address's original type is inet:ip-address
+ // gobgp:address's original type is inet:ip-address.
+ // Reference to the address of the BMP server used as
+ // a key in the BMP server list.
Address string `mapstructure:"address" json:"address,omitempty"`
// original -> gobgp:port
+ // Reference to the port of the BMP server.
Port uint32 `mapstructure:"port" json:"port,omitempty"`
// original -> gobgp:route-monitoring-policy
RouteMonitoringPolicy BmpRouteMonitoringPolicyType `mapstructure:"route-monitoring-policy" json:"route-monitoring-policy,omitempty"`
// original -> gobgp:statistics-timeout
+ // Interval seconds of statistics messages sent to BMP server.
StatisticsTimeout uint16 `mapstructure:"statistics-timeout" json:"statistics-timeout,omitempty"`
// original -> gobgp:route-mirroring-enabled
- //gobgp:route-mirroring-enabled's original type is boolean
+ // gobgp:route-mirroring-enabled's original type is boolean.
+ // Enable feature for mirroring of received BGP messages
+ // mainly for debugging purpose.
RouteMirroringEnabled bool `mapstructure:"route-mirroring-enabled" json:"route-mirroring-enabled,omitempty"`
}
-//struct for container gobgp:config
+// struct for container gobgp:config.
+// Configuration parameters relating to BMP server.
type BmpServerConfig struct {
// original -> gobgp:address
- //gobgp:address's original type is inet:ip-address
+ // gobgp:address's original type is inet:ip-address.
+ // Reference to the address of the BMP server used as
+ // a key in the BMP server list.
Address string `mapstructure:"address" json:"address,omitempty"`
// original -> gobgp:port
+ // Reference to the port of the BMP server.
Port uint32 `mapstructure:"port" json:"port,omitempty"`
// original -> gobgp:route-monitoring-policy
RouteMonitoringPolicy BmpRouteMonitoringPolicyType `mapstructure:"route-monitoring-policy" json:"route-monitoring-policy,omitempty"`
// original -> gobgp:statistics-timeout
+ // Interval seconds of statistics messages sent to BMP server.
StatisticsTimeout uint16 `mapstructure:"statistics-timeout" json:"statistics-timeout,omitempty"`
// original -> gobgp:route-mirroring-enabled
- //gobgp:route-mirroring-enabled's original type is boolean
+ // gobgp:route-mirroring-enabled's original type is boolean.
+ // Enable feature for mirroring of received BGP messages
+ // mainly for debugging purpose.
RouteMirroringEnabled bool `mapstructure:"route-mirroring-enabled" json:"route-mirroring-enabled,omitempty"`
}
@@ -1258,12 +1317,15 @@ func (lhs *BmpServerConfig) Equal(rhs *BmpServerConfig) bool {
return true
}
-//struct for container gobgp:bmp-server
+// struct for container gobgp:bmp-server.
+// List of BMP servers configured on the local system.
type BmpServer struct {
// original -> gobgp:address
// original -> gobgp:bmp-server-config
+ // Configuration parameters relating to BMP server.
Config BmpServerConfig `mapstructure:"config" json:"config,omitempty"`
// original -> gobgp:bmp-server-state
+ // Configuration parameters relating to BMP server.
State BmpServerState `mapstructure:"state" json:"state,omitempty"`
}
@@ -1277,21 +1339,29 @@ func (lhs *BmpServer) Equal(rhs *BmpServer) bool {
return true
}
-//struct for container gobgp:rpki-received
+// struct for container gobgp:rpki-received.
+// Counters for reception RPKI Message types.
type RpkiReceived struct {
// original -> gobgp:serial-notify
+ // Number of serial notify message received from RPKI server.
SerialNotify int64 `mapstructure:"serial-notify" json:"serial-notify,omitempty"`
// original -> gobgp:cache-reset
+ // Number of cache reset message received from RPKI server.
CacheReset int64 `mapstructure:"cache-reset" json:"cache-reset,omitempty"`
// original -> gobgp:cache-response
+ // Number of cache response message received from RPKI server.
CacheResponse int64 `mapstructure:"cache-response" json:"cache-response,omitempty"`
// original -> gobgp:ipv4-prefix
+ // Number of ipv4 prefix message received from RPKI server.
Ipv4Prefix int64 `mapstructure:"ipv4-prefix" json:"ipv4-prefix,omitempty"`
// original -> gobgp:ipv6-prefix
+ // Number of ipv6 prefix message received from RPKI server.
Ipv6Prefix int64 `mapstructure:"ipv6-prefix" json:"ipv6-prefix,omitempty"`
// original -> gobgp:end-of-data
+ // Number of end of data message received from RPKI server.
EndOfData int64 `mapstructure:"end-of-data" json:"end-of-data,omitempty"`
// original -> gobgp:error
+ // Number of error message received from RPKI server.
Error int64 `mapstructure:"error" json:"error,omitempty"`
}
@@ -1323,13 +1393,17 @@ func (lhs *RpkiReceived) Equal(rhs *RpkiReceived) bool {
return true
}
-//struct for container gobgp:rpki-sent
+// struct for container gobgp:rpki-sent.
+// Counters for transmission RPKI Message types.
type RpkiSent struct {
// original -> gobgp:serial-query
+ // Number of serial query message sent to RPKI server.
SerialQuery int64 `mapstructure:"serial-query" json:"serial-query,omitempty"`
// original -> gobgp:reset-query
+ // Number of reset query message sent to RPKI server.
ResetQuery int64 `mapstructure:"reset-query" json:"reset-query,omitempty"`
// original -> gobgp:error
+ // Number of error message sent to RPKI server.
Error int64 `mapstructure:"error" json:"error,omitempty"`
}
@@ -1349,11 +1423,14 @@ func (lhs *RpkiSent) Equal(rhs *RpkiSent) bool {
return true
}
-//struct for container gobgp:rpki-messages
+// struct for container gobgp:rpki-messages.
+// Counters for transmission and reception RPKI Message types.
type RpkiMessages struct {
// original -> gobgp:rpki-sent
+ // Counters for transmission RPKI Message types.
RpkiSent RpkiSent `mapstructure:"rpki-sent" json:"rpki-sent,omitempty"`
// original -> gobgp:rpki-received
+ // Counters for reception RPKI Message types.
RpkiReceived RpkiReceived `mapstructure:"rpki-received" json:"rpki-received,omitempty"`
}
@@ -1370,10 +1447,11 @@ func (lhs *RpkiMessages) Equal(rhs *RpkiMessages) bool {
return true
}
-//struct for container gobgp:state
+// struct for container gobgp:state.
+// State information relating to RPKI server.
type RpkiServerState struct {
// original -> gobgp:up
- //gobgp:up's original type is boolean
+ // gobgp:up's original type is boolean.
Up bool `mapstructure:"up" json:"up,omitempty"`
// original -> gobgp:serial-number
SerialNumber uint32 `mapstructure:"serial-number" json:"serial-number,omitempty"`
@@ -1386,29 +1464,47 @@ type RpkiServerState struct {
// original -> gobgp:prefixes-v6
PrefixesV6 uint32 `mapstructure:"prefixes-v6" json:"prefixes-v6,omitempty"`
// original -> gobgp:uptime
+ // This timer determines the amount of time since the
+ // RPKI last transitioned in of the Established state.
Uptime int64 `mapstructure:"uptime" json:"uptime,omitempty"`
// original -> gobgp:downtime
+ // This timer determines the amount of time since the
+ // RPKI last transitioned out of the Established state.
Downtime int64 `mapstructure:"downtime" json:"downtime,omitempty"`
// original -> gobgp:last-pdu-recv-time
+ // last time the received an pdu message from RPKI server.
LastPduRecvTime int64 `mapstructure:"last-pdu-recv-time" json:"last-pdu-recv-time,omitempty"`
// original -> gobgp:rpki-messages
+ // Counters for transmission and reception RPKI Message types.
RpkiMessages RpkiMessages `mapstructure:"rpki-messages" json:"rpki-messages,omitempty"`
}
-//struct for container gobgp:config
+// struct for container gobgp:config.
+// Configuration parameters relating to RPKI server.
type RpkiServerConfig struct {
// original -> gobgp:address
- //gobgp:address's original type is inet:ip-address
+ // gobgp:address's original type is inet:ip-address.
+ // Reference to the address of the RPKI server used as
+ // a key in the RPKI server list.
Address string `mapstructure:"address" json:"address,omitempty"`
// original -> gobgp:port
+ // Reference to the port of the RPKI server.
Port uint32 `mapstructure:"port" json:"port,omitempty"`
// original -> gobgp:refresh-time
+ // Check interval for a configured RPKI server.
RefreshTime int64 `mapstructure:"refresh-time" json:"refresh-time,omitempty"`
// original -> gobgp:hold-time
+ // Specify the length of time in seconds that the session between
+ // the router and RPKI server is to be considered operational
+ // without any activity.
HoldTime int64 `mapstructure:"hold-time" json:"hold-time,omitempty"`
// original -> gobgp:record-lifetime
+ // Indicate the expiration date of the route validation recode
+ // received from RPKI server.
RecordLifetime int64 `mapstructure:"record-lifetime" json:"record-lifetime,omitempty"`
// original -> gobgp:preference
+ // RPKI server has a static preference.
+ // Higher the preference values indicates a higher priority RPKI server.
Preference uint8 `mapstructure:"preference" json:"preference,omitempty"`
}
@@ -1437,12 +1533,15 @@ func (lhs *RpkiServerConfig) Equal(rhs *RpkiServerConfig) bool {
return true
}
-//struct for container gobgp:rpki-server
+// struct for container gobgp:rpki-server.
+// List of RPKI servers configured on the local system.
type RpkiServer struct {
// original -> gobgp:address
// original -> gobgp:rpki-server-config
+ // Configuration parameters relating to RPKI server.
Config RpkiServerConfig `mapstructure:"config" json:"config,omitempty"`
// original -> gobgp:rpki-server-state
+ // State information relating to RPKI server.
State RpkiServerState `mapstructure:"state" json:"state,omitempty"`
}
@@ -1456,57 +1555,96 @@ func (lhs *RpkiServer) Equal(rhs *RpkiServer) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to the BGP neighbor or group.
type PeerGroupState struct {
// original -> bgp:peer-as
- //bgp:peer-as's original type is inet:as-number
+ // bgp:peer-as's original type is inet:as-number.
+ // AS number of the peer.
PeerAs uint32 `mapstructure:"peer-as" json:"peer-as,omitempty"`
// original -> bgp:local-as
- //bgp:local-as's original type is inet:as-number
+ // bgp:local-as's original type is inet:as-number.
+ // The local autonomous system number that is to be used
+ // when establishing sessions with the remote peer or peer
+ // group, if this differs from the global BGP router
+ // autonomous system number.
LocalAs uint32 `mapstructure:"local-as" json:"local-as,omitempty"`
// original -> bgp:peer-type
+ // Explicitly designate the peer or peer group as internal
+ // (iBGP) or external (eBGP).
PeerType PeerType `mapstructure:"peer-type" json:"peer-type,omitempty"`
// original -> bgp:auth-password
+ // Configures an MD5 authentication password for use with
+ // neighboring devices.
AuthPassword string `mapstructure:"auth-password" json:"auth-password,omitempty"`
// original -> bgp:remove-private-as
+ // Remove private AS numbers from updates sent to peers.
RemovePrivateAs RemovePrivateAsOption `mapstructure:"remove-private-as" json:"remove-private-as,omitempty"`
// original -> bgp:route-flap-damping
- //bgp:route-flap-damping's original type is boolean
+ // bgp:route-flap-damping's original type is boolean.
+ // Enable route flap damping.
RouteFlapDamping bool `mapstructure:"route-flap-damping" json:"route-flap-damping,omitempty"`
// original -> bgp:send-community
+ // Specify which types of community should be sent to the
+ // neighbor or group. The default is to not send the
+ // community attribute.
SendCommunity CommunityType `mapstructure:"send-community" json:"send-community,omitempty"`
// original -> bgp:description
+ // An optional textual description (intended primarily for use
+ // with a peer or group.
Description string `mapstructure:"description" json:"description,omitempty"`
// original -> bgp:peer-group-name
+ // Name of the BGP peer-group.
PeerGroupName string `mapstructure:"peer-group-name" json:"peer-group-name,omitempty"`
// original -> bgp-op:total-paths
+ // Total number of BGP paths within the context.
TotalPaths uint32 `mapstructure:"total-paths" json:"total-paths,omitempty"`
// original -> bgp-op:total-prefixes
+ // .
TotalPrefixes uint32 `mapstructure:"total-prefixes" json:"total-prefixes,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to the BGP neighbor or
+// group.
type PeerGroupConfig struct {
// original -> bgp:peer-as
- //bgp:peer-as's original type is inet:as-number
+ // bgp:peer-as's original type is inet:as-number.
+ // AS number of the peer.
PeerAs uint32 `mapstructure:"peer-as" json:"peer-as,omitempty"`
// original -> bgp:local-as
- //bgp:local-as's original type is inet:as-number
+ // bgp:local-as's original type is inet:as-number.
+ // The local autonomous system number that is to be used
+ // when establishing sessions with the remote peer or peer
+ // group, if this differs from the global BGP router
+ // autonomous system number.
LocalAs uint32 `mapstructure:"local-as" json:"local-as,omitempty"`
// original -> bgp:peer-type
+ // Explicitly designate the peer or peer group as internal
+ // (iBGP) or external (eBGP).
PeerType PeerType `mapstructure:"peer-type" json:"peer-type,omitempty"`
// original -> bgp:auth-password
+ // Configures an MD5 authentication password for use with
+ // neighboring devices.
AuthPassword string `mapstructure:"auth-password" json:"auth-password,omitempty"`
// original -> bgp:remove-private-as
+ // Remove private AS numbers from updates sent to peers.
RemovePrivateAs RemovePrivateAsOption `mapstructure:"remove-private-as" json:"remove-private-as,omitempty"`
// original -> bgp:route-flap-damping
- //bgp:route-flap-damping's original type is boolean
+ // bgp:route-flap-damping's original type is boolean.
+ // Enable route flap damping.
RouteFlapDamping bool `mapstructure:"route-flap-damping" json:"route-flap-damping,omitempty"`
// original -> bgp:send-community
+ // Specify which types of community should be sent to the
+ // neighbor or group. The default is to not send the
+ // community attribute.
SendCommunity CommunityType `mapstructure:"send-community" json:"send-community,omitempty"`
// original -> bgp:description
+ // An optional textual description (intended primarily for use
+ // with a peer or group.
Description string `mapstructure:"description" json:"description,omitempty"`
// original -> bgp:peer-group-name
+ // Name of the BGP peer-group.
PeerGroupName string `mapstructure:"peer-group-name" json:"peer-group-name,omitempty"`
}
@@ -1544,40 +1682,68 @@ func (lhs *PeerGroupConfig) Equal(rhs *PeerGroupConfig) bool {
return true
}
-//struct for container bgp:peer-group
+// struct for container bgp:peer-group.
+// List of BGP peer-groups configured on the local system -
+// uniquely identified by peer-group name.
type PeerGroup struct {
// original -> bgp:peer-group-name
// original -> bgp:peer-group-config
+ // Configuration parameters relating to the BGP neighbor or
+ // group.
Config PeerGroupConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:peer-group-state
+ // State information relating to the BGP neighbor or group.
State PeerGroupState `mapstructure:"state" json:"state,omitempty"`
// original -> bgp:timers
+ // Timers related to a BGP neighbor or group.
Timers Timers `mapstructure:"timers" json:"timers,omitempty"`
// original -> bgp:transport
+ // Transport session parameters for the BGP neighbor or group.
Transport Transport `mapstructure:"transport" json:"transport,omitempty"`
// original -> bgp:error-handling
+ // Error handling parameters used for the BGP neighbor or
+ // group.
ErrorHandling ErrorHandling `mapstructure:"error-handling" json:"error-handling,omitempty"`
// original -> bgp:logging-options
+ // Logging options for events related to the BGP neighbor or
+ // group.
LoggingOptions LoggingOptions `mapstructure:"logging-options" json:"logging-options,omitempty"`
// original -> bgp:ebgp-multihop
+ // eBGP multi-hop parameters for the BGP neighbor or group.
EbgpMultihop EbgpMultihop `mapstructure:"ebgp-multihop" json:"ebgp-multihop,omitempty"`
// original -> bgp:route-reflector
+ // Route reflector parameters for the BGP neighbor or group.
RouteReflector RouteReflector `mapstructure:"route-reflector" json:"route-reflector,omitempty"`
// original -> bgp:as-path-options
+ // AS_PATH manipulation parameters for the BGP neighbor or
+ // group.
AsPathOptions AsPathOptions `mapstructure:"as-path-options" json:"as-path-options,omitempty"`
// original -> bgp:add-paths
+ // Parameters relating to the advertisement and receipt of
+ // multiple paths for a single NLRI (add-paths).
AddPaths AddPaths `mapstructure:"add-paths" json:"add-paths,omitempty"`
// original -> bgp:afi-safis
+ // Per-address-family configuration parameters associated with
+ // the neighbor or group.
AfiSafis []AfiSafi `mapstructure:"afi-safis" json:"afi-safis,omitempty"`
// original -> bgp:graceful-restart
+ // Parameters relating the graceful restart mechanism for BGP.
GracefulRestart GracefulRestart `mapstructure:"graceful-restart" json:"graceful-restart,omitempty"`
// original -> rpol:apply-policy
+ // Anchor point for routing policies in the model.
+ // Import and export policies are with respect to the local
+ // routing table, i.e., export (send) and import (receive),
+ // depending on the context.
ApplyPolicy ApplyPolicy `mapstructure:"apply-policy" json:"apply-policy,omitempty"`
// original -> bgp-mp:use-multiple-paths
+ // Parameters related to the use of multiple paths for the
+ // same NLRI.
UseMultiplePaths UseMultiplePaths `mapstructure:"use-multiple-paths" json:"use-multiple-paths,omitempty"`
// original -> gobgp:route-server
+ // Configure the local router as a route server.
RouteServer RouteServer `mapstructure:"route-server" json:"route-server,omitempty"`
// original -> gobgp:ttl-security
+ // Configure TTL Security feature.
TtlSecurity TtlSecurity `mapstructure:"ttl-security" json:"ttl-security,omitempty"`
}
@@ -1646,21 +1812,27 @@ func (lhs *PeerGroup) Equal(rhs *PeerGroup) bool {
return true
}
-//struct for container gobgp:state
+// struct for container gobgp:state.
+// State information for TTL Security.
type TtlSecurityState struct {
// original -> gobgp:enabled
- //gobgp:enabled's original type is boolean
+ // gobgp:enabled's original type is boolean.
+ // Enable features for TTL Security.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> gobgp:ttl-min
+ // Reference to the port of the BMP server.
TtlMin uint8 `mapstructure:"ttl-min" json:"ttl-min,omitempty"`
}
-//struct for container gobgp:config
+// struct for container gobgp:config.
+// Configuration parameters for TTL Security.
type TtlSecurityConfig struct {
// original -> gobgp:enabled
- //gobgp:enabled's original type is boolean
+ // gobgp:enabled's original type is boolean.
+ // Enable features for TTL Security.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> gobgp:ttl-min
+ // Reference to the port of the BMP server.
TtlMin uint8 `mapstructure:"ttl-min" json:"ttl-min,omitempty"`
}
@@ -1677,11 +1849,14 @@ func (lhs *TtlSecurityConfig) Equal(rhs *TtlSecurityConfig) bool {
return true
}
-//struct for container gobgp:ttl-security
+// struct for container gobgp:ttl-security.
+// Configure TTL Security feature.
type TtlSecurity struct {
// original -> gobgp:ttl-security-config
+ // Configuration parameters for TTL Security.
Config TtlSecurityConfig `mapstructure:"config" json:"config,omitempty"`
// original -> gobgp:ttl-security-state
+ // State information for TTL Security.
State TtlSecurityState `mapstructure:"state" json:"state,omitempty"`
}
@@ -1695,17 +1870,23 @@ func (lhs *TtlSecurity) Equal(rhs *TtlSecurity) bool {
return true
}
-//struct for container gobgp:state
+// struct for container gobgp:state.
+// State information relating to route server
+// client(s) used for the BGP neighbor.
type RouteServerState struct {
// original -> gobgp:route-server-client
- //gobgp:route-server-client's original type is boolean
+ // gobgp:route-server-client's original type is boolean.
+ // Configure the neighbor as a route server client.
RouteServerClient bool `mapstructure:"route-server-client" json:"route-server-client,omitempty"`
}
-//struct for container gobgp:config
+// struct for container gobgp:config.
+// Configuration parameters relating to route server
+// client(s) used for the BGP neighbor.
type RouteServerConfig struct {
// original -> gobgp:route-server-client
- //gobgp:route-server-client's original type is boolean
+ // gobgp:route-server-client's original type is boolean.
+ // Configure the neighbor as a route server client.
RouteServerClient bool `mapstructure:"route-server-client" json:"route-server-client,omitempty"`
}
@@ -1719,11 +1900,16 @@ func (lhs *RouteServerConfig) Equal(rhs *RouteServerConfig) bool {
return true
}
-//struct for container gobgp:route-server
+// struct for container gobgp:route-server.
+// Configure the local router as a route server.
type RouteServer struct {
// original -> gobgp:route-server-config
+ // Configuration parameters relating to route server
+ // client(s) used for the BGP neighbor.
Config RouteServerConfig `mapstructure:"config" json:"config,omitempty"`
// original -> gobgp:route-server-state
+ // State information relating to route server
+ // client(s) used for the BGP neighbor.
State RouteServerState `mapstructure:"state" json:"state,omitempty"`
}
@@ -1737,13 +1923,18 @@ func (lhs *RouteServer) Equal(rhs *RouteServer) bool {
return true
}
-//struct for container bgp-op:prefixes
+// struct for container bgp-op:prefixes.
+// Prefix counters for the BGP session.
type Prefixes struct {
// original -> bgp-op:received
+ // The number of prefixes received from the neighbor.
Received uint32 `mapstructure:"received" json:"received,omitempty"`
// original -> bgp-op:sent
+ // The number of prefixes advertised to the neighbor.
Sent uint32 `mapstructure:"sent" json:"sent,omitempty"`
// original -> bgp-op:installed
+ // The number of advertised prefixes installed in the
+ // Loc-RIB.
Installed uint32 `mapstructure:"installed" json:"installed,omitempty"`
}
@@ -1763,21 +1954,31 @@ func (lhs *Prefixes) Equal(rhs *Prefixes) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information associated with ADD_PATHS.
type AddPathsState struct {
// original -> bgp:receive
- //bgp:receive's original type is boolean
+ // bgp:receive's original type is boolean.
+ // Enable ability to receive multiple path advertisements
+ // for an NLRI from the neighbor or group.
Receive bool `mapstructure:"receive" json:"receive,omitempty"`
// original -> bgp:send-max
+ // The maximum number of paths to advertise to neighbors
+ // for a single NLRI.
SendMax uint8 `mapstructure:"send-max" json:"send-max,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to ADD_PATHS.
type AddPathsConfig struct {
// original -> bgp:receive
- //bgp:receive's original type is boolean
+ // bgp:receive's original type is boolean.
+ // Enable ability to receive multiple path advertisements
+ // for an NLRI from the neighbor or group.
Receive bool `mapstructure:"receive" json:"receive,omitempty"`
// original -> bgp:send-max
+ // The maximum number of paths to advertise to neighbors
+ // for a single NLRI.
SendMax uint8 `mapstructure:"send-max" json:"send-max,omitempty"`
}
@@ -1794,11 +1995,15 @@ func (lhs *AddPathsConfig) Equal(rhs *AddPathsConfig) bool {
return true
}
-//struct for container bgp:add-paths
+// struct for container bgp:add-paths.
+// Parameters relating to the advertisement and receipt of
+// multiple paths for a single NLRI (add-paths).
type AddPaths struct {
// original -> bgp:add-paths-config
+ // Configuration parameters relating to ADD_PATHS.
Config AddPathsConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:add-paths-state
+ // State information associated with ADD_PATHS.
State AddPathsState `mapstructure:"state" json:"state,omitempty"`
}
@@ -1812,21 +2017,33 @@ func (lhs *AddPaths) Equal(rhs *AddPaths) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to the AS_PATH manipulation
+// mechanisms for the BGP peer or group.
type AsPathOptionsState struct {
// original -> bgp:allow-own-as
+ // Specify the number of occurrences of the local BGP speaker's
+ // AS that can occur within the AS_PATH before it is rejected.
AllowOwnAs uint8 `mapstructure:"allow-own-as" json:"allow-own-as,omitempty"`
// original -> bgp:replace-peer-as
- //bgp:replace-peer-as's original type is boolean
+ // bgp:replace-peer-as's original type is boolean.
+ // Replace occurrences of the peer's AS in the AS_PATH
+ // with the local autonomous system number.
ReplacePeerAs bool `mapstructure:"replace-peer-as" json:"replace-peer-as,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to AS_PATH manipulation
+// for the BGP peer or group.
type AsPathOptionsConfig struct {
// original -> bgp:allow-own-as
+ // Specify the number of occurrences of the local BGP speaker's
+ // AS that can occur within the AS_PATH before it is rejected.
AllowOwnAs uint8 `mapstructure:"allow-own-as" json:"allow-own-as,omitempty"`
// original -> bgp:replace-peer-as
- //bgp:replace-peer-as's original type is boolean
+ // bgp:replace-peer-as's original type is boolean.
+ // Replace occurrences of the peer's AS in the AS_PATH
+ // with the local autonomous system number.
ReplacePeerAs bool `mapstructure:"replace-peer-as" json:"replace-peer-as,omitempty"`
}
@@ -1843,11 +2060,17 @@ func (lhs *AsPathOptionsConfig) Equal(rhs *AsPathOptionsConfig) bool {
return true
}
-//struct for container bgp:as-path-options
+// struct for container bgp:as-path-options.
+// AS_PATH manipulation parameters for the BGP neighbor or
+// group.
type AsPathOptions struct {
// original -> bgp:as-path-options-config
+ // Configuration parameters relating to AS_PATH manipulation
+ // for the BGP peer or group.
Config AsPathOptionsConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:as-path-options-state
+ // State information relating to the AS_PATH manipulation
+ // mechanisms for the BGP peer or group.
State AsPathOptionsState `mapstructure:"state" json:"state,omitempty"`
}
@@ -1861,21 +2084,35 @@ func (lhs *AsPathOptions) Equal(rhs *AsPathOptions) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to route reflection for the
+// BGP neighbor or group.
type RouteReflectorState struct {
// original -> bgp:route-reflector-cluster-id
+ // route-reflector cluster id to use when local router is
+ // configured as a route reflector. Commonly set at the group
+ // level, but allows a different cluster
+ // id to be set for each neighbor.
RouteReflectorClusterId RrClusterIdType `mapstructure:"route-reflector-cluster-id" json:"route-reflector-cluster-id,omitempty"`
// original -> bgp:route-reflector-client
- //bgp:route-reflector-client's original type is boolean
+ // bgp:route-reflector-client's original type is boolean.
+ // Configure the neighbor as a route reflector client.
RouteReflectorClient bool `mapstructure:"route-reflector-client" json:"route-reflector-client,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuraton parameters relating to route reflection
+// for the BGP neighbor or group.
type RouteReflectorConfig struct {
// original -> bgp:route-reflector-cluster-id
+ // route-reflector cluster id to use when local router is
+ // configured as a route reflector. Commonly set at the group
+ // level, but allows a different cluster
+ // id to be set for each neighbor.
RouteReflectorClusterId RrClusterIdType `mapstructure:"route-reflector-cluster-id" json:"route-reflector-cluster-id,omitempty"`
// original -> bgp:route-reflector-client
- //bgp:route-reflector-client's original type is boolean
+ // bgp:route-reflector-client's original type is boolean.
+ // Configure the neighbor as a route reflector client.
RouteReflectorClient bool `mapstructure:"route-reflector-client" json:"route-reflector-client,omitempty"`
}
@@ -1892,11 +2129,16 @@ func (lhs *RouteReflectorConfig) Equal(rhs *RouteReflectorConfig) bool {
return true
}
-//struct for container bgp:route-reflector
+// struct for container bgp:route-reflector.
+// Route reflector parameters for the BGP neighbor or group.
type RouteReflector struct {
// original -> bgp:route-reflector-config
+ // Configuraton parameters relating to route reflection
+ // for the BGP neighbor or group.
Config RouteReflectorConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:route-reflector-state
+ // State information relating to route reflection for the
+ // BGP neighbor or group.
State RouteReflectorState `mapstructure:"state" json:"state,omitempty"`
}
@@ -1910,21 +2152,35 @@ func (lhs *RouteReflector) Equal(rhs *RouteReflector) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information for eBGP multihop, for the BGP neighbor
+// or group.
type EbgpMultihopState struct {
// original -> bgp:enabled
- //bgp:enabled's original type is boolean
+ // bgp:enabled's original type is boolean.
+ // When enabled the referenced group or neighbors are permitted
+ // to be indirectly connected - including cases where the TTL
+ // can be decremented between the BGP peers.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> bgp:multihop-ttl
+ // Time-to-live value to use when packets are sent to the
+ // referenced group or neighbors and ebgp-multihop is enabled.
MultihopTtl uint8 `mapstructure:"multihop-ttl" json:"multihop-ttl,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to eBGP multihop for the
+// BGP neighbor or group.
type EbgpMultihopConfig struct {
// original -> bgp:enabled
- //bgp:enabled's original type is boolean
+ // bgp:enabled's original type is boolean.
+ // When enabled the referenced group or neighbors are permitted
+ // to be indirectly connected - including cases where the TTL
+ // can be decremented between the BGP peers.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> bgp:multihop-ttl
+ // Time-to-live value to use when packets are sent to the
+ // referenced group or neighbors and ebgp-multihop is enabled.
MultihopTtl uint8 `mapstructure:"multihop-ttl" json:"multihop-ttl,omitempty"`
}
@@ -1941,11 +2197,16 @@ func (lhs *EbgpMultihopConfig) Equal(rhs *EbgpMultihopConfig) bool {
return true
}
-//struct for container bgp:ebgp-multihop
+// struct for container bgp:ebgp-multihop.
+// eBGP multi-hop parameters for the BGP neighbor or group.
type EbgpMultihop struct {
// original -> bgp:ebgp-multihop-config
+ // Configuration parameters relating to eBGP multihop for the
+ // BGP neighbor or group.
Config EbgpMultihopConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:ebgp-multihop-state
+ // State information for eBGP multihop, for the BGP neighbor
+ // or group.
State EbgpMultihopState `mapstructure:"state" json:"state,omitempty"`
}
@@ -1959,17 +2220,25 @@ func (lhs *EbgpMultihop) Equal(rhs *EbgpMultihop) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to logging for the BGP neighbor
+// or group.
type LoggingOptionsState struct {
// original -> bgp:log-neighbor-state-changes
- //bgp:log-neighbor-state-changes's original type is boolean
+ // bgp:log-neighbor-state-changes's original type is boolean.
+ // Configure logging of peer state changes. Default is
+ // to enable logging of peer state changes.
LogNeighborStateChanges bool `mapstructure:"log-neighbor-state-changes" json:"log-neighbor-state-changes,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters enabling or modifying logging
+// for events relating to the BGP neighbor or group.
type LoggingOptionsConfig struct {
// original -> bgp:log-neighbor-state-changes
- //bgp:log-neighbor-state-changes's original type is boolean
+ // bgp:log-neighbor-state-changes's original type is boolean.
+ // Configure logging of peer state changes. Default is
+ // to enable logging of peer state changes.
LogNeighborStateChanges bool `mapstructure:"log-neighbor-state-changes" json:"log-neighbor-state-changes,omitempty"`
}
@@ -1983,11 +2252,17 @@ func (lhs *LoggingOptionsConfig) Equal(rhs *LoggingOptionsConfig) bool {
return true
}
-//struct for container bgp:logging-options
+// struct for container bgp:logging-options.
+// Logging options for events related to the BGP neighbor or
+// group.
type LoggingOptions struct {
// original -> bgp:logging-options-config
+ // Configuration parameters enabling or modifying logging
+ // for events relating to the BGP neighbor or group.
Config LoggingOptionsConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:logging-options-state
+ // State information relating to logging for the BGP neighbor
+ // or group.
State LoggingOptionsState `mapstructure:"state" json:"state,omitempty"`
}
@@ -2001,19 +2276,33 @@ func (lhs *LoggingOptions) Equal(rhs *LoggingOptions) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to enhanced error handling
+// mechanisms for the BGP neighbor or group.
type ErrorHandlingState struct {
// original -> bgp:treat-as-withdraw
- //bgp:treat-as-withdraw's original type is boolean
+ // bgp:treat-as-withdraw's original type is boolean.
+ // Specify whether erroneous UPDATE messages for which the
+ // NLRI can be extracted are reated as though the NLRI is
+ // withdrawn - avoiding session reset.
TreatAsWithdraw bool `mapstructure:"treat-as-withdraw" json:"treat-as-withdraw,omitempty"`
// original -> bgp-op:erroneous-update-messages
+ // The number of BGP UPDATE messages for which the
+ // treat-as-withdraw mechanism has been applied based
+ // on erroneous message contents.
ErroneousUpdateMessages uint32 `mapstructure:"erroneous-update-messages" json:"erroneous-update-messages,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters enabling or modifying the
+// behavior or enhanced error handling mechanisms for the BGP
+// neighbor or group.
type ErrorHandlingConfig struct {
// original -> bgp:treat-as-withdraw
- //bgp:treat-as-withdraw's original type is boolean
+ // bgp:treat-as-withdraw's original type is boolean.
+ // Specify whether erroneous UPDATE messages for which the
+ // NLRI can be extracted are reated as though the NLRI is
+ // withdrawn - avoiding session reset.
TreatAsWithdraw bool `mapstructure:"treat-as-withdraw" json:"treat-as-withdraw,omitempty"`
}
@@ -2027,11 +2316,18 @@ func (lhs *ErrorHandlingConfig) Equal(rhs *ErrorHandlingConfig) bool {
return true
}
-//struct for container bgp:error-handling
+// struct for container bgp:error-handling.
+// Error handling parameters used for the BGP neighbor or
+// group.
type ErrorHandling struct {
// original -> bgp:error-handling-config
+ // Configuration parameters enabling or modifying the
+ // behavior or enhanced error handling mechanisms for the BGP
+ // neighbor or group.
Config ErrorHandlingConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:error-handling-state
+ // State information relating to enhanced error handling
+ // mechanisms for the BGP neighbor or group.
State ErrorHandlingState `mapstructure:"state" json:"state,omitempty"`
}
@@ -2045,47 +2341,76 @@ func (lhs *ErrorHandling) Equal(rhs *ErrorHandling) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to the transport session(s)
+// used for the BGP neighbor or group.
type TransportState struct {
// original -> bgp:tcp-mss
+ // Sets the max segment size for BGP TCP sessions.
TcpMss uint16 `mapstructure:"tcp-mss" json:"tcp-mss,omitempty"`
// original -> bgp:mtu-discovery
- //bgp:mtu-discovery's original type is boolean
+ // bgp:mtu-discovery's original type is boolean.
+ // Turns path mtu discovery for BGP TCP sessions on (true)
+ // or off (false).
MtuDiscovery bool `mapstructure:"mtu-discovery" json:"mtu-discovery,omitempty"`
// original -> bgp:passive-mode
- //bgp:passive-mode's original type is boolean
+ // bgp:passive-mode's original type is boolean.
+ // Wait for peers to issue requests to open a BGP session,
+ // rather than initiating sessions from the local router.
PassiveMode bool `mapstructure:"passive-mode" json:"passive-mode,omitempty"`
// original -> bgp:local-address
- //bgp:local-address's original type is union
+ // bgp:local-address's original type is union.
+ // Set the local IP (either IPv4 or IPv6) address to use
+ // for the session when sending BGP update messages. This
+ // may be expressed as either an IP address or reference
+ // to the name of an interface.
LocalAddress string `mapstructure:"local-address" json:"local-address,omitempty"`
// original -> bgp-op:local-port
- //bgp-op:local-port's original type is inet:port-number
+ // bgp-op:local-port's original type is inet:port-number.
+ // Local TCP port being used for the TCP session supporting
+ // the BGP session.
LocalPort uint16 `mapstructure:"local-port" json:"local-port,omitempty"`
// original -> bgp-op:remote-address
- //bgp-op:remote-address's original type is inet:ip-address
+ // bgp-op:remote-address's original type is inet:ip-address.
+ // Remote address to which the BGP session has been
+ // established.
RemoteAddress string `mapstructure:"remote-address" json:"remote-address,omitempty"`
// original -> bgp-op:remote-port
- //bgp-op:remote-port's original type is inet:port-number
+ // bgp-op:remote-port's original type is inet:port-number.
+ // Remote port being used by the peer for the TCP session
+ // supporting the BGP session.
RemotePort uint16 `mapstructure:"remote-port" json:"remote-port,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to the transport
+// session(s) used for the BGP neighbor or group.
type TransportConfig struct {
// original -> bgp:tcp-mss
+ // Sets the max segment size for BGP TCP sessions.
TcpMss uint16 `mapstructure:"tcp-mss" json:"tcp-mss,omitempty"`
// original -> bgp:mtu-discovery
- //bgp:mtu-discovery's original type is boolean
+ // bgp:mtu-discovery's original type is boolean.
+ // Turns path mtu discovery for BGP TCP sessions on (true)
+ // or off (false).
MtuDiscovery bool `mapstructure:"mtu-discovery" json:"mtu-discovery,omitempty"`
// original -> bgp:passive-mode
- //bgp:passive-mode's original type is boolean
+ // bgp:passive-mode's original type is boolean.
+ // Wait for peers to issue requests to open a BGP session,
+ // rather than initiating sessions from the local router.
PassiveMode bool `mapstructure:"passive-mode" json:"passive-mode,omitempty"`
// original -> bgp:local-address
- //bgp:local-address's original type is union
+ // bgp:local-address's original type is union.
+ // Set the local IP (either IPv4 or IPv6) address to use
+ // for the session when sending BGP update messages. This
+ // may be expressed as either an IP address or reference
+ // to the name of an interface.
LocalAddress string `mapstructure:"local-address" json:"local-address,omitempty"`
// original -> gobgp:remote-port
- //gobgp:remote-port's original type is inet:port-number
+ // gobgp:remote-port's original type is inet:port-number.
RemotePort uint16 `mapstructure:"remote-port" json:"remote-port,omitempty"`
// original -> gobgp:ttl
+ // TTL value for BGP packets.
Ttl uint8 `mapstructure:"ttl" json:"ttl,omitempty"`
}
@@ -2114,11 +2439,16 @@ func (lhs *TransportConfig) Equal(rhs *TransportConfig) bool {
return true
}
-//struct for container bgp:transport
+// struct for container bgp:transport.
+// Transport session parameters for the BGP neighbor or group.
type Transport struct {
// original -> bgp:transport-config
+ // Configuration parameters relating to the transport
+ // session(s) used for the BGP neighbor or group.
Config TransportConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:transport-state
+ // State information relating to the transport session(s)
+ // used for the BGP neighbor or group.
State TransportState `mapstructure:"state" json:"state,omitempty"`
}
@@ -2132,52 +2462,98 @@ func (lhs *Transport) Equal(rhs *Transport) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to the timers used for the BGP
+// neighbor or group.
type TimersState struct {
// original -> bgp:connect-retry
- //bgp:connect-retry's original type is decimal64
+ // bgp:connect-retry's original type is decimal64.
+ // Time interval in seconds between attempts to establish a
+ // session with the peer.
ConnectRetry float64 `mapstructure:"connect-retry" json:"connect-retry,omitempty"`
// original -> bgp:hold-time
- //bgp:hold-time's original type is decimal64
+ // bgp:hold-time's original type is decimal64.
+ // Time interval in seconds that a BGP session will be
+ // considered active in the absence of keepalive or other
+ // messages from the peer. The hold-time is typically
+ // set to 3x the keepalive-interval.
HoldTime float64 `mapstructure:"hold-time" json:"hold-time,omitempty"`
// original -> bgp:keepalive-interval
- //bgp:keepalive-interval's original type is decimal64
+ // bgp:keepalive-interval's original type is decimal64.
+ // Time interval in seconds between transmission of keepalive
+ // messages to the neighbor. Typically set to 1/3 the
+ // hold-time.
KeepaliveInterval float64 `mapstructure:"keepalive-interval" json:"keepalive-interval,omitempty"`
// original -> bgp:minimum-advertisement-interval
- //bgp:minimum-advertisement-interval's original type is decimal64
+ // bgp:minimum-advertisement-interval's original type is decimal64.
+ // Minimum time which must elapse between subsequent UPDATE
+ // messages relating to a common set of NLRI being transmitted
+ // to a peer. This timer is referred to as
+ // MinRouteAdvertisementIntervalTimer by RFC 4721 and serves to
+ // reduce the number of UPDATE messages transmitted when a
+ // particular set of NLRI exhibit instability.
MinimumAdvertisementInterval float64 `mapstructure:"minimum-advertisement-interval" json:"minimum-advertisement-interval,omitempty"`
// original -> bgp-op:uptime
- //bgp-op:uptime's original type is yang:timeticks
+ // bgp-op:uptime's original type is yang:timeticks.
+ // This timer determines the amount of time since the
+ // BGP last transitioned in or out of the Established
+ // state.
Uptime int64 `mapstructure:"uptime" json:"uptime,omitempty"`
// original -> bgp-op:negotiated-hold-time
- //bgp-op:negotiated-hold-time's original type is decimal64
+ // bgp-op:negotiated-hold-time's original type is decimal64.
+ // The negotiated hold-time for the BGP session.
NegotiatedHoldTime float64 `mapstructure:"negotiated-hold-time" json:"negotiated-hold-time,omitempty"`
// original -> gobgp:idle-hold-time-after-reset
- //gobgp:idle-hold-time-after-reset's original type is decimal64
+ // gobgp:idle-hold-time-after-reset's original type is decimal64.
+ // Time interval in seconds that a BGP session will be
+ // in idle state after neighbor reset operation.
IdleHoldTimeAfterReset float64 `mapstructure:"idle-hold-time-after-reset" json:"idle-hold-time-after-reset,omitempty"`
// original -> gobgp:downtime
- //gobgp:downtime's original type is yang:timeticks
+ // gobgp:downtime's original type is yang:timeticks.
+ // This timer determines the amount of time since the
+ // BGP last transitioned out of the Established state.
Downtime int64 `mapstructure:"downtime" json:"downtime,omitempty"`
// original -> gobgp:update-recv-time
+ // The number of seconds elasped since January 1, 1970 UTC
+ // last time the BGP session received an UPDATE message.
UpdateRecvTime int64 `mapstructure:"update-recv-time" json:"update-recv-time,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to timers used for the
+// BGP neighbor or group.
type TimersConfig struct {
// original -> bgp:connect-retry
- //bgp:connect-retry's original type is decimal64
+ // bgp:connect-retry's original type is decimal64.
+ // Time interval in seconds between attempts to establish a
+ // session with the peer.
ConnectRetry float64 `mapstructure:"connect-retry" json:"connect-retry,omitempty"`
// original -> bgp:hold-time
- //bgp:hold-time's original type is decimal64
+ // bgp:hold-time's original type is decimal64.
+ // Time interval in seconds that a BGP session will be
+ // considered active in the absence of keepalive or other
+ // messages from the peer. The hold-time is typically
+ // set to 3x the keepalive-interval.
HoldTime float64 `mapstructure:"hold-time" json:"hold-time,omitempty"`
// original -> bgp:keepalive-interval
- //bgp:keepalive-interval's original type is decimal64
+ // bgp:keepalive-interval's original type is decimal64.
+ // Time interval in seconds between transmission of keepalive
+ // messages to the neighbor. Typically set to 1/3 the
+ // hold-time.
KeepaliveInterval float64 `mapstructure:"keepalive-interval" json:"keepalive-interval,omitempty"`
// original -> bgp:minimum-advertisement-interval
- //bgp:minimum-advertisement-interval's original type is decimal64
+ // bgp:minimum-advertisement-interval's original type is decimal64.
+ // Minimum time which must elapse between subsequent UPDATE
+ // messages relating to a common set of NLRI being transmitted
+ // to a peer. This timer is referred to as
+ // MinRouteAdvertisementIntervalTimer by RFC 4721 and serves to
+ // reduce the number of UPDATE messages transmitted when a
+ // particular set of NLRI exhibit instability.
MinimumAdvertisementInterval float64 `mapstructure:"minimum-advertisement-interval" json:"minimum-advertisement-interval,omitempty"`
// original -> gobgp:idle-hold-time-after-reset
- //gobgp:idle-hold-time-after-reset's original type is decimal64
+ // gobgp:idle-hold-time-after-reset's original type is decimal64.
+ // Time interval in seconds that a BGP session will be
+ // in idle state after neighbor reset operation.
IdleHoldTimeAfterReset float64 `mapstructure:"idle-hold-time-after-reset" json:"idle-hold-time-after-reset,omitempty"`
}
@@ -2203,11 +2579,16 @@ func (lhs *TimersConfig) Equal(rhs *TimersConfig) bool {
return true
}
-//struct for container bgp:timers
+// struct for container bgp:timers.
+// Timers related to a BGP neighbor or group.
type Timers struct {
// original -> bgp:timers-config
+ // Configuration parameters relating to timers used for the
+ // BGP neighbor or group.
Config TimersConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:timers-state
+ // State information relating to the timers used for the BGP
+ // neighbor or group.
State TimersState `mapstructure:"state" json:"state,omitempty"`
}
@@ -2221,7 +2602,7 @@ func (lhs *Timers) Equal(rhs *Timers) bool {
return true
}
-//struct for container gobgp:adj-table
+// struct for container gobgp:adj-table.
type AdjTable struct {
// original -> gobgp:ADVERTISED
Advertised uint32 `mapstructure:"advertised" json:"advertised,omitempty"`
@@ -2252,11 +2633,16 @@ func (lhs *AdjTable) Equal(rhs *AdjTable) bool {
return true
}
-//struct for container bgp:queues
+// struct for container bgp:queues.
+// Counters related to queued messages associated with the
+// BGP neighbor.
type Queues struct {
// original -> bgp-op:input
+ // The number of messages received from the peer currently
+ // queued.
Input uint32 `mapstructure:"input" json:"input,omitempty"`
// original -> bgp-op:output
+ // The number of messages queued to be sent to the peer.
Output uint32 `mapstructure:"output" json:"output,omitempty"`
}
@@ -2273,27 +2659,46 @@ func (lhs *Queues) Equal(rhs *Queues) bool {
return true
}
-//struct for container bgp:received
+// struct for container bgp:received.
+// Counters for BGP messages received from the neighbor.
type Received struct {
// original -> bgp-op:UPDATE
+ // Number of BGP UPDATE messages announcing, withdrawing
+ // or modifying paths exchanged.
Update uint64 `mapstructure:"update" json:"update,omitempty"`
// original -> bgp-op:NOTIFICATION
+ // Number of BGP NOTIFICATION messages indicating an
+ // error condition has occurred exchanged.
Notification uint64 `mapstructure:"notification" json:"notification,omitempty"`
// original -> gobgp:OPEN
+ // Number of BGP open messages announcing, withdrawing
+ // or modifying paths exchanged.
Open uint64 `mapstructure:"open" json:"open,omitempty"`
// original -> gobgp:REFRESH
+ // Number of BGP Route-Refresh messages indicating an
+ // error condition has occurred exchanged.
Refresh uint64 `mapstructure:"refresh" json:"refresh,omitempty"`
// original -> gobgp:KEEPALIVE
+ // Number of BGP Keepalive messages indicating an
+ // error condition has occurred exchanged.
Keepalive uint64 `mapstructure:"keepalive" json:"keepalive,omitempty"`
// original -> gobgp:DYNAMIC-CAP
+ // Number of BGP dynamic-cap messages indicating an
+ // error condition has occurred exchanged.
DynamicCap uint64 `mapstructure:"dynamic-cap" json:"dynamic-cap,omitempty"`
// original -> gobgp:WITHDRAW-UPDATE
+ // Number of updates subjected to treat-as-withdraw treatment.
WithdrawUpdate uint32 `mapstructure:"withdraw-update" json:"withdraw-update,omitempty"`
// original -> gobgp:WITHDRAW-PREFIX
+ // Number of prefixes subjected to treat-as-withdraw treatment.
WithdrawPrefix uint32 `mapstructure:"withdraw-prefix" json:"withdraw-prefix,omitempty"`
// original -> gobgp:DISCARDED
+ // Number of discarded messages indicating an
+ // error condition has occurred exchanged.
Discarded uint64 `mapstructure:"discarded" json:"discarded,omitempty"`
// original -> gobgp:TOTAL
+ // Number of total messages indicating an
+ // error condition has occurred exchanged.
Total uint64 `mapstructure:"total" json:"total,omitempty"`
}
@@ -2334,27 +2739,46 @@ func (lhs *Received) Equal(rhs *Received) bool {
return true
}
-//struct for container bgp:sent
+// struct for container bgp:sent.
+// Counters relating to BGP messages sent to the neighbor.
type Sent struct {
// original -> bgp-op:UPDATE
+ // Number of BGP UPDATE messages announcing, withdrawing
+ // or modifying paths exchanged.
Update uint64 `mapstructure:"update" json:"update,omitempty"`
// original -> bgp-op:NOTIFICATION
+ // Number of BGP NOTIFICATION messages indicating an
+ // error condition has occurred exchanged.
Notification uint64 `mapstructure:"notification" json:"notification,omitempty"`
// original -> gobgp:OPEN
+ // Number of BGP open messages announcing, withdrawing
+ // or modifying paths exchanged.
Open uint64 `mapstructure:"open" json:"open,omitempty"`
// original -> gobgp:REFRESH
+ // Number of BGP Route-Refresh messages indicating an
+ // error condition has occurred exchanged.
Refresh uint64 `mapstructure:"refresh" json:"refresh,omitempty"`
// original -> gobgp:KEEPALIVE
+ // Number of BGP Keepalive messages indicating an
+ // error condition has occurred exchanged.
Keepalive uint64 `mapstructure:"keepalive" json:"keepalive,omitempty"`
// original -> gobgp:DYNAMIC-CAP
+ // Number of BGP dynamic-cap messages indicating an
+ // error condition has occurred exchanged.
DynamicCap uint64 `mapstructure:"dynamic-cap" json:"dynamic-cap,omitempty"`
// original -> gobgp:WITHDRAW-UPDATE
+ // Number of updates subjected to treat-as-withdraw treatment.
WithdrawUpdate uint32 `mapstructure:"withdraw-update" json:"withdraw-update,omitempty"`
// original -> gobgp:WITHDRAW-PREFIX
+ // Number of prefixes subjected to treat-as-withdraw treatment.
WithdrawPrefix uint32 `mapstructure:"withdraw-prefix" json:"withdraw-prefix,omitempty"`
// original -> gobgp:DISCARDED
+ // Number of discarded messages indicating an
+ // error condition has occurred exchanged.
Discarded uint64 `mapstructure:"discarded" json:"discarded,omitempty"`
// original -> gobgp:TOTAL
+ // Number of total messages indicating an
+ // error condition has occurred exchanged.
Total uint64 `mapstructure:"total" json:"total,omitempty"`
}
@@ -2395,11 +2819,15 @@ func (lhs *Sent) Equal(rhs *Sent) bool {
return true
}
-//struct for container bgp:messages
+// struct for container bgp:messages.
+// Counters for BGP messages sent and received from the
+// neighbor.
type Messages struct {
// original -> bgp:sent
+ // Counters relating to BGP messages sent to the neighbor.
Sent Sent `mapstructure:"sent" json:"sent,omitempty"`
// original -> bgp:received
+ // Counters for BGP messages received from the neighbor.
Received Received `mapstructure:"received" json:"received,omitempty"`
}
@@ -2416,39 +2844,64 @@ func (lhs *Messages) Equal(rhs *Messages) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to the BGP neighbor or group.
type NeighborState struct {
// original -> bgp:peer-as
- //bgp:peer-as's original type is inet:as-number
+ // bgp:peer-as's original type is inet:as-number.
+ // AS number of the peer.
PeerAs uint32 `mapstructure:"peer-as" json:"peer-as,omitempty"`
// original -> bgp:local-as
- //bgp:local-as's original type is inet:as-number
+ // bgp:local-as's original type is inet:as-number.
+ // The local autonomous system number that is to be used
+ // when establishing sessions with the remote peer or peer
+ // group, if this differs from the global BGP router
+ // autonomous system number.
LocalAs uint32 `mapstructure:"local-as" json:"local-as,omitempty"`
// original -> bgp:peer-type
+ // Explicitly designate the peer or peer group as internal
+ // (iBGP) or external (eBGP).
PeerType PeerType `mapstructure:"peer-type" json:"peer-type,omitempty"`
// original -> bgp:auth-password
+ // Configures an MD5 authentication password for use with
+ // neighboring devices.
AuthPassword string `mapstructure:"auth-password" json:"auth-password,omitempty"`
// original -> bgp:remove-private-as
+ // Remove private AS numbers from updates sent to peers.
RemovePrivateAs RemovePrivateAsOption `mapstructure:"remove-private-as" json:"remove-private-as,omitempty"`
// original -> bgp:route-flap-damping
- //bgp:route-flap-damping's original type is boolean
+ // bgp:route-flap-damping's original type is boolean.
+ // Enable route flap damping.
RouteFlapDamping bool `mapstructure:"route-flap-damping" json:"route-flap-damping,omitempty"`
// original -> bgp:send-community
+ // Specify which types of community should be sent to the
+ // neighbor or group. The default is to not send the
+ // community attribute.
SendCommunity CommunityType `mapstructure:"send-community" json:"send-community,omitempty"`
// original -> bgp:description
+ // An optional textual description (intended primarily for use
+ // with a peer or group.
Description string `mapstructure:"description" json:"description,omitempty"`
// original -> bgp:peer-group
+ // The peer-group with which this neighbor is associated.
PeerGroup string `mapstructure:"peer-group" json:"peer-group,omitempty"`
// original -> bgp:neighbor-address
- //bgp:neighbor-address's original type is inet:ip-address
+ // bgp:neighbor-address's original type is inet:ip-address.
+ // Address of the BGP peer, either in IPv4 or IPv6.
NeighborAddress string `mapstructure:"neighbor-address" json:"neighbor-address,omitempty"`
// original -> bgp-op:session-state
+ // Operational state of the BGP peer.
SessionState SessionState `mapstructure:"session-state" json:"session-state,omitempty"`
// original -> bgp-op:supported-capabilities
+ // BGP capabilities negotiated as supported with the peer.
SupportedCapabilitiesList []BgpCapability `mapstructure:"supported-capabilities-list" json:"supported-capabilities-list,omitempty"`
// original -> bgp:messages
+ // Counters for BGP messages sent and received from the
+ // neighbor.
Messages Messages `mapstructure:"messages" json:"messages,omitempty"`
// original -> bgp:queues
+ // Counters related to queued messages associated with the
+ // BGP neighbor.
Queues Queues `mapstructure:"queues" json:"queues,omitempty"`
// original -> gobgp:adj-table
AdjTable AdjTable `mapstructure:"adj-table" json:"adj-table,omitempty"`
@@ -2459,16 +2912,19 @@ type NeighborState struct {
// original type is list of bgp-capability
LocalCapabilityList []bgp.ParameterCapabilityInterface `mapstructure:"local-capability-list" json:"local-capability-list,omitempty"`
// original -> gobgp:received-open-message
- //gobgp:received-open-message's original type is bgp-open-message
+ // gobgp:received-open-message's original type is bgp-open-message.
ReceivedOpenMessage *bgp.BGPMessage `mapstructure:"received-open-message" json:"received-open-message,omitempty"`
// original -> gobgp:admin-down
- //gobgp:admin-down's original type is boolean
+ // gobgp:admin-down's original type is boolean.
+ // The state of administrative operation. If the state is true, it indicates the neighbor is disabled by the administrator.
AdminDown bool `mapstructure:"admin-down" json:"admin-down,omitempty"`
// original -> gobgp:admin-state
AdminState AdminState `mapstructure:"admin-state" json:"admin-state,omitempty"`
// original -> gobgp:established-count
+ // The number of how many the peer became established state.
EstablishedCount uint32 `mapstructure:"established-count" json:"established-count,omitempty"`
// original -> gobgp:flops
+ // The number of flip-flops.
Flops uint32 `mapstructure:"flops" json:"flops,omitempty"`
// original -> gobgp:neighbor-interface
NeighborInterface string `mapstructure:"neighbor-interface" json:"neighbor-interface,omitempty"`
@@ -2478,34 +2934,55 @@ type NeighborState struct {
RemoteRouterId string `mapstructure:"remote-router-id" json:"remote-router-id,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to the BGP neighbor or
+// group.
type NeighborConfig struct {
// original -> bgp:peer-as
- //bgp:peer-as's original type is inet:as-number
+ // bgp:peer-as's original type is inet:as-number.
+ // AS number of the peer.
PeerAs uint32 `mapstructure:"peer-as" json:"peer-as,omitempty"`
// original -> bgp:local-as
- //bgp:local-as's original type is inet:as-number
+ // bgp:local-as's original type is inet:as-number.
+ // The local autonomous system number that is to be used
+ // when establishing sessions with the remote peer or peer
+ // group, if this differs from the global BGP router
+ // autonomous system number.
LocalAs uint32 `mapstructure:"local-as" json:"local-as,omitempty"`
// original -> bgp:peer-type
+ // Explicitly designate the peer or peer group as internal
+ // (iBGP) or external (eBGP).
PeerType PeerType `mapstructure:"peer-type" json:"peer-type,omitempty"`
// original -> bgp:auth-password
+ // Configures an MD5 authentication password for use with
+ // neighboring devices.
AuthPassword string `mapstructure:"auth-password" json:"auth-password,omitempty"`
// original -> bgp:remove-private-as
+ // Remove private AS numbers from updates sent to peers.
RemovePrivateAs RemovePrivateAsOption `mapstructure:"remove-private-as" json:"remove-private-as,omitempty"`
// original -> bgp:route-flap-damping
- //bgp:route-flap-damping's original type is boolean
+ // bgp:route-flap-damping's original type is boolean.
+ // Enable route flap damping.
RouteFlapDamping bool `mapstructure:"route-flap-damping" json:"route-flap-damping,omitempty"`
// original -> bgp:send-community
+ // Specify which types of community should be sent to the
+ // neighbor or group. The default is to not send the
+ // community attribute.
SendCommunity CommunityType `mapstructure:"send-community" json:"send-community,omitempty"`
// original -> bgp:description
+ // An optional textual description (intended primarily for use
+ // with a peer or group.
Description string `mapstructure:"description" json:"description,omitempty"`
// original -> bgp:peer-group
+ // The peer-group with which this neighbor is associated.
PeerGroup string `mapstructure:"peer-group" json:"peer-group,omitempty"`
// original -> bgp:neighbor-address
- //bgp:neighbor-address's original type is inet:ip-address
+ // bgp:neighbor-address's original type is inet:ip-address.
+ // Address of the BGP peer, either in IPv4 or IPv6.
NeighborAddress string `mapstructure:"neighbor-address" json:"neighbor-address,omitempty"`
// original -> gobgp:admin-down
- //gobgp:admin-down's original type is boolean
+ // gobgp:admin-down's original type is boolean.
+ // The config of administrative operation. If state, indicates the neighbor is disabled by the administrator.
AdminDown bool `mapstructure:"admin-down" json:"admin-down,omitempty"`
// original -> gobgp:neighbor-interface
NeighborInterface string `mapstructure:"neighbor-interface" json:"neighbor-interface,omitempty"`
@@ -2559,40 +3036,68 @@ func (lhs *NeighborConfig) Equal(rhs *NeighborConfig) bool {
return true
}
-//struct for container bgp:neighbor
+// struct for container bgp:neighbor.
+// List of BGP neighbors configured on the local system,
+// uniquely identified by peer IPv[46] address.
type Neighbor struct {
// original -> bgp:neighbor-address
// original -> bgp:neighbor-config
+ // Configuration parameters relating to the BGP neighbor or
+ // group.
Config NeighborConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:neighbor-state
+ // State information relating to the BGP neighbor or group.
State NeighborState `mapstructure:"state" json:"state,omitempty"`
// original -> bgp:timers
+ // Timers related to a BGP neighbor or group.
Timers Timers `mapstructure:"timers" json:"timers,omitempty"`
// original -> bgp:transport
+ // Transport session parameters for the BGP neighbor or group.
Transport Transport `mapstructure:"transport" json:"transport,omitempty"`
// original -> bgp:error-handling
+ // Error handling parameters used for the BGP neighbor or
+ // group.
ErrorHandling ErrorHandling `mapstructure:"error-handling" json:"error-handling,omitempty"`
// original -> bgp:logging-options
+ // Logging options for events related to the BGP neighbor or
+ // group.
LoggingOptions LoggingOptions `mapstructure:"logging-options" json:"logging-options,omitempty"`
// original -> bgp:ebgp-multihop
+ // eBGP multi-hop parameters for the BGP neighbor or group.
EbgpMultihop EbgpMultihop `mapstructure:"ebgp-multihop" json:"ebgp-multihop,omitempty"`
// original -> bgp:route-reflector
+ // Route reflector parameters for the BGP neighbor or group.
RouteReflector RouteReflector `mapstructure:"route-reflector" json:"route-reflector,omitempty"`
// original -> bgp:as-path-options
+ // AS_PATH manipulation parameters for the BGP neighbor or
+ // group.
AsPathOptions AsPathOptions `mapstructure:"as-path-options" json:"as-path-options,omitempty"`
// original -> bgp:add-paths
+ // Parameters relating to the advertisement and receipt of
+ // multiple paths for a single NLRI (add-paths).
AddPaths AddPaths `mapstructure:"add-paths" json:"add-paths,omitempty"`
// original -> bgp:afi-safis
+ // Per-address-family configuration parameters associated with
+ // the neighbor or group.
AfiSafis []AfiSafi `mapstructure:"afi-safis" json:"afi-safis,omitempty"`
// original -> bgp:graceful-restart
+ // Parameters relating the graceful restart mechanism for BGP.
GracefulRestart GracefulRestart `mapstructure:"graceful-restart" json:"graceful-restart,omitempty"`
// original -> rpol:apply-policy
+ // Anchor point for routing policies in the model.
+ // Import and export policies are with respect to the local
+ // routing table, i.e., export (send) and import (receive),
+ // depending on the context.
ApplyPolicy ApplyPolicy `mapstructure:"apply-policy" json:"apply-policy,omitempty"`
// original -> bgp-mp:use-multiple-paths
+ // Parameters related to the use of multiple-paths for the same
+ // NLRI when they are received only from this neighbor.
UseMultiplePaths UseMultiplePaths `mapstructure:"use-multiple-paths" json:"use-multiple-paths,omitempty"`
// original -> gobgp:route-server
+ // Configure the local router as a route server.
RouteServer RouteServer `mapstructure:"route-server" json:"route-server,omitempty"`
// original -> gobgp:ttl-security
+ // Configure TTL Security feature.
TtlSecurity TtlSecurity `mapstructure:"ttl-security" json:"ttl-security,omitempty"`
}
@@ -2661,28 +3166,28 @@ func (lhs *Neighbor) Equal(rhs *Neighbor) bool {
return true
}
-//struct for container gobgp:state
+// struct for container gobgp:state.
type LongLivedGracefulRestartState struct {
// original -> gobgp:enabled
- //gobgp:enabled's original type is boolean
+ // gobgp:enabled's original type is boolean.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> gobgp:received
- //gobgp:received's original type is boolean
+ // gobgp:received's original type is boolean.
Received bool `mapstructure:"received" json:"received,omitempty"`
// original -> gobgp:advertised
- //gobgp:advertised's original type is boolean
+ // gobgp:advertised's original type is boolean.
Advertised bool `mapstructure:"advertised" json:"advertised,omitempty"`
// original -> gobgp:peer-restart-time
PeerRestartTime uint32 `mapstructure:"peer-restart-time" json:"peer-restart-time,omitempty"`
// original -> gobgp:peer-restart-timer-expired
- //gobgp:peer-restart-timer-expired's original type is boolean
+ // gobgp:peer-restart-timer-expired's original type is boolean.
PeerRestartTimerExpired bool `mapstructure:"peer-restart-timer-expired" json:"peer-restart-timer-expired,omitempty"`
}
-//struct for container gobgp:config
+// struct for container gobgp:config.
type LongLivedGracefulRestartConfig struct {
// original -> gobgp:enabled
- //gobgp:enabled's original type is boolean
+ // gobgp:enabled's original type is boolean.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> gobgp:restart-time
RestartTime uint32 `mapstructure:"restart-time" json:"restart-time,omitempty"`
@@ -2701,7 +3206,7 @@ func (lhs *LongLivedGracefulRestartConfig) Equal(rhs *LongLivedGracefulRestartCo
return true
}
-//struct for container gobgp:long-lived-graceful-restart
+// struct for container gobgp:long-lived-graceful-restart.
type LongLivedGracefulRestart struct {
// original -> gobgp:long-lived-graceful-restart-config
Config LongLivedGracefulRestartConfig `mapstructure:"config" json:"config,omitempty"`
@@ -2719,13 +3224,13 @@ func (lhs *LongLivedGracefulRestart) Equal(rhs *LongLivedGracefulRestart) bool {
return true
}
-//struct for container gobgp:state
+// struct for container gobgp:state.
type RouteTargetMembershipState struct {
// original -> gobgp:deferral-time
DeferralTime uint16 `mapstructure:"deferral-time" json:"deferral-time,omitempty"`
}
-//struct for container gobgp:config
+// struct for container gobgp:config.
type RouteTargetMembershipConfig struct {
// original -> gobgp:deferral-time
DeferralTime uint16 `mapstructure:"deferral-time" json:"deferral-time,omitempty"`
@@ -2741,7 +3246,7 @@ func (lhs *RouteTargetMembershipConfig) Equal(rhs *RouteTargetMembershipConfig)
return true
}
-//struct for container gobgp:route-target-membership
+// struct for container gobgp:route-target-membership.
type RouteTargetMembership struct {
// original -> gobgp:route-target-membership-config
Config RouteTargetMembershipConfig `mapstructure:"config" json:"config,omitempty"`
@@ -2759,9 +3264,12 @@ func (lhs *RouteTargetMembership) Equal(rhs *RouteTargetMembership) bool {
return true
}
-//struct for container bgp-mp:l2vpn-evpn
+// struct for container bgp-mp:l2vpn-evpn.
+// BGP EVPN configuration options.
type L2vpnEvpn struct {
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
}
@@ -2775,9 +3283,12 @@ func (lhs *L2vpnEvpn) Equal(rhs *L2vpnEvpn) bool {
return true
}
-//struct for container bgp-mp:l2vpn-vpls
+// struct for container bgp-mp:l2vpn-vpls.
+// BGP-signalled VPLS configuration options.
type L2vpnVpls struct {
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
}
@@ -2791,9 +3302,12 @@ func (lhs *L2vpnVpls) Equal(rhs *L2vpnVpls) bool {
return true
}
-//struct for container bgp-mp:l3vpn-ipv6-multicast
+// struct for container bgp-mp:l3vpn-ipv6-multicast.
+// Multicast IPv6 L3VPN configuration options.
type L3vpnIpv6Multicast struct {
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
}
@@ -2807,9 +3321,12 @@ func (lhs *L3vpnIpv6Multicast) Equal(rhs *L3vpnIpv6Multicast) bool {
return true
}
-//struct for container bgp-mp:l3vpn-ipv4-multicast
+// struct for container bgp-mp:l3vpn-ipv4-multicast.
+// Multicast IPv4 L3VPN configuration options.
type L3vpnIpv4Multicast struct {
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
}
@@ -2823,9 +3340,12 @@ func (lhs *L3vpnIpv4Multicast) Equal(rhs *L3vpnIpv4Multicast) bool {
return true
}
-//struct for container bgp-mp:l3vpn-ipv6-unicast
+// struct for container bgp-mp:l3vpn-ipv6-unicast.
+// Unicast IPv6 L3VPN configuration options.
type L3vpnIpv6Unicast struct {
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
}
@@ -2839,9 +3359,12 @@ func (lhs *L3vpnIpv6Unicast) Equal(rhs *L3vpnIpv6Unicast) bool {
return true
}
-//struct for container bgp-mp:l3vpn-ipv4-unicast
+// struct for container bgp-mp:l3vpn-ipv4-unicast.
+// Unicast IPv4 L3VPN configuration options.
type L3vpnIpv4Unicast struct {
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
}
@@ -2855,9 +3378,12 @@ func (lhs *L3vpnIpv4Unicast) Equal(rhs *L3vpnIpv4Unicast) bool {
return true
}
-//struct for container bgp-mp:ipv6-labelled-unicast
+// struct for container bgp-mp:ipv6-labelled-unicast.
+// IPv6 Labelled Unicast configuration options.
type Ipv6LabelledUnicast struct {
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
}
@@ -2871,9 +3397,12 @@ func (lhs *Ipv6LabelledUnicast) Equal(rhs *Ipv6LabelledUnicast) bool {
return true
}
-//struct for container bgp-mp:ipv4-labelled-unicast
+// struct for container bgp-mp:ipv4-labelled-unicast.
+// IPv4 Labelled Unicast configuration options.
type Ipv4LabelledUnicast struct {
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
}
@@ -2887,17 +3416,23 @@ func (lhs *Ipv4LabelledUnicast) Equal(rhs *Ipv4LabelledUnicast) bool {
return true
}
-//struct for container bgp-mp:state
+// struct for container bgp-mp:state.
+// State information for common IPv4 and IPv6 unicast
+// parameters.
type Ipv6UnicastState struct {
// original -> bgp-mp:send-default-route
- //bgp-mp:send-default-route's original type is boolean
+ // bgp-mp:send-default-route's original type is boolean.
+ // If set to true, send the default-route to the neighbour(s).
SendDefaultRoute bool `mapstructure:"send-default-route" json:"send-default-route,omitempty"`
}
-//struct for container bgp-mp:config
+// struct for container bgp-mp:config.
+// Configuration parameters for common IPv4 and IPv6 unicast
+// AFI-SAFI options.
type Ipv6UnicastConfig struct {
// original -> bgp-mp:send-default-route
- //bgp-mp:send-default-route's original type is boolean
+ // bgp-mp:send-default-route's original type is boolean.
+ // If set to true, send the default-route to the neighbour(s).
SendDefaultRoute bool `mapstructure:"send-default-route" json:"send-default-route,omitempty"`
}
@@ -2911,13 +3446,20 @@ func (lhs *Ipv6UnicastConfig) Equal(rhs *Ipv6UnicastConfig) bool {
return true
}
-//struct for container bgp-mp:ipv6-unicast
+// struct for container bgp-mp:ipv6-unicast.
+// IPv6 unicast configuration options.
type Ipv6Unicast struct {
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
// original -> bgp-mp:ipv6-unicast-config
+ // Configuration parameters for common IPv4 and IPv6 unicast
+ // AFI-SAFI options.
Config Ipv6UnicastConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp-mp:ipv6-unicast-state
+ // State information for common IPv4 and IPv6 unicast
+ // parameters.
State Ipv6UnicastState `mapstructure:"state" json:"state,omitempty"`
}
@@ -2934,17 +3476,23 @@ func (lhs *Ipv6Unicast) Equal(rhs *Ipv6Unicast) bool {
return true
}
-//struct for container bgp-mp:state
+// struct for container bgp-mp:state.
+// State information for common IPv4 and IPv6 unicast
+// parameters.
type Ipv4UnicastState struct {
// original -> bgp-mp:send-default-route
- //bgp-mp:send-default-route's original type is boolean
+ // bgp-mp:send-default-route's original type is boolean.
+ // If set to true, send the default-route to the neighbour(s).
SendDefaultRoute bool `mapstructure:"send-default-route" json:"send-default-route,omitempty"`
}
-//struct for container bgp-mp:config
+// struct for container bgp-mp:config.
+// Configuration parameters for common IPv4 and IPv6 unicast
+// AFI-SAFI options.
type Ipv4UnicastConfig struct {
// original -> bgp-mp:send-default-route
- //bgp-mp:send-default-route's original type is boolean
+ // bgp-mp:send-default-route's original type is boolean.
+ // If set to true, send the default-route to the neighbour(s).
SendDefaultRoute bool `mapstructure:"send-default-route" json:"send-default-route,omitempty"`
}
@@ -2958,25 +3506,47 @@ func (lhs *Ipv4UnicastConfig) Equal(rhs *Ipv4UnicastConfig) bool {
return true
}
-//struct for container bgp-mp:state
+// struct for container bgp-mp:state.
+// State information relating to the prefix-limit for the
+// AFI-SAFI.
type PrefixLimitState struct {
// original -> bgp-mp:max-prefixes
+ // Maximum number of prefixes that will be accepted
+ // from the neighbour.
MaxPrefixes uint32 `mapstructure:"max-prefixes" json:"max-prefixes,omitempty"`
// original -> bgp-mp:shutdown-threshold-pct
+ // Threshold on number of prefixes that can be received
+ // from a neighbour before generation of warning messages
+ // or log entries. Expressed as a percentage of
+ // max-prefixes.
ShutdownThresholdPct Percentage `mapstructure:"shutdown-threshold-pct" json:"shutdown-threshold-pct,omitempty"`
// original -> bgp-mp:restart-timer
- //bgp-mp:restart-timer's original type is decimal64
+ // bgp-mp:restart-timer's original type is decimal64.
+ // Time interval in seconds after which the BGP session
+ // is re-established after being torn down due to exceeding
+ // the max-prefix limit.
RestartTimer float64 `mapstructure:"restart-timer" json:"restart-timer,omitempty"`
}
-//struct for container bgp-mp:config
+// struct for container bgp-mp:config.
+// Configuration parameters relating to the prefix
+// limit for the AFI-SAFI.
type PrefixLimitConfig struct {
// original -> bgp-mp:max-prefixes
+ // Maximum number of prefixes that will be accepted
+ // from the neighbour.
MaxPrefixes uint32 `mapstructure:"max-prefixes" json:"max-prefixes,omitempty"`
// original -> bgp-mp:shutdown-threshold-pct
+ // Threshold on number of prefixes that can be received
+ // from a neighbour before generation of warning messages
+ // or log entries. Expressed as a percentage of
+ // max-prefixes.
ShutdownThresholdPct Percentage `mapstructure:"shutdown-threshold-pct" json:"shutdown-threshold-pct,omitempty"`
// original -> bgp-mp:restart-timer
- //bgp-mp:restart-timer's original type is decimal64
+ // bgp-mp:restart-timer's original type is decimal64.
+ // Time interval in seconds after which the BGP session
+ // is re-established after being torn down due to exceeding
+ // the max-prefix limit.
RestartTimer float64 `mapstructure:"restart-timer" json:"restart-timer,omitempty"`
}
@@ -2996,11 +3566,17 @@ func (lhs *PrefixLimitConfig) Equal(rhs *PrefixLimitConfig) bool {
return true
}
-//struct for container bgp-mp:prefix-limit
+// struct for container bgp-mp:prefix-limit.
+// Configure the maximum number of prefixes that will be
+// accepted from a peer.
type PrefixLimit struct {
// original -> bgp-mp:prefix-limit-config
+ // Configuration parameters relating to the prefix
+ // limit for the AFI-SAFI.
Config PrefixLimitConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp-mp:prefix-limit-state
+ // State information relating to the prefix-limit for the
+ // AFI-SAFI.
State PrefixLimitState `mapstructure:"state" json:"state,omitempty"`
}
@@ -3014,13 +3590,20 @@ func (lhs *PrefixLimit) Equal(rhs *PrefixLimit) bool {
return true
}
-//struct for container bgp-mp:ipv4-unicast
+// struct for container bgp-mp:ipv4-unicast.
+// IPv4 unicast configuration options.
type Ipv4Unicast struct {
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
// original -> bgp-mp:ipv4-unicast-config
+ // Configuration parameters for common IPv4 and IPv6 unicast
+ // AFI-SAFI options.
Config Ipv4UnicastConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp-mp:ipv4-unicast-state
+ // State information for common IPv4 and IPv6 unicast
+ // parameters.
State Ipv4UnicastState `mapstructure:"state" json:"state,omitempty"`
}
@@ -3037,35 +3620,71 @@ func (lhs *Ipv4Unicast) Equal(rhs *Ipv4Unicast) bool {
return true
}
-//struct for container rpol:state
+// struct for container rpol:state.
+// Operational state for routing policy.
type ApplyPolicyState struct {
// original -> rpol:import-policy
+ // list of policy names in sequence to be applied on
+ // receiving a routing update in the current context, e.g.,
+ // for the current peer group, neighbor, address family,
+ // etc.
ImportPolicyList []string `mapstructure:"import-policy-list" json:"import-policy-list,omitempty"`
// original -> rpol:default-import-policy
+ // explicitly set a default policy if no policy definition
+ // in the import policy chain is satisfied.
DefaultImportPolicy DefaultPolicyType `mapstructure:"default-import-policy" json:"default-import-policy,omitempty"`
// original -> rpol:export-policy
+ // list of policy names in sequence to be applied on
+ // sending a routing update in the current context, e.g.,
+ // for the current peer group, neighbor, address family,
+ // etc.
ExportPolicyList []string `mapstructure:"export-policy-list" json:"export-policy-list,omitempty"`
// original -> rpol:default-export-policy
+ // explicitly set a default policy if no policy definition
+ // in the export policy chain is satisfied.
DefaultExportPolicy DefaultPolicyType `mapstructure:"default-export-policy" json:"default-export-policy,omitempty"`
// original -> gobgp:in-policy
+ // list of policy names in sequence to be applied on
+ // sending a routing update in the current context, e.g.,
+ // for the current other route server clients.
InPolicyList []string `mapstructure:"in-policy-list" json:"in-policy-list,omitempty"`
// original -> gobgp:default-in-policy
+ // explicitly set a default policy if no policy definition
+ // in the in-policy chain is satisfied.
DefaultInPolicy DefaultPolicyType `mapstructure:"default-in-policy" json:"default-in-policy,omitempty"`
}
-//struct for container rpol:config
+// struct for container rpol:config.
+// Policy configuration data.
type ApplyPolicyConfig struct {
// original -> rpol:import-policy
+ // list of policy names in sequence to be applied on
+ // receiving a routing update in the current context, e.g.,
+ // for the current peer group, neighbor, address family,
+ // etc.
ImportPolicyList []string `mapstructure:"import-policy-list" json:"import-policy-list,omitempty"`
// original -> rpol:default-import-policy
+ // explicitly set a default policy if no policy definition
+ // in the import policy chain is satisfied.
DefaultImportPolicy DefaultPolicyType `mapstructure:"default-import-policy" json:"default-import-policy,omitempty"`
// original -> rpol:export-policy
+ // list of policy names in sequence to be applied on
+ // sending a routing update in the current context, e.g.,
+ // for the current peer group, neighbor, address family,
+ // etc.
ExportPolicyList []string `mapstructure:"export-policy-list" json:"export-policy-list,omitempty"`
// original -> rpol:default-export-policy
+ // explicitly set a default policy if no policy definition
+ // in the export policy chain is satisfied.
DefaultExportPolicy DefaultPolicyType `mapstructure:"default-export-policy" json:"default-export-policy,omitempty"`
// original -> gobgp:in-policy
+ // list of policy names in sequence to be applied on
+ // sending a routing update in the current context, e.g.,
+ // for the current other route server clients.
InPolicyList []string `mapstructure:"in-policy-list" json:"in-policy-list,omitempty"`
// original -> gobgp:default-in-policy
+ // explicitly set a default policy if no policy definition
+ // in the in-policy chain is satisfied.
DefaultInPolicy DefaultPolicyType `mapstructure:"default-in-policy" json:"default-in-policy,omitempty"`
}
@@ -3109,11 +3728,17 @@ func (lhs *ApplyPolicyConfig) Equal(rhs *ApplyPolicyConfig) bool {
return true
}
-//struct for container rpol:apply-policy
+// struct for container rpol:apply-policy.
+// Anchor point for routing policies in the model.
+// Import and export policies are with respect to the local
+// routing table, i.e., export (send) and import (receive),
+// depending on the context.
type ApplyPolicy struct {
// original -> rpol:apply-policy-config
+ // Policy configuration data.
Config ApplyPolicyConfig `mapstructure:"config" json:"config,omitempty"`
// original -> rpol:apply-policy-state
+ // Operational state for routing policy.
State ApplyPolicyState `mapstructure:"state" json:"state,omitempty"`
}
@@ -3127,25 +3752,35 @@ func (lhs *ApplyPolicy) Equal(rhs *ApplyPolicy) bool {
return true
}
-//struct for container bgp-mp:state
+// struct for container bgp-mp:state.
+// State information relating to the AFI-SAFI.
type AfiSafiState struct {
// original -> bgp-mp:afi-safi-name
+ // AFI,SAFI.
AfiSafiName AfiSafiType `mapstructure:"afi-safi-name" json:"afi-safi-name,omitempty"`
// original -> bgp-mp:enabled
- //bgp-mp:enabled's original type is boolean
+ // bgp-mp:enabled's original type is boolean.
+ // This leaf indicates whether the IPv4 Unicast AFI,SAFI is
+ // enabled for the neighbour or group.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> bgp-op:total-paths
+ // Total number of BGP paths within the context.
TotalPaths uint32 `mapstructure:"total-paths" json:"total-paths,omitempty"`
// original -> bgp-op:total-prefixes
+ // .
TotalPrefixes uint32 `mapstructure:"total-prefixes" json:"total-prefixes,omitempty"`
}
-//struct for container bgp-mp:config
+// struct for container bgp-mp:config.
+// Configuration parameters for the AFI-SAFI.
type AfiSafiConfig struct {
// original -> bgp-mp:afi-safi-name
+ // AFI,SAFI.
AfiSafiName AfiSafiType `mapstructure:"afi-safi-name" json:"afi-safi-name,omitempty"`
// original -> bgp-mp:enabled
- //bgp-mp:enabled's original type is boolean
+ // bgp-mp:enabled's original type is boolean.
+ // This leaf indicates whether the IPv4 Unicast AFI,SAFI is
+ // enabled for the neighbour or group.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
}
@@ -3162,29 +3797,39 @@ func (lhs *AfiSafiConfig) Equal(rhs *AfiSafiConfig) bool {
return true
}
-//struct for container bgp-mp:state
+// struct for container bgp-mp:state.
+// State information for BGP graceful-restart.
type MpGracefulRestartState struct {
// original -> bgp-mp:enabled
- //bgp-mp:enabled's original type is boolean
+ // bgp-mp:enabled's original type is boolean.
+ // This leaf indicates whether graceful-restart is enabled for
+ // this AFI-SAFI.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> bgp-op:received
- //bgp-op:received's original type is boolean
+ // bgp-op:received's original type is boolean.
+ // This leaf indicates whether the neighbor advertised the
+ // ability to support graceful-restart for this AFI-SAFI.
Received bool `mapstructure:"received" json:"received,omitempty"`
// original -> bgp-op:advertised
- //bgp-op:advertised's original type is boolean
+ // bgp-op:advertised's original type is boolean.
+ // This leaf indicates whether the ability to support
+ // graceful-restart has been advertised to the peer.
Advertised bool `mapstructure:"advertised" json:"advertised,omitempty"`
// original -> gobgp:end-of-rib-received
- //gobgp:end-of-rib-received's original type is boolean
+ // gobgp:end-of-rib-received's original type is boolean.
EndOfRibReceived bool `mapstructure:"end-of-rib-received" json:"end-of-rib-received,omitempty"`
// original -> gobgp:end-of-rib-sent
- //gobgp:end-of-rib-sent's original type is boolean
+ // gobgp:end-of-rib-sent's original type is boolean.
EndOfRibSent bool `mapstructure:"end-of-rib-sent" json:"end-of-rib-sent,omitempty"`
}
-//struct for container bgp-mp:config
+// struct for container bgp-mp:config.
+// Configuration options for BGP graceful-restart.
type MpGracefulRestartConfig struct {
// original -> bgp-mp:enabled
- //bgp-mp:enabled's original type is boolean
+ // bgp-mp:enabled's original type is boolean.
+ // This leaf indicates whether graceful-restart is enabled for
+ // this AFI-SAFI.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
}
@@ -3198,11 +3843,14 @@ func (lhs *MpGracefulRestartConfig) Equal(rhs *MpGracefulRestartConfig) bool {
return true
}
-//struct for container bgp-mp:graceful-restart
+// struct for container bgp-mp:graceful-restart.
+// Parameters relating to BGP graceful-restart.
type MpGracefulRestart struct {
// original -> bgp-mp:mp-graceful-restart-config
+ // Configuration options for BGP graceful-restart.
Config MpGracefulRestartConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp-mp:mp-graceful-restart-state
+ // State information for BGP graceful-restart.
State MpGracefulRestartState `mapstructure:"state" json:"state,omitempty"`
}
@@ -3216,42 +3864,66 @@ func (lhs *MpGracefulRestart) Equal(rhs *MpGracefulRestart) bool {
return true
}
-//struct for container bgp-mp:afi-safi
+// struct for container bgp-mp:afi-safi.
+// AFI,SAFI configuration available for the
+// neighbour or group.
type AfiSafi struct {
// original -> bgp-mp:afi-safi-name
// original -> bgp-mp:mp-graceful-restart
+ // Parameters relating to BGP graceful-restart.
MpGracefulRestart MpGracefulRestart `mapstructure:"mp-graceful-restart" json:"mp-graceful-restart,omitempty"`
// original -> bgp-mp:afi-safi-config
+ // Configuration parameters for the AFI-SAFI.
Config AfiSafiConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp-mp:afi-safi-state
+ // State information relating to the AFI-SAFI.
State AfiSafiState `mapstructure:"state" json:"state,omitempty"`
// original -> rpol:apply-policy
+ // Anchor point for routing policies in the model.
+ // Import and export policies are with respect to the local
+ // routing table, i.e., export (send) and import (receive),
+ // depending on the context.
ApplyPolicy ApplyPolicy `mapstructure:"apply-policy" json:"apply-policy,omitempty"`
// original -> bgp-mp:ipv4-unicast
+ // IPv4 unicast configuration options.
Ipv4Unicast Ipv4Unicast `mapstructure:"ipv4-unicast" json:"ipv4-unicast,omitempty"`
// original -> bgp-mp:ipv6-unicast
+ // IPv6 unicast configuration options.
Ipv6Unicast Ipv6Unicast `mapstructure:"ipv6-unicast" json:"ipv6-unicast,omitempty"`
// original -> bgp-mp:ipv4-labelled-unicast
+ // IPv4 Labelled Unicast configuration options.
Ipv4LabelledUnicast Ipv4LabelledUnicast `mapstructure:"ipv4-labelled-unicast" json:"ipv4-labelled-unicast,omitempty"`
// original -> bgp-mp:ipv6-labelled-unicast
+ // IPv6 Labelled Unicast configuration options.
Ipv6LabelledUnicast Ipv6LabelledUnicast `mapstructure:"ipv6-labelled-unicast" json:"ipv6-labelled-unicast,omitempty"`
// original -> bgp-mp:l3vpn-ipv4-unicast
+ // Unicast IPv4 L3VPN configuration options.
L3vpnIpv4Unicast L3vpnIpv4Unicast `mapstructure:"l3vpn-ipv4-unicast" json:"l3vpn-ipv4-unicast,omitempty"`
// original -> bgp-mp:l3vpn-ipv6-unicast
+ // Unicast IPv6 L3VPN configuration options.
L3vpnIpv6Unicast L3vpnIpv6Unicast `mapstructure:"l3vpn-ipv6-unicast" json:"l3vpn-ipv6-unicast,omitempty"`
// original -> bgp-mp:l3vpn-ipv4-multicast
+ // Multicast IPv4 L3VPN configuration options.
L3vpnIpv4Multicast L3vpnIpv4Multicast `mapstructure:"l3vpn-ipv4-multicast" json:"l3vpn-ipv4-multicast,omitempty"`
// original -> bgp-mp:l3vpn-ipv6-multicast
+ // Multicast IPv6 L3VPN configuration options.
L3vpnIpv6Multicast L3vpnIpv6Multicast `mapstructure:"l3vpn-ipv6-multicast" json:"l3vpn-ipv6-multicast,omitempty"`
// original -> bgp-mp:l2vpn-vpls
+ // BGP-signalled VPLS configuration options.
L2vpnVpls L2vpnVpls `mapstructure:"l2vpn-vpls" json:"l2vpn-vpls,omitempty"`
// original -> bgp-mp:l2vpn-evpn
+ // BGP EVPN configuration options.
L2vpnEvpn L2vpnEvpn `mapstructure:"l2vpn-evpn" json:"l2vpn-evpn,omitempty"`
// original -> bgp-mp:route-selection-options
+ // Parameters relating to options for route selection.
RouteSelectionOptions RouteSelectionOptions `mapstructure:"route-selection-options" json:"route-selection-options,omitempty"`
// original -> bgp-mp:use-multiple-paths
+ // Parameters related to the use of multiple paths for the
+ // same NLRI.
UseMultiplePaths UseMultiplePaths `mapstructure:"use-multiple-paths" json:"use-multiple-paths,omitempty"`
// original -> bgp-mp:prefix-limit
+ // Configure the maximum number of prefixes that will be
+ // accepted from a peer.
PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"`
// original -> gobgp:route-target-membership
RouteTargetMembership RouteTargetMembership `mapstructure:"route-target-membership" json:"route-target-membership,omitempty"`
@@ -3320,59 +3992,107 @@ func (lhs *AfiSafi) Equal(rhs *AfiSafi) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information associated with graceful-restart.
type GracefulRestartState struct {
// original -> bgp:enabled
- //bgp:enabled's original type is boolean
+ // bgp:enabled's original type is boolean.
+ // Enable or disable the graceful-restart capability.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> bgp:restart-time
+ // Estimated time (in seconds) for the local BGP speaker to
+ // restart a session. This value is advertise in the graceful
+ // restart BGP capability. This is a 12-bit value, referred to
+ // as Restart Time in RFC4724. Per RFC4724, the suggested
+ // default value is <= the hold-time value.
RestartTime uint16 `mapstructure:"restart-time" json:"restart-time,omitempty"`
// original -> bgp:stale-routes-time
- //bgp:stale-routes-time's original type is decimal64
+ // bgp:stale-routes-time's original type is decimal64.
+ // An upper-bound on the time thate stale routes will be
+ // retained by a router after a session is restarted. If an
+ // End-of-RIB (EOR) marker is received prior to this timer
+ // expiring stale-routes will be flushed upon its receipt - if
+ // no EOR is received, then when this timer expires stale paths
+ // will be purged. This timer is referred to as the
+ // Selection_Deferral_Timer in RFC4724.
StaleRoutesTime float64 `mapstructure:"stale-routes-time" json:"stale-routes-time,omitempty"`
// original -> bgp:helper-only
- //bgp:helper-only's original type is boolean
+ // bgp:helper-only's original type is boolean.
+ // Enable graceful-restart in helper mode only. When this
+ // leaf is set, the local system does not retain forwarding
+ // its own state during a restart, but supports procedures
+ // for the receiving speaker, as defined in RFC4724.
HelperOnly bool `mapstructure:"helper-only" json:"helper-only,omitempty"`
// original -> bgp-op:peer-restart-time
+ // The period of time (advertised by the peer) that
+ // the peer expects a restart of a BGP session to
+ // take.
PeerRestartTime uint16 `mapstructure:"peer-restart-time" json:"peer-restart-time,omitempty"`
// original -> bgp-op:peer-restarting
- //bgp-op:peer-restarting's original type is boolean
+ // bgp-op:peer-restarting's original type is boolean.
+ // This flag indicates whether the remote neighbor is currently
+ // in the process of restarting, and hence received routes are
+ // currently stale.
PeerRestarting bool `mapstructure:"peer-restarting" json:"peer-restarting,omitempty"`
// original -> bgp-op:local-restarting
- //bgp-op:local-restarting's original type is boolean
+ // bgp-op:local-restarting's original type is boolean.
+ // This flag indicates whether the local neighbor is currently
+ // restarting. The flag is unset after all NLRI have been
+ // advertised to the peer, and the End-of-RIB (EOR) marker has
+ // been unset.
LocalRestarting bool `mapstructure:"local-restarting" json:"local-restarting,omitempty"`
// original -> bgp-op:mode
+ // Ths leaf indicates the mode of operation of BGP graceful
+ // restart with the peer.
Mode Mode `mapstructure:"mode" json:"mode,omitempty"`
// original -> gobgp:deferral-time
DeferralTime uint16 `mapstructure:"deferral-time" json:"deferral-time,omitempty"`
// original -> gobgp:notification-enabled
- //gobgp:notification-enabled's original type is boolean
+ // gobgp:notification-enabled's original type is boolean.
NotificationEnabled bool `mapstructure:"notification-enabled" json:"notification-enabled,omitempty"`
// original -> gobgp:long-lived-enabled
- //gobgp:long-lived-enabled's original type is boolean
+ // gobgp:long-lived-enabled's original type is boolean.
LongLivedEnabled bool `mapstructure:"long-lived-enabled" json:"long-lived-enabled,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to graceful-restart.
type GracefulRestartConfig struct {
// original -> bgp:enabled
- //bgp:enabled's original type is boolean
+ // bgp:enabled's original type is boolean.
+ // Enable or disable the graceful-restart capability.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> bgp:restart-time
+ // Estimated time (in seconds) for the local BGP speaker to
+ // restart a session. This value is advertise in the graceful
+ // restart BGP capability. This is a 12-bit value, referred to
+ // as Restart Time in RFC4724. Per RFC4724, the suggested
+ // default value is <= the hold-time value.
RestartTime uint16 `mapstructure:"restart-time" json:"restart-time,omitempty"`
// original -> bgp:stale-routes-time
- //bgp:stale-routes-time's original type is decimal64
+ // bgp:stale-routes-time's original type is decimal64.
+ // An upper-bound on the time thate stale routes will be
+ // retained by a router after a session is restarted. If an
+ // End-of-RIB (EOR) marker is received prior to this timer
+ // expiring stale-routes will be flushed upon its receipt - if
+ // no EOR is received, then when this timer expires stale paths
+ // will be purged. This timer is referred to as the
+ // Selection_Deferral_Timer in RFC4724.
StaleRoutesTime float64 `mapstructure:"stale-routes-time" json:"stale-routes-time,omitempty"`
// original -> bgp:helper-only
- //bgp:helper-only's original type is boolean
+ // bgp:helper-only's original type is boolean.
+ // Enable graceful-restart in helper mode only. When this
+ // leaf is set, the local system does not retain forwarding
+ // its own state during a restart, but supports procedures
+ // for the receiving speaker, as defined in RFC4724.
HelperOnly bool `mapstructure:"helper-only" json:"helper-only,omitempty"`
// original -> gobgp:deferral-time
DeferralTime uint16 `mapstructure:"deferral-time" json:"deferral-time,omitempty"`
// original -> gobgp:notification-enabled
- //gobgp:notification-enabled's original type is boolean
+ // gobgp:notification-enabled's original type is boolean.
NotificationEnabled bool `mapstructure:"notification-enabled" json:"notification-enabled,omitempty"`
// original -> gobgp:long-lived-enabled
- //gobgp:long-lived-enabled's original type is boolean
+ // gobgp:long-lived-enabled's original type is boolean.
LongLivedEnabled bool `mapstructure:"long-lived-enabled" json:"long-lived-enabled,omitempty"`
}
@@ -3404,11 +4124,14 @@ func (lhs *GracefulRestartConfig) Equal(rhs *GracefulRestartConfig) bool {
return true
}
-//struct for container bgp:graceful-restart
+// struct for container bgp:graceful-restart.
+// Parameters relating the graceful restart mechanism for BGP.
type GracefulRestart struct {
// original -> bgp:graceful-restart-config
+ // Configuration parameters relating to graceful-restart.
Config GracefulRestartConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:graceful-restart-state
+ // State information associated with graceful-restart.
State GracefulRestartState `mapstructure:"state" json:"state,omitempty"`
}
@@ -3422,15 +4145,21 @@ func (lhs *GracefulRestart) Equal(rhs *GracefulRestart) bool {
return true
}
-//struct for container bgp-mp:state
+// struct for container bgp-mp:state.
+// State information relating to iBGP multipath.
type IbgpState struct {
// original -> bgp-mp:maximum-paths
+ // Maximum number of parallel paths to consider when using
+ // iBGP multipath. The default is to use a single path.
MaximumPaths uint32 `mapstructure:"maximum-paths" json:"maximum-paths,omitempty"`
}
-//struct for container bgp-mp:config
+// struct for container bgp-mp:config.
+// Configuration parameters relating to iBGP multipath.
type IbgpConfig struct {
// original -> bgp-mp:maximum-paths
+ // Maximum number of parallel paths to consider when using
+ // iBGP multipath. The default is to use a single path.
MaximumPaths uint32 `mapstructure:"maximum-paths" json:"maximum-paths,omitempty"`
}
@@ -3444,11 +4173,14 @@ func (lhs *IbgpConfig) Equal(rhs *IbgpConfig) bool {
return true
}
-//struct for container bgp-mp:ibgp
+// struct for container bgp-mp:ibgp.
+// Multipath parameters for iBGP.
type Ibgp struct {
// original -> bgp-mp:ibgp-config
+ // Configuration parameters relating to iBGP multipath.
Config IbgpConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp-mp:ibgp-state
+ // State information relating to iBGP multipath.
State IbgpState `mapstructure:"state" json:"state,omitempty"`
}
@@ -3462,21 +4194,33 @@ func (lhs *Ibgp) Equal(rhs *Ibgp) bool {
return true
}
-//struct for container bgp-mp:state
+// struct for container bgp-mp:state.
+// State information relating to eBGP multipath.
type EbgpState struct {
// original -> bgp-mp:allow-multiple-as
- //bgp-mp:allow-multiple-as's original type is boolean
+ // bgp-mp:allow-multiple-as's original type is boolean.
+ // Allow multipath to use paths from different neighbouring
+ // ASes. The default is to only consider multiple paths from
+ // the same neighbouring AS.
AllowMultipleAs bool `mapstructure:"allow-multiple-as" json:"allow-multiple-as,omitempty"`
// original -> bgp-mp:maximum-paths
+ // Maximum number of parallel paths to consider when using
+ // BGP multipath. The default is use a single path.
MaximumPaths uint32 `mapstructure:"maximum-paths" json:"maximum-paths,omitempty"`
}
-//struct for container bgp-mp:config
+// struct for container bgp-mp:config.
+// Configuration parameters relating to eBGP multipath.
type EbgpConfig struct {
// original -> bgp-mp:allow-multiple-as
- //bgp-mp:allow-multiple-as's original type is boolean
+ // bgp-mp:allow-multiple-as's original type is boolean.
+ // Allow multipath to use paths from different neighbouring
+ // ASes. The default is to only consider multiple paths from
+ // the same neighbouring AS.
AllowMultipleAs bool `mapstructure:"allow-multiple-as" json:"allow-multiple-as,omitempty"`
// original -> bgp-mp:maximum-paths
+ // Maximum number of parallel paths to consider when using
+ // BGP multipath. The default is use a single path.
MaximumPaths uint32 `mapstructure:"maximum-paths" json:"maximum-paths,omitempty"`
}
@@ -3493,11 +4237,14 @@ func (lhs *EbgpConfig) Equal(rhs *EbgpConfig) bool {
return true
}
-//struct for container bgp-mp:ebgp
+// struct for container bgp-mp:ebgp.
+// Multipath parameters for eBGP.
type Ebgp struct {
// original -> bgp-mp:ebgp-config
+ // Configuration parameters relating to eBGP multipath.
Config EbgpConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp-mp:ebgp-state
+ // State information relating to eBGP multipath.
State EbgpState `mapstructure:"state" json:"state,omitempty"`
}
@@ -3511,17 +4258,25 @@ func (lhs *Ebgp) Equal(rhs *Ebgp) bool {
return true
}
-//struct for container bgp-mp:state
+// struct for container bgp-mp:state.
+// State parameters relating to multipath.
type UseMultiplePathsState struct {
// original -> bgp-mp:enabled
- //bgp-mp:enabled's original type is boolean
+ // bgp-mp:enabled's original type is boolean.
+ // Whether the use of multiple paths for the same NLRI is
+ // enabled for the neighbor. This value is overridden by
+ // any more specific configuration value.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
}
-//struct for container bgp-mp:config
+// struct for container bgp-mp:config.
+// Configuration parameters relating to multipath.
type UseMultiplePathsConfig struct {
// original -> bgp-mp:enabled
- //bgp-mp:enabled's original type is boolean
+ // bgp-mp:enabled's original type is boolean.
+ // Whether the use of multiple paths for the same NLRI is
+ // enabled for the neighbor. This value is overridden by
+ // any more specific configuration value.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
}
@@ -3535,15 +4290,21 @@ func (lhs *UseMultiplePathsConfig) Equal(rhs *UseMultiplePathsConfig) bool {
return true
}
-//struct for container bgp-mp:use-multiple-paths
+// struct for container bgp-mp:use-multiple-paths.
+// Parameters related to the use of multiple paths for the
+// same NLRI.
type UseMultiplePaths struct {
// original -> bgp-mp:use-multiple-paths-config
+ // Configuration parameters relating to multipath.
Config UseMultiplePathsConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp-mp:use-multiple-paths-state
+ // State parameters relating to multipath.
State UseMultiplePathsState `mapstructure:"state" json:"state,omitempty"`
// original -> bgp-mp:ebgp
+ // Multipath parameters for eBGP.
Ebgp Ebgp `mapstructure:"ebgp" json:"ebgp,omitempty"`
// original -> bgp-mp:ibgp
+ // Multipath parameters for iBGP.
Ibgp Ibgp `mapstructure:"ibgp" json:"ibgp,omitempty"`
}
@@ -3563,29 +4324,41 @@ func (lhs *UseMultiplePaths) Equal(rhs *UseMultiplePaths) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to the BGP confederations.
type ConfederationState struct {
// original -> bgp:enabled
- //bgp:enabled's original type is boolean
+ // bgp:enabled's original type is boolean.
+ // When this leaf is set to true it indicates that
+ // the local-AS is part of a BGP confederation.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> bgp:identifier
- //bgp:identifier's original type is inet:as-number
+ // bgp:identifier's original type is inet:as-number.
+ // Confederation identifier for the autonomous system.
Identifier uint32 `mapstructure:"identifier" json:"identifier,omitempty"`
// original -> bgp:member-as
// original type is list of inet:as-number
+ // Remote autonomous systems that are to be treated
+ // as part of the local confederation.
MemberAsList []uint32 `mapstructure:"member-as-list" json:"member-as-list,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to BGP confederations.
type ConfederationConfig struct {
// original -> bgp:enabled
- //bgp:enabled's original type is boolean
+ // bgp:enabled's original type is boolean.
+ // When this leaf is set to true it indicates that
+ // the local-AS is part of a BGP confederation.
Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"`
// original -> bgp:identifier
- //bgp:identifier's original type is inet:as-number
+ // bgp:identifier's original type is inet:as-number.
+ // Confederation identifier for the autonomous system.
Identifier uint32 `mapstructure:"identifier" json:"identifier,omitempty"`
// original -> bgp:member-as
// original type is list of inet:as-number
+ // Remote autonomous systems that are to be treated
+ // as part of the local confederation.
MemberAsList []uint32 `mapstructure:"member-as-list" json:"member-as-list,omitempty"`
}
@@ -3610,11 +4383,15 @@ func (lhs *ConfederationConfig) Equal(rhs *ConfederationConfig) bool {
return true
}
-//struct for container bgp:confederation
+// struct for container bgp:confederation.
+// Parameters indicating whether the local system acts as part
+// of a BGP confederation.
type Confederation struct {
// original -> bgp:confederation-config
+ // Configuration parameters relating to BGP confederations.
Config ConfederationConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:confederation-state
+ // State information relating to the BGP confederations.
State ConfederationState `mapstructure:"state" json:"state,omitempty"`
}
@@ -3628,19 +4405,30 @@ func (lhs *Confederation) Equal(rhs *Confederation) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to the default route distance.
type DefaultRouteDistanceState struct {
// original -> bgp:external-route-distance
+ // Administrative distance for routes learned from external
+ // BGP (eBGP).
ExternalRouteDistance uint8 `mapstructure:"external-route-distance" json:"external-route-distance,omitempty"`
// original -> bgp:internal-route-distance
+ // Administrative distance for routes learned from internal
+ // BGP (iBGP).
InternalRouteDistance uint8 `mapstructure:"internal-route-distance" json:"internal-route-distance,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to the default route
+// distance.
type DefaultRouteDistanceConfig struct {
// original -> bgp:external-route-distance
+ // Administrative distance for routes learned from external
+ // BGP (eBGP).
ExternalRouteDistance uint8 `mapstructure:"external-route-distance" json:"external-route-distance,omitempty"`
// original -> bgp:internal-route-distance
+ // Administrative distance for routes learned from internal
+ // BGP (iBGP).
InternalRouteDistance uint8 `mapstructure:"internal-route-distance" json:"internal-route-distance,omitempty"`
}
@@ -3657,11 +4445,17 @@ func (lhs *DefaultRouteDistanceConfig) Equal(rhs *DefaultRouteDistanceConfig) bo
return true
}
-//struct for container bgp:default-route-distance
+// struct for container bgp:default-route-distance.
+// Administrative distance (or preference) assigned to
+// routes received from different sources
+// (external, internal, and local).
type DefaultRouteDistance struct {
// original -> bgp:default-route-distance-config
+ // Configuration parameters relating to the default route
+ // distance.
Config DefaultRouteDistanceConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:default-route-distance-state
+ // State information relating to the default route distance.
State DefaultRouteDistanceState `mapstructure:"state" json:"state,omitempty"`
}
@@ -3675,47 +4469,84 @@ func (lhs *DefaultRouteDistance) Equal(rhs *DefaultRouteDistance) bool {
return true
}
-//struct for container bgp-mp:state
+// struct for container bgp-mp:state.
+// State information for the route selection options.
type RouteSelectionOptionsState struct {
// original -> bgp-mp:always-compare-med
- //bgp-mp:always-compare-med's original type is boolean
+ // bgp-mp:always-compare-med's original type is boolean.
+ // Compare multi-exit discriminator (MED) value from
+ // different ASes when selecting the best route. The
+ // default behavior is to only compare MEDs for paths
+ // received from the same AS.
AlwaysCompareMed bool `mapstructure:"always-compare-med" json:"always-compare-med,omitempty"`
// original -> bgp-mp:ignore-as-path-length
- //bgp-mp:ignore-as-path-length's original type is boolean
+ // bgp-mp:ignore-as-path-length's original type is boolean.
+ // Ignore the AS path length when selecting the best path.
+ // The default is to use the AS path length and prefer paths
+ // with shorter length.
IgnoreAsPathLength bool `mapstructure:"ignore-as-path-length" json:"ignore-as-path-length,omitempty"`
// original -> bgp-mp:external-compare-router-id
- //bgp-mp:external-compare-router-id's original type is boolean
+ // bgp-mp:external-compare-router-id's original type is boolean.
+ // When comparing similar routes received from external
+ // BGP peers, use the router-id as a criterion to select
+ // the active path.
ExternalCompareRouterId bool `mapstructure:"external-compare-router-id" json:"external-compare-router-id,omitempty"`
// original -> bgp-mp:advertise-inactive-routes
- //bgp-mp:advertise-inactive-routes's original type is boolean
+ // bgp-mp:advertise-inactive-routes's original type is boolean.
+ // Advertise inactive routes to external peers. The
+ // default is to only advertise active routes.
AdvertiseInactiveRoutes bool `mapstructure:"advertise-inactive-routes" json:"advertise-inactive-routes,omitempty"`
// original -> bgp-mp:enable-aigp
- //bgp-mp:enable-aigp's original type is boolean
+ // bgp-mp:enable-aigp's original type is boolean.
+ // Flag to enable sending / receiving accumulated IGP
+ // attribute in routing updates.
EnableAigp bool `mapstructure:"enable-aigp" json:"enable-aigp,omitempty"`
// original -> bgp-mp:ignore-next-hop-igp-metric
- //bgp-mp:ignore-next-hop-igp-metric's original type is boolean
+ // bgp-mp:ignore-next-hop-igp-metric's original type is boolean.
+ // Ignore the IGP metric to the next-hop when calculating
+ // BGP best-path. The default is to select the route for
+ // which the metric to the next-hop is lowest.
IgnoreNextHopIgpMetric bool `mapstructure:"ignore-next-hop-igp-metric" json:"ignore-next-hop-igp-metric,omitempty"`
}
-//struct for container bgp-mp:config
+// struct for container bgp-mp:config.
+// Configuration parameters relating to route selection
+// options.
type RouteSelectionOptionsConfig struct {
// original -> bgp-mp:always-compare-med
- //bgp-mp:always-compare-med's original type is boolean
+ // bgp-mp:always-compare-med's original type is boolean.
+ // Compare multi-exit discriminator (MED) value from
+ // different ASes when selecting the best route. The
+ // default behavior is to only compare MEDs for paths
+ // received from the same AS.
AlwaysCompareMed bool `mapstructure:"always-compare-med" json:"always-compare-med,omitempty"`
// original -> bgp-mp:ignore-as-path-length
- //bgp-mp:ignore-as-path-length's original type is boolean
+ // bgp-mp:ignore-as-path-length's original type is boolean.
+ // Ignore the AS path length when selecting the best path.
+ // The default is to use the AS path length and prefer paths
+ // with shorter length.
IgnoreAsPathLength bool `mapstructure:"ignore-as-path-length" json:"ignore-as-path-length,omitempty"`
// original -> bgp-mp:external-compare-router-id
- //bgp-mp:external-compare-router-id's original type is boolean
+ // bgp-mp:external-compare-router-id's original type is boolean.
+ // When comparing similar routes received from external
+ // BGP peers, use the router-id as a criterion to select
+ // the active path.
ExternalCompareRouterId bool `mapstructure:"external-compare-router-id" json:"external-compare-router-id,omitempty"`
// original -> bgp-mp:advertise-inactive-routes
- //bgp-mp:advertise-inactive-routes's original type is boolean
+ // bgp-mp:advertise-inactive-routes's original type is boolean.
+ // Advertise inactive routes to external peers. The
+ // default is to only advertise active routes.
AdvertiseInactiveRoutes bool `mapstructure:"advertise-inactive-routes" json:"advertise-inactive-routes,omitempty"`
// original -> bgp-mp:enable-aigp
- //bgp-mp:enable-aigp's original type is boolean
+ // bgp-mp:enable-aigp's original type is boolean.
+ // Flag to enable sending / receiving accumulated IGP
+ // attribute in routing updates.
EnableAigp bool `mapstructure:"enable-aigp" json:"enable-aigp,omitempty"`
// original -> bgp-mp:ignore-next-hop-igp-metric
- //bgp-mp:ignore-next-hop-igp-metric's original type is boolean
+ // bgp-mp:ignore-next-hop-igp-metric's original type is boolean.
+ // Ignore the IGP metric to the next-hop when calculating
+ // BGP best-path. The default is to select the route for
+ // which the metric to the next-hop is lowest.
IgnoreNextHopIgpMetric bool `mapstructure:"ignore-next-hop-igp-metric" json:"ignore-next-hop-igp-metric,omitempty"`
}
@@ -3744,11 +4575,15 @@ func (lhs *RouteSelectionOptionsConfig) Equal(rhs *RouteSelectionOptionsConfig)
return true
}
-//struct for container bgp-mp:route-selection-options
+// struct for container bgp-mp:route-selection-options.
+// Parameters relating to options for route selection.
type RouteSelectionOptions struct {
// original -> bgp-mp:route-selection-options-config
+ // Configuration parameters relating to route selection
+ // options.
Config RouteSelectionOptionsConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp-mp:route-selection-options-state
+ // State information for the route selection options.
State RouteSelectionOptionsState `mapstructure:"state" json:"state,omitempty"`
}
@@ -3762,17 +4597,24 @@ func (lhs *RouteSelectionOptions) Equal(rhs *RouteSelectionOptions) bool {
return true
}
-//struct for container bgp:state
+// struct for container bgp:state.
+// State information relating to the global BGP router.
type GlobalState struct {
// original -> bgp:as
- //bgp:as's original type is inet:as-number
+ // bgp:as's original type is inet:as-number.
+ // Local autonomous system number of the router. Uses
+ // the 32-bit as-number type from the model in RFC 6991.
As uint32 `mapstructure:"as" json:"as,omitempty"`
// original -> bgp:router-id
- //bgp:router-id's original type is inet:ipv4-address
+ // bgp:router-id's original type is inet:ipv4-address.
+ // Router id of the router, expressed as an
+ // 32-bit value, IPv4 address.
RouterId string `mapstructure:"router-id" json:"router-id,omitempty"`
// original -> bgp-op:total-paths
+ // Total number of BGP paths within the context.
TotalPaths uint32 `mapstructure:"total-paths" json:"total-paths,omitempty"`
// original -> bgp-op:total-prefixes
+ // .
TotalPrefixes uint32 `mapstructure:"total-prefixes" json:"total-prefixes,omitempty"`
// original -> gobgp:port
Port int32 `mapstructure:"port" json:"port,omitempty"`
@@ -3780,13 +4622,18 @@ type GlobalState struct {
LocalAddressList []string `mapstructure:"local-address-list" json:"local-address-list,omitempty"`
}
-//struct for container bgp:config
+// struct for container bgp:config.
+// Configuration parameters relating to the global BGP router.
type GlobalConfig struct {
// original -> bgp:as
- //bgp:as's original type is inet:as-number
+ // bgp:as's original type is inet:as-number.
+ // Local autonomous system number of the router. Uses
+ // the 32-bit as-number type from the model in RFC 6991.
As uint32 `mapstructure:"as" json:"as,omitempty"`
// original -> bgp:router-id
- //bgp:router-id's original type is inet:ipv4-address
+ // bgp:router-id's original type is inet:ipv4-address.
+ // Router id of the router, expressed as an
+ // 32-bit value, IPv4 address.
RouterId string `mapstructure:"router-id" json:"router-id,omitempty"`
// original -> gobgp:port
Port int32 `mapstructure:"port" json:"port,omitempty"`
@@ -3818,25 +4665,42 @@ func (lhs *GlobalConfig) Equal(rhs *GlobalConfig) bool {
return true
}
-//struct for container bgp:global
+// struct for container bgp:global.
+// Global configuration for the BGP router.
type Global struct {
// original -> bgp:global-config
+ // Configuration parameters relating to the global BGP router.
Config GlobalConfig `mapstructure:"config" json:"config,omitempty"`
// original -> bgp:global-state
+ // State information relating to the global BGP router.
State GlobalState `mapstructure:"state" json:"state,omitempty"`
// original -> bgp-mp:route-selection-options
+ // Parameters relating to options for route selection.
RouteSelectionOptions RouteSelectionOptions `mapstructure:"route-selection-options" json:"route-selection-options,omitempty"`
// original -> bgp:default-route-distance
+ // Administrative distance (or preference) assigned to
+ // routes received from different sources
+ // (external, internal, and local).
DefaultRouteDistance DefaultRouteDistance `mapstructure:"default-route-distance" json:"default-route-distance,omitempty"`
// original -> bgp:confederation
+ // Parameters indicating whether the local system acts as part
+ // of a BGP confederation.
Confederation Confederation `mapstructure:"confederation" json:"confederation,omitempty"`
// original -> bgp-mp:use-multiple-paths
+ // Parameters related to the use of multiple paths for the
+ // same NLRI.
UseMultiplePaths UseMultiplePaths `mapstructure:"use-multiple-paths" json:"use-multiple-paths,omitempty"`
// original -> bgp:graceful-restart
+ // Parameters relating the graceful restart mechanism for BGP.
GracefulRestart GracefulRestart `mapstructure:"graceful-restart" json:"graceful-restart,omitempty"`
// original -> bgp:afi-safis
+ // Address family specific configuration.
AfiSafis []AfiSafi `mapstructure:"afi-safis" json:"afi-safis,omitempty"`
// original -> rpol:apply-policy
+ // Anchor point for routing policies in the model.
+ // Import and export policies are with respect to the local
+ // routing table, i.e., export (send) and import (receive),
+ // depending on the context.
ApplyPolicy ApplyPolicy `mapstructure:"apply-policy" json:"apply-policy,omitempty"`
}
@@ -3884,13 +4748,17 @@ func (lhs *Global) Equal(rhs *Global) bool {
return true
}
-//struct for container bgp:bgp
+// struct for container bgp:bgp.
+// Top-level configuration and state for the BGP router.
type Bgp struct {
// original -> bgp:global
+ // Global configuration for the BGP router.
Global Global `mapstructure:"global" json:"global,omitempty"`
// original -> bgp:neighbors
+ // Configuration for BGP neighbors.
Neighbors []Neighbor `mapstructure:"neighbors" json:"neighbors,omitempty"`
// original -> bgp:peer-groups
+ // Configuration for BGP peer-groups.
PeerGroups []PeerGroup `mapstructure:"peer-groups" json:"peer-groups,omitempty"`
// original -> gobgp:rpki-servers
RpkiServers []RpkiServer `mapstructure:"rpki-servers" json:"rpki-servers,omitempty"`
@@ -4018,7 +4886,7 @@ func (lhs *Bgp) Equal(rhs *Bgp) bool {
return true
}
-//struct for container gobgp:set-large-community-method
+// struct for container gobgp:set-large-community-method.
type SetLargeCommunityMethod struct {
// original -> gobgp:communities
CommunitiesList []string `mapstructure:"communities-list" json:"communities-list,omitempty"`
@@ -4039,7 +4907,7 @@ func (lhs *SetLargeCommunityMethod) Equal(rhs *SetLargeCommunityMethod) bool {
return true
}
-//struct for container gobgp:set-large-community
+// struct for container gobgp:set-large-community.
type SetLargeCommunity struct {
// original -> gobgp:set-large-community-method
SetLargeCommunityMethod SetLargeCommunityMethod `mapstructure:"set-large-community-method" json:"set-large-community-method,omitempty"`
@@ -4060,12 +4928,18 @@ func (lhs *SetLargeCommunity) Equal(rhs *SetLargeCommunity) bool {
return true
}
-//struct for container bgp-pol:set-ext-community-method
+// struct for container bgp-pol:set-ext-community-method.
+// Option to set communities using an inline list or
+// reference to an existing defined set.
type SetExtCommunityMethod struct {
// original -> bgp-pol:communities
// original type is list of union
+ // Set the community values for the update inline with
+ // a list.
CommunitiesList []string `mapstructure:"communities-list" json:"communities-list,omitempty"`
// original -> bgp-pol:ext-community-set-ref
+ // References a defined extended community set by
+ // name.
ExtCommunitySetRef string `mapstructure:"ext-community-set-ref" json:"ext-community-set-ref,omitempty"`
}
@@ -4087,12 +4961,21 @@ func (lhs *SetExtCommunityMethod) Equal(rhs *SetExtCommunityMethod) bool {
return true
}
-//struct for container bgp-pol:set-ext-community
+// struct for container bgp-pol:set-ext-community.
+// Action to set the extended community attributes of the
+// route, along with options to modify how the community is
+// modified.
type SetExtCommunity struct {
// original -> bgp-pol:set-ext-community-method
+ // Option to set communities using an inline list or
+ // reference to an existing defined set.
SetExtCommunityMethod SetExtCommunityMethod `mapstructure:"set-ext-community-method" json:"set-ext-community-method,omitempty"`
// original -> bgp-pol:options
- //bgp-pol:options's original type is bgp-set-community-option-type
+ // bgp-pol:options's original type is bgp-set-community-option-type.
+ // options for modifying the extended community
+ // attribute with the specified values. These options
+ // apply to both methods of setting the community
+ // attribute.
Options string `mapstructure:"options" json:"options,omitempty"`
}
@@ -4109,12 +4992,17 @@ func (lhs *SetExtCommunity) Equal(rhs *SetExtCommunity) bool {
return true
}
-//struct for container bgp-pol:set-community-method
+// struct for container bgp-pol:set-community-method.
+// Option to set communities using an inline list or
+// reference to an existing defined set.
type SetCommunityMethod struct {
// original -> bgp-pol:communities
// original type is list of union
+ // Set the community values for the update inline with
+ // a list.
CommunitiesList []string `mapstructure:"communities-list" json:"communities-list,omitempty"`
// original -> bgp-pol:community-set-ref
+ // References a defined community set by name.
CommunitySetRef string `mapstructure:"community-set-ref" json:"community-set-ref,omitempty"`
}
@@ -4136,12 +5024,19 @@ func (lhs *SetCommunityMethod) Equal(rhs *SetCommunityMethod) bool {
return true
}
-//struct for container bgp-pol:set-community
+// struct for container bgp-pol:set-community.
+// action to set the community attributes of the route, along
+// with options to modify how the community is modified.
type SetCommunity struct {
// original -> bgp-pol:set-community-method
+ // Option to set communities using an inline list or
+ // reference to an existing defined set.
SetCommunityMethod SetCommunityMethod `mapstructure:"set-community-method" json:"set-community-method,omitempty"`
// original -> bgp-pol:options
- //bgp-pol:options's original type is bgp-set-community-option-type
+ // bgp-pol:options's original type is bgp-set-community-option-type.
+ // Options for modifying the community attribute with
+ // the specified values. These options apply to both
+ // methods of setting the community attribute.
Options string `mapstructure:"options" json:"options,omitempty"`
}
@@ -4158,12 +5053,18 @@ func (lhs *SetCommunity) Equal(rhs *SetCommunity) bool {
return true
}
-//struct for container bgp-pol:set-as-path-prepend
+// struct for container bgp-pol:set-as-path-prepend.
+// action to prepend local AS number to the AS-path a
+// specified number of times.
type SetAsPathPrepend struct {
// original -> bgp-pol:repeat-n
+ // number of times to prepend the local AS
+ // number.
RepeatN uint8 `mapstructure:"repeat-n" json:"repeat-n,omitempty"`
// original -> gobgp:as
- //gobgp:as's original type is union
+ // gobgp:as's original type is union.
+ // autonomous system number or 'last-as' which means
+ // the leftmost as number in the AS-path to be prepended.
As string `mapstructure:"as" json:"as,omitempty"`
}
@@ -4180,21 +5081,37 @@ func (lhs *SetAsPathPrepend) Equal(rhs *SetAsPathPrepend) bool {
return true
}
-//struct for container bgp-pol:bgp-actions
+// struct for container bgp-pol:bgp-actions.
+// Definitions for policy action statements that
+// change BGP-specific attributes of the route.
type BgpActions struct {
// original -> bgp-pol:set-as-path-prepend
+ // action to prepend local AS number to the AS-path a
+ // specified number of times.
SetAsPathPrepend SetAsPathPrepend `mapstructure:"set-as-path-prepend" json:"set-as-path-prepend,omitempty"`
// original -> bgp-pol:set-community
+ // action to set the community attributes of the route, along
+ // with options to modify how the community is modified.
SetCommunity SetCommunity `mapstructure:"set-community" json:"set-community,omitempty"`
// original -> bgp-pol:set-ext-community
+ // Action to set the extended community attributes of the
+ // route, along with options to modify how the community is
+ // modified.
SetExtCommunity SetExtCommunity `mapstructure:"set-ext-community" json:"set-ext-community,omitempty"`
// original -> bgp-pol:set-route-origin
+ // set the origin attribute to the specified
+ // value.
SetRouteOrigin BgpOriginAttrType `mapstructure:"set-route-origin" json:"set-route-origin,omitempty"`
// original -> bgp-pol:set-local-pref
+ // set the local pref attribute on the route
+ // update.
SetLocalPref uint32 `mapstructure:"set-local-pref" json:"set-local-pref,omitempty"`
// original -> bgp-pol:set-next-hop
+ // set the next-hop attribute in the route update.
SetNextHop BgpNextHopType `mapstructure:"set-next-hop" json:"set-next-hop,omitempty"`
// original -> bgp-pol:set-med
+ // set the med metric attribute in the route
+ // update.
SetMed BgpSetMedType `mapstructure:"set-med" json:"set-med,omitempty"`
// original -> gobgp:set-large-community
SetLargeCommunity SetLargeCommunity `mapstructure:"set-large-community" json:"set-large-community,omitempty"`
@@ -4231,9 +5148,12 @@ func (lhs *BgpActions) Equal(rhs *BgpActions) bool {
return true
}
-//struct for container rpol:igp-actions
+// struct for container rpol:igp-actions.
+// Actions to set IGP route attributes; these actions
+// apply to multiple IGPs.
type IgpActions struct {
// original -> rpol:set-tag
+ // Set the tag value for OSPF or IS-IS routes.
SetTag TagType `mapstructure:"set-tag" json:"set-tag,omitempty"`
}
@@ -4247,13 +5167,21 @@ func (lhs *IgpActions) Equal(rhs *IgpActions) bool {
return true
}
-//struct for container rpol:actions
+// struct for container rpol:actions.
+// Action statements for this policy
+// statement.
type Actions struct {
// original -> rpol:route-disposition
+ // Select the final disposition for the route, either
+ // accept or reject.
RouteDisposition RouteDisposition `mapstructure:"route-disposition" json:"route-disposition,omitempty"`
// original -> rpol:igp-actions
+ // Actions to set IGP route attributes; these actions
+ // apply to multiple IGPs.
IgpActions IgpActions `mapstructure:"igp-actions" json:"igp-actions,omitempty"`
// original -> bgp-pol:bgp-actions
+ // Definitions for policy action statements that
+ // change BGP-specific attributes of the route.
BgpActions BgpActions `mapstructure:"bgp-actions" json:"bgp-actions,omitempty"`
}
@@ -4273,11 +5201,13 @@ func (lhs *Actions) Equal(rhs *Actions) bool {
return true
}
-//struct for container gobgp:match-large-community-set
+// struct for container gobgp:match-large-community-set.
type MatchLargeCommunitySet struct {
// original -> gobgp:large-community-set
LargeCommunitySet string `mapstructure:"large-community-set" json:"large-community-set,omitempty"`
// original -> rpol:match-set-options
+ // Optional parameter that governs the behaviour of the
+ // match operation.
MatchSetOptions MatchSetOptionsType `mapstructure:"match-set-options" json:"match-set-options,omitempty"`
}
@@ -4294,11 +5224,15 @@ func (lhs *MatchLargeCommunitySet) Equal(rhs *MatchLargeCommunitySet) bool {
return true
}
-//struct for container bgp-pol:as-path-length
+// struct for container bgp-pol:as-path-length.
+// Value and comparison operations for conditions based on the
+// length of the AS path in the route update.
type AsPathLength struct {
// original -> ptypes:operator
+ // type of comparison to be performed.
Operator AttributeComparison `mapstructure:"operator" json:"operator,omitempty"`
// original -> ptypes:value
+ // value to compare with the community count.
Value uint32 `mapstructure:"value" json:"value,omitempty"`
}
@@ -4315,11 +5249,15 @@ func (lhs *AsPathLength) Equal(rhs *AsPathLength) bool {
return true
}
-//struct for container bgp-pol:community-count
+// struct for container bgp-pol:community-count.
+// Value and comparison operations for conditions based on the
+// number of communities in the route update.
type CommunityCount struct {
// original -> ptypes:operator
+ // type of comparison to be performed.
Operator AttributeComparison `mapstructure:"operator" json:"operator,omitempty"`
// original -> ptypes:value
+ // value to compare with the community count.
Value uint32 `mapstructure:"value" json:"value,omitempty"`
}
@@ -4336,11 +5274,16 @@ func (lhs *CommunityCount) Equal(rhs *CommunityCount) bool {
return true
}
-//struct for container bgp-pol:match-as-path-set
+// struct for container bgp-pol:match-as-path-set.
+// Match a referenced as-path set according to the logic
+// defined in the match-set-options leaf.
type MatchAsPathSet struct {
// original -> bgp-pol:as-path-set
+ // References a defined AS path set.
AsPathSet string `mapstructure:"as-path-set" json:"as-path-set,omitempty"`
// original -> rpol:match-set-options
+ // Optional parameter that governs the behaviour of the
+ // match operation.
MatchSetOptions MatchSetOptionsType `mapstructure:"match-set-options" json:"match-set-options,omitempty"`
}
@@ -4357,11 +5300,16 @@ func (lhs *MatchAsPathSet) Equal(rhs *MatchAsPathSet) bool {
return true
}
-//struct for container bgp-pol:match-ext-community-set
+// struct for container bgp-pol:match-ext-community-set.
+// Match a referenced extended community-set according to the
+// logic defined in the match-set-options leaf.
type MatchExtCommunitySet struct {
// original -> bgp-pol:ext-community-set
+ // References a defined extended community set.
ExtCommunitySet string `mapstructure:"ext-community-set" json:"ext-community-set,omitempty"`
// original -> rpol:match-set-options
+ // Optional parameter that governs the behaviour of the
+ // match operation.
MatchSetOptions MatchSetOptionsType `mapstructure:"match-set-options" json:"match-set-options,omitempty"`
}
@@ -4378,11 +5326,16 @@ func (lhs *MatchExtCommunitySet) Equal(rhs *MatchExtCommunitySet) bool {
return true
}
-//struct for container bgp-pol:match-community-set
+// struct for container bgp-pol:match-community-set.
+// Match a referenced community-set according to the logic
+// defined in the match-set-options leaf.
type MatchCommunitySet struct {
// original -> bgp-pol:community-set
+ // References a defined community set.
CommunitySet string `mapstructure:"community-set" json:"community-set,omitempty"`
// original -> rpol:match-set-options
+ // Optional parameter that governs the behaviour of the
+ // match operation.
MatchSetOptions MatchSetOptionsType `mapstructure:"match-set-options" json:"match-set-options,omitempty"`
}
@@ -4399,32 +5352,57 @@ func (lhs *MatchCommunitySet) Equal(rhs *MatchCommunitySet) bool {
return true
}
-//struct for container bgp-pol:bgp-conditions
+// struct for container bgp-pol:bgp-conditions.
+// Policy conditions for matching
+// BGP-specific defined sets or comparing BGP-specific
+// attributes.
type BgpConditions struct {
// original -> bgp-pol:match-community-set
+ // Match a referenced community-set according to the logic
+ // defined in the match-set-options leaf.
MatchCommunitySet MatchCommunitySet `mapstructure:"match-community-set" json:"match-community-set,omitempty"`
// original -> bgp-pol:match-ext-community-set
+ // Match a referenced extended community-set according to the
+ // logic defined in the match-set-options leaf.
MatchExtCommunitySet MatchExtCommunitySet `mapstructure:"match-ext-community-set" json:"match-ext-community-set,omitempty"`
// original -> bgp-pol:match-as-path-set
+ // Match a referenced as-path set according to the logic
+ // defined in the match-set-options leaf.
MatchAsPathSet MatchAsPathSet `mapstructure:"match-as-path-set" json:"match-as-path-set,omitempty"`
// original -> bgp-pol:med-eq
+ // Condition to check if the received MED value is equal to
+ // the specified value.
MedEq uint32 `mapstructure:"med-eq" json:"med-eq,omitempty"`
// original -> bgp-pol:origin-eq
+ // Condition to check if the route origin is equal to the
+ // specified value.
OriginEq BgpOriginAttrType `mapstructure:"origin-eq" json:"origin-eq,omitempty"`
// original -> bgp-pol:next-hop-in
// original type is list of inet:ip-address
+ // List of next hop addresses to check for in the route
+ // update.
NextHopInList []string `mapstructure:"next-hop-in-list" json:"next-hop-in-list,omitempty"`
// original -> bgp-pol:afi-safi-in
+ // List of address families which the NLRI may be
+ // within.
AfiSafiInList []AfiSafiType `mapstructure:"afi-safi-in-list" json:"afi-safi-in-list,omitempty"`
// original -> bgp-pol:local-pref-eq
+ // Condition to check if the local pref attribute is equal to
+ // the specified value.
LocalPrefEq uint32 `mapstructure:"local-pref-eq" json:"local-pref-eq,omitempty"`
// original -> bgp-pol:community-count
+ // Value and comparison operations for conditions based on the
+ // number of communities in the route update.
CommunityCount CommunityCount `mapstructure:"community-count" json:"community-count,omitempty"`
// original -> bgp-pol:as-path-length
+ // Value and comparison operations for conditions based on the
+ // length of the AS path in the route update.
AsPathLength AsPathLength `mapstructure:"as-path-length" json:"as-path-length,omitempty"`
// original -> bgp-pol:route-type
+ // Condition to check the route type in the route update.
RouteType RouteType `mapstructure:"route-type" json:"route-type,omitempty"`
// original -> gobgp:rpki-validation-result
+ // specify the validation result of RPKI based on ROA as conditions.
RpkiValidationResult RpkiValidationResultType `mapstructure:"rpki-validation-result" json:"rpki-validation-result,omitempty"`
// original -> gobgp:match-large-community-set
MatchLargeCommunitySet MatchLargeCommunitySet `mapstructure:"match-large-community-set" json:"match-large-community-set,omitempty"`
@@ -4486,7 +5464,8 @@ func (lhs *BgpConditions) Equal(rhs *BgpConditions) bool {
return true
}
-//struct for container rpol:igp-conditions
+// struct for container rpol:igp-conditions.
+// Policy conditions for IGP attributes.
type IgpConditions struct {
}
@@ -4497,11 +5476,18 @@ func (lhs *IgpConditions) Equal(rhs *IgpConditions) bool {
return true
}
-//struct for container rpol:match-tag-set
+// struct for container rpol:match-tag-set.
+// Match a referenced tag set according to the logic defined
+// in the match-options-set leaf.
type MatchTagSet struct {
// original -> rpol:tag-set
+ // References a defined tag set.
TagSet string `mapstructure:"tag-set" json:"tag-set,omitempty"`
// original -> rpol:match-set-options
+ // Optional parameter that governs the behaviour of the
+ // match operation. This leaf only supports matching on ANY
+ // member of the set or inverting the match. Matching on ALL is
+ // not supported).
MatchSetOptions MatchSetOptionsRestrictedType `mapstructure:"match-set-options" json:"match-set-options,omitempty"`
}
@@ -4518,11 +5504,18 @@ func (lhs *MatchTagSet) Equal(rhs *MatchTagSet) bool {
return true
}
-//struct for container rpol:match-neighbor-set
+// struct for container rpol:match-neighbor-set.
+// Match a referenced neighbor set according to the logic
+// defined in the match-set-options-leaf.
type MatchNeighborSet struct {
// original -> rpol:neighbor-set
+ // References a defined neighbor set.
NeighborSet string `mapstructure:"neighbor-set" json:"neighbor-set,omitempty"`
// original -> rpol:match-set-options
+ // Optional parameter that governs the behaviour of the
+ // match operation. This leaf only supports matching on ANY
+ // member of the set or inverting the match. Matching on ALL is
+ // not supported).
MatchSetOptions MatchSetOptionsRestrictedType `mapstructure:"match-set-options" json:"match-set-options,omitempty"`
}
@@ -4539,11 +5532,18 @@ func (lhs *MatchNeighborSet) Equal(rhs *MatchNeighborSet) bool {
return true
}
-//struct for container rpol:match-prefix-set
+// struct for container rpol:match-prefix-set.
+// Match a referenced prefix-set according to the logic
+// defined in the match-set-options leaf.
type MatchPrefixSet struct {
// original -> rpol:prefix-set
+ // References a defined prefix set.
PrefixSet string `mapstructure:"prefix-set" json:"prefix-set,omitempty"`
// original -> rpol:match-set-options
+ // Optional parameter that governs the behaviour of the
+ // match operation. This leaf only supports matching on ANY
+ // member of the set or inverting the match. Matching on ALL is
+ // not supported).
MatchSetOptions MatchSetOptionsRestrictedType `mapstructure:"match-set-options" json:"match-set-options,omitempty"`
}
@@ -4560,21 +5560,46 @@ func (lhs *MatchPrefixSet) Equal(rhs *MatchPrefixSet) bool {
return true
}
-//struct for container rpol:conditions
+// struct for container rpol:conditions.
+// Condition statements for this
+// policy statement.
type Conditions struct {
// original -> rpol:call-policy
+ // Applies the statements from the specified policy
+ // definition and then returns control the current
+ // policy statement. Note that the called policy may
+ // itself call other policies (subject to
+ // implementation limitations). This is intended to
+ // provide a policy 'subroutine' capability. The
+ // called policy should contain an explicit or a
+ // default route disposition that returns an
+ // effective true (accept-route) or false
+ // (reject-route), otherwise the behavior may be
+ // ambiguous and implementation dependent.
CallPolicy string `mapstructure:"call-policy" json:"call-policy,omitempty"`
// original -> rpol:match-prefix-set
+ // Match a referenced prefix-set according to the logic
+ // defined in the match-set-options leaf.
MatchPrefixSet MatchPrefixSet `mapstructure:"match-prefix-set" json:"match-prefix-set,omitempty"`
// original -> rpol:match-neighbor-set
+ // Match a referenced neighbor set according to the logic
+ // defined in the match-set-options-leaf.
MatchNeighborSet MatchNeighborSet `mapstructure:"match-neighbor-set" json:"match-neighbor-set,omitempty"`
// original -> rpol:match-tag-set
+ // Match a referenced tag set according to the logic defined
+ // in the match-options-set leaf.
MatchTagSet MatchTagSet `mapstructure:"match-tag-set" json:"match-tag-set,omitempty"`
// original -> rpol:install-protocol-eq
+ // Condition to check the protocol / method used to install
+ // which installed the route into the local routing table.
InstallProtocolEq InstallProtocolType `mapstructure:"install-protocol-eq" json:"install-protocol-eq,omitempty"`
// original -> rpol:igp-conditions
+ // Policy conditions for IGP attributes.
IgpConditions IgpConditions `mapstructure:"igp-conditions" json:"igp-conditions,omitempty"`
// original -> bgp-pol:bgp-conditions
+ // Policy conditions for matching
+ // BGP-specific defined sets or comparing BGP-specific
+ // attributes.
BgpConditions BgpConditions `mapstructure:"bgp-conditions" json:"bgp-conditions,omitempty"`
}
@@ -4606,13 +5631,22 @@ func (lhs *Conditions) Equal(rhs *Conditions) bool {
return true
}
-//struct for container rpol:statement
+// struct for container rpol:statement.
+// Policy statements group conditions and actions
+// within a policy definition. They are evaluated in
+// the order specified (see the description of policy
+// evaluation at the top of this module.
type Statement struct {
// original -> rpol:name
+ // name of the policy statement.
Name string `mapstructure:"name" json:"name,omitempty"`
// original -> rpol:conditions
+ // Condition statements for this
+ // policy statement.
Conditions Conditions `mapstructure:"conditions" json:"conditions,omitempty"`
// original -> rpol:actions
+ // Action statements for this policy
+ // statement.
Actions Actions `mapstructure:"actions" json:"actions,omitempty"`
}
@@ -4632,11 +5666,18 @@ func (lhs *Statement) Equal(rhs *Statement) bool {
return true
}
-//struct for container rpol:policy-definition
+// struct for container rpol:policy-definition.
+// List of top-level policy definitions, keyed by unique
+// name. These policy definitions are expected to be
+// referenced (by name) in policy chains specified in import
+// or export configuration statements.
type PolicyDefinition struct {
// original -> rpol:name
+ // Name of the top-level policy definition -- this name
+ // is used in references to the current policy.
Name string `mapstructure:"name" json:"name,omitempty"`
// original -> rpol:statements
+ // Enclosing container for policy statements.
Statements []Statement `mapstructure:"statements" json:"statements,omitempty"`
}
@@ -4666,11 +5707,12 @@ func (lhs *PolicyDefinition) Equal(rhs *PolicyDefinition) bool {
return true
}
-//struct for container gobgp:large-community-set
+// struct for container gobgp:large-community-set.
type LargeCommunitySet struct {
// original -> gobgp:large-community-set-name
LargeCommunitySetName string `mapstructure:"large-community-set-name" json:"large-community-set-name,omitempty"`
// original -> gobgp:large-community
+ // extended community set member.
LargeCommunityList []string `mapstructure:"large-community-list" json:"large-community-list,omitempty"`
}
@@ -4692,11 +5734,15 @@ func (lhs *LargeCommunitySet) Equal(rhs *LargeCommunitySet) bool {
return true
}
-//struct for container bgp-pol:as-path-set
+// struct for container bgp-pol:as-path-set.
+// Definitions for AS path sets.
type AsPathSet struct {
// original -> bgp-pol:as-path-set-name
+ // name of the AS path set -- this is used to reference
+ // the set in match conditions.
AsPathSetName string `mapstructure:"as-path-set-name" json:"as-path-set-name,omitempty"`
// original -> gobgp:as-path
+ // AS path expression.
AsPathList []string `mapstructure:"as-path-list" json:"as-path-list,omitempty"`
}
@@ -4718,11 +5764,15 @@ func (lhs *AsPathSet) Equal(rhs *AsPathSet) bool {
return true
}
-//struct for container bgp-pol:ext-community-set
+// struct for container bgp-pol:ext-community-set.
+// Definitions for extended community sets.
type ExtCommunitySet struct {
// original -> bgp-pol:ext-community-set-name
+ // name / label of the extended community set -- this is
+ // used to reference the set in match conditions.
ExtCommunitySetName string `mapstructure:"ext-community-set-name" json:"ext-community-set-name,omitempty"`
// original -> gobgp:ext-community
+ // extended community set member.
ExtCommunityList []string `mapstructure:"ext-community-list" json:"ext-community-list,omitempty"`
}
@@ -4744,11 +5794,15 @@ func (lhs *ExtCommunitySet) Equal(rhs *ExtCommunitySet) bool {
return true
}
-//struct for container bgp-pol:community-set
+// struct for container bgp-pol:community-set.
+// Definitions for community sets.
type CommunitySet struct {
// original -> bgp-pol:community-set-name
+ // name / label of the community set -- this is used to
+ // reference the set in match conditions.
CommunitySetName string `mapstructure:"community-set-name" json:"community-set-name,omitempty"`
// original -> gobgp:community
+ // community set member.
CommunityList []string `mapstructure:"community-list" json:"community-list,omitempty"`
}
@@ -4770,13 +5824,17 @@ func (lhs *CommunitySet) Equal(rhs *CommunitySet) bool {
return true
}
-//struct for container bgp-pol:bgp-defined-sets
+// struct for container bgp-pol:bgp-defined-sets.
+// BGP-related set definitions for policy match conditions.
type BgpDefinedSets struct {
// original -> bgp-pol:community-sets
+ // Enclosing container for community sets.
CommunitySets []CommunitySet `mapstructure:"community-sets" json:"community-sets,omitempty"`
// original -> bgp-pol:ext-community-sets
+ // Enclosing container for extended community sets.
ExtCommunitySets []ExtCommunitySet `mapstructure:"ext-community-sets" json:"ext-community-sets,omitempty"`
// original -> bgp-pol:as-path-sets
+ // Enclosing container for AS path sets.
AsPathSets []AsPathSet `mapstructure:"as-path-sets" json:"as-path-sets,omitempty"`
// original -> gobgp:large-community-sets
LargeCommunitySets []LargeCommunitySet `mapstructure:"large-community-sets" json:"large-community-sets,omitempty"`
@@ -4853,9 +5911,11 @@ func (lhs *BgpDefinedSets) Equal(rhs *BgpDefinedSets) bool {
return true
}
-//struct for container rpol:tag
+// struct for container rpol:tag.
+// list of tags that are part of the tag set.
type Tag struct {
// original -> rpol:value
+ // Value of the tag set member.
Value TagType `mapstructure:"value" json:"value,omitempty"`
}
@@ -4869,11 +5929,15 @@ func (lhs *Tag) Equal(rhs *Tag) bool {
return true
}
-//struct for container rpol:tag-set
+// struct for container rpol:tag-set.
+// Definitions for tag sets.
type TagSet struct {
// original -> rpol:tag-set-name
+ // name / label of the tag set -- this is used to reference
+ // the set in match conditions.
TagSetName string `mapstructure:"tag-set-name" json:"tag-set-name,omitempty"`
// original -> rpol:tag
+ // list of tags that are part of the tag set.
TagList []Tag `mapstructure:"tag-list" json:"tag-list,omitempty"`
}
@@ -4903,12 +5967,16 @@ func (lhs *TagSet) Equal(rhs *TagSet) bool {
return true
}
-//struct for container rpol:neighbor-set
+// struct for container rpol:neighbor-set.
+// Definitions for neighbor sets.
type NeighborSet struct {
// original -> rpol:neighbor-set-name
+ // name / label of the neighbor set -- this is used to
+ // reference the set in match conditions.
NeighborSetName string `mapstructure:"neighbor-set-name" json:"neighbor-set-name,omitempty"`
// original -> gobgp:neighbor-info
// original type is list of inet:ip-address
+ // neighbor ip address.
NeighborInfoList []string `mapstructure:"neighbor-info-list" json:"neighbor-info-list,omitempty"`
}
@@ -4930,12 +5998,28 @@ func (lhs *NeighborSet) Equal(rhs *NeighborSet) bool {
return true
}
-//struct for container rpol:prefix
+// struct for container rpol:prefix.
+// List of prefix expressions that are part of the set.
type Prefix struct {
// original -> rpol:ip-prefix
- //rpol:ip-prefix's original type is inet:ip-prefix
+ // rpol:ip-prefix's original type is inet:ip-prefix.
+ // The prefix member in CIDR notation -- while the
+ // prefix may be either IPv4 or IPv6, most
+ // implementations require all members of the prefix set
+ // to be the same address family. Mixing address types in
+ // the same prefix set is likely to cause an error.
IpPrefix string `mapstructure:"ip-prefix" json:"ip-prefix,omitempty"`
// original -> rpol:masklength-range
+ // Defines a range for the masklength, or 'exact' if
+ // the prefix has an exact length.
+ //
+ // Example: 10.3.192.0/21 through 10.3.192.0/24 would be
+ // expressed as prefix: 10.3.192.0/21,
+ // masklength-range: 21..24.
+ //
+ // Example: 10.3.192.0/21 would be expressed as
+ // prefix: 10.3.192.0/21,
+ // masklength-range: exact.
MasklengthRange string `mapstructure:"masklength-range" json:"masklength-range,omitempty"`
}
@@ -4952,11 +6036,15 @@ func (lhs *Prefix) Equal(rhs *Prefix) bool {
return true
}
-//struct for container rpol:prefix-set
+// struct for container rpol:prefix-set.
+// List of the defined prefix sets.
type PrefixSet struct {
// original -> rpol:prefix-set-name
+ // name / label of the prefix set -- this is used to
+ // reference the set in match conditions.
PrefixSetName string `mapstructure:"prefix-set-name" json:"prefix-set-name,omitempty"`
// original -> rpol:prefix
+ // List of prefix expressions that are part of the set.
PrefixList []Prefix `mapstructure:"prefix-list" json:"prefix-list,omitempty"`
}
@@ -4986,15 +6074,21 @@ func (lhs *PrefixSet) Equal(rhs *PrefixSet) bool {
return true
}
-//struct for container rpol:defined-sets
+// struct for container rpol:defined-sets.
+// Predefined sets of attributes used in policy match
+// statements.
type DefinedSets struct {
// original -> rpol:prefix-sets
+ // Enclosing container for defined prefix sets for matching.
PrefixSets []PrefixSet `mapstructure:"prefix-sets" json:"prefix-sets,omitempty"`
// original -> rpol:neighbor-sets
+ // Enclosing container for defined neighbor sets for matching.
NeighborSets []NeighborSet `mapstructure:"neighbor-sets" json:"neighbor-sets,omitempty"`
// original -> rpol:tag-sets
+ // Enclosing container for defined tag sets for matching.
TagSets []TagSet `mapstructure:"tag-sets" json:"tag-sets,omitempty"`
// original -> bgp-pol:bgp-defined-sets
+ // BGP-related set definitions for policy match conditions.
BgpDefinedSets BgpDefinedSets `mapstructure:"bgp-defined-sets" json:"bgp-defined-sets,omitempty"`
}
@@ -5056,11 +6150,16 @@ func (lhs *DefinedSets) Equal(rhs *DefinedSets) bool {
return true
}
-//struct for container rpol:routing-policy
+// struct for container rpol:routing-policy.
+// top-level container for all routing policy configuration.
type RoutingPolicy struct {
// original -> rpol:defined-sets
+ // Predefined sets of attributes used in policy match
+ // statements.
DefinedSets DefinedSets `mapstructure:"defined-sets" json:"defined-sets,omitempty"`
// original -> rpol:policy-definitions
+ // Enclosing container for the list of top-level policy
+ // definitions.
PolicyDefinitions []PolicyDefinition `mapstructure:"policy-definitions" json:"policy-definitions,omitempty"`
}
diff --git a/tools/pyang_plugins/bgpyang2golang.py b/tools/pyang_plugins/bgpyang2golang.py
index d86acb77..aa0e2c35 100644
--- a/tools/pyang_plugins/bgpyang2golang.py
+++ b/tools/pyang_plugins/bgpyang2golang.py
@@ -139,7 +139,8 @@ def emit_class_def(ctx, stmt, struct_name, prefix, fd):
if len(stmt.i_children) == 1 and is_list(stmt.i_children[0]):
return
- print('// struct for container %s:%s' % (prefix, stmt.arg), file=fd)
+ print('// struct for container %s:%s.' % (prefix, stmt.arg), file=fd)
+ emit_description(stmt, fd)
print('type %s struct {' % convert_to_golang(struct_name), file=fd)
equal_elems = []
@@ -155,7 +156,7 @@ def emit_class_def(ctx, stmt, struct_name, prefix, fd):
tag_name = child.uniq_name.lower()
equal_type = EQUAL_TYPE_LEAF
equal_data = None
- print(' // original -> %s:%s' % (child_prefix, container_or_list_name), file=fd)
+ print('// original -> %s:%s' % (child_prefix, container_or_list_name), file=fd)
# case leaf
if is_leaf(child):
@@ -172,7 +173,7 @@ def emit_class_def(ctx, stmt, struct_name, prefix, fd):
continue
t = dig_leafref(type_obj)
if is_translation_required(t):
- print(' //%s:%s\'s original type is %s' % (child_prefix, container_or_list_name, t.arg), file=fd)
+ print('// %s:%s\'s original type is %s.' % (child_prefix, container_or_list_name, t.arg), file=fd)
emit_type_name = translate_type(t.arg)
elif is_identityref(t):
emit_type_name = convert_to_golang(t.search_one('base').arg.split(':')[-1])
@@ -185,7 +186,7 @@ def emit_class_def(ctx, stmt, struct_name, prefix, fd):
# case translation required
elif is_translation_required(type_obj):
- print(' //%s:%s\'s original type is %s' % (child_prefix, container_or_list_name, type_name), file=fd)
+ print('// %s:%s\'s original type is %s.' % (child_prefix, container_or_list_name, type_name), file=fd)
emit_type_name = translate_type(type_name)
# case other primitives
@@ -225,7 +226,7 @@ def emit_class_def(ctx, stmt, struct_name, prefix, fd):
# case translation required
elif is_translation_required(type_obj):
- print(' // original type is list of %s' % type_obj.arg, file=fd)
+ print('// original type is list of %s' % type_obj.arg, file=fd)
emit_type_name = '[]'+translate_type(type_name)
# case other primitives
@@ -274,6 +275,7 @@ def emit_class_def(ctx, stmt, struct_name, prefix, fd):
tag_name = 'state'
val_name_go = 'State'
+ emit_description(child, fd=fd)
print(' {0}\t{1} `mapstructure:"{2}" json:"{2},omitempty"`'.format(val_name_go, emit_type_name, tag_name), file=fd)
equal_elems.append((val_name_go, emit_type_name, equal_type, equal_data))
@@ -507,10 +509,19 @@ def lookup(basemap, default_prefix, key):
return key
+def emit_description(stmt, fd):
+ desc = stmt.search_one('description')
+ if desc is None:
+ return None
+ desc_words = desc.arg if desc.arg.endswith('.') else desc.arg + '.'
+ print('// %s' % desc_words.replace('\n', '\n// '), file=fd)
+
+
def emit_enum(prefix, name, stmt, substmts, fd):
type_name_org = name
type_name = stmt.golang_name
- print('// typedef for identity %s:%s' % (prefix, type_name_org), file=fd)
+ print('// typedef for identity %s:%s.' % (prefix, type_name_org), file=fd)
+ emit_description(stmt, fd)
print('type %s string' % type_name, file=fd)
const_prefix = convert_const_prefix(type_name_org)
@@ -596,22 +607,26 @@ def emit_typedef(ctx, mod, fd):
elif is_enum(t):
emit_enum(prefix, type_name_org, stmt, t.substmts, fd)
elif is_union(t):
- print('// typedef for typedef %s:%s' % (prefix, type_name_org), file=fd)
+ print('// typedef for typedef %s:%s.' % (prefix, type_name_org), file=fd)
+ emit_description(t, fd)
print('type %s string' % type_name, file=fd)
else:
if is_leafref(t):
t = dig_leafref(t)
- print('// typedef for typedef %s:%s' % (prefix, type_name_org), file=fd)
+ print('// typedef for typedef %s:%s.' % (prefix, type_name_org), file=fd)
if is_builtin_type(t):
+ emit_description(t, fd)
print('type %s %s' % (type_name, t.arg), file=fd)
elif is_translation_required(t):
- print(' //%s:%s\'s original type is %s' % (prefix, name, t.arg), file=fd)
+ print('// %s:%s\'s original type is %s.' % (prefix, name, t.arg), file=fd)
+ emit_description(t, fd)
print('type %s %s' % (type_name, translate_type(t.arg)), file=fd)
else:
m = ctx.golang_typedef_map
for k in t.arg.split(':'):
m = m[k]
+ emit_description(t, fd)
print('type %s %s' % (type_name, m.golang_name), file=fd)