// DO NOT EDIT // generated by pyang using OpenConfig https://github.com/openconfig/public // // Copyright (C) 2014-2016 Nippon Telegraph and Telephone Corporation. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // implied. // See the License for the specific language governing permissions and // limitations under the License. package config import ( "fmt" "github.com/osrg/gobgp/packet/bgp" ) func mapkey(index int, name string) string { if name != "" { return name } return fmt.Sprintf("%v", index) } // typedef for typedef openconfig-types:std-regexp type StdRegexp string // typedef for typedef openconfig-types:percentage type Percentage uint8 // typedef for typedef bgp-types:rr-cluster-id-type type RrClusterIdType string // typedef for identity bgp-types:remove-private-as-option type RemovePrivateAsOption string const ( REMOVE_PRIVATE_AS_OPTION_ALL RemovePrivateAsOption = "all" REMOVE_PRIVATE_AS_OPTION_REPLACE RemovePrivateAsOption = "replace" ) var RemovePrivateAsOptionToIntMap = map[RemovePrivateAsOption]int{ REMOVE_PRIVATE_AS_OPTION_ALL: 0, REMOVE_PRIVATE_AS_OPTION_REPLACE: 1, } func (v RemovePrivateAsOption) ToInt() int { i, ok := RemovePrivateAsOptionToIntMap[v] if !ok { return -1 } return i } var IntToRemovePrivateAsOptionMap = map[int]RemovePrivateAsOption{ 0: REMOVE_PRIVATE_AS_OPTION_ALL, 1: REMOVE_PRIVATE_AS_OPTION_REPLACE, } func (v RemovePrivateAsOption) Validate() error { if _, ok := RemovePrivateAsOptionToIntMap[v]; !ok { return fmt.Errorf("invalid RemovePrivateAsOption: %s", v) } return nil } // typedef for typedef bgp-types:bgp-community-regexp-type type BgpCommunityRegexpType StdRegexp // typedef for identity bgp-types:community-type type CommunityType string const ( COMMUNITY_TYPE_STANDARD CommunityType = "standard" COMMUNITY_TYPE_EXTENDED CommunityType = "extended" COMMUNITY_TYPE_BOTH CommunityType = "both" COMMUNITY_TYPE_NONE CommunityType = "none" ) var CommunityTypeToIntMap = map[CommunityType]int{ COMMUNITY_TYPE_STANDARD: 0, COMMUNITY_TYPE_EXTENDED: 1, COMMUNITY_TYPE_BOTH: 2, COMMUNITY_TYPE_NONE: 3, } func (v CommunityType) ToInt() int { i, ok := CommunityTypeToIntMap[v] if !ok { return -1 } return i } var IntToCommunityTypeMap = map[int]CommunityType{ 0: COMMUNITY_TYPE_STANDARD, 1: COMMUNITY_TYPE_EXTENDED, 2: COMMUNITY_TYPE_BOTH, 3: COMMUNITY_TYPE_NONE, } func (v CommunityType) Validate() error { if _, ok := CommunityTypeToIntMap[v]; !ok { return fmt.Errorf("invalid CommunityType: %s", v) } return nil } // typedef for typedef bgp-types:bgp-ext-community-type type BgpExtCommunityType string // typedef for typedef bgp-types:bgp-std-community-type type BgpStdCommunityType string // typedef for identity bgp-types:peer-type type PeerType string const ( PEER_TYPE_INTERNAL PeerType = "internal" PEER_TYPE_EXTERNAL PeerType = "external" ) var PeerTypeToIntMap = map[PeerType]int{ PEER_TYPE_INTERNAL: 0, PEER_TYPE_EXTERNAL: 1, } func (v PeerType) ToInt() int { i, ok := PeerTypeToIntMap[v] if !ok { return -1 } return i } var IntToPeerTypeMap = map[int]PeerType{ 0: PEER_TYPE_INTERNAL, 1: PEER_TYPE_EXTERNAL, } func (v PeerType) Validate() error { if _, ok := PeerTypeToIntMap[v]; !ok { return fmt.Errorf("invalid PeerType: %s", v) } return nil } // typedef for identity bgp-types:bgp-session-direction type BgpSessionDirection string const ( BGP_SESSION_DIRECTION_INBOUND BgpSessionDirection = "inbound" BGP_SESSION_DIRECTION_OUTBOUND BgpSessionDirection = "outbound" ) var BgpSessionDirectionToIntMap = map[BgpSessionDirection]int{ BGP_SESSION_DIRECTION_INBOUND: 0, BGP_SESSION_DIRECTION_OUTBOUND: 1, } func (v BgpSessionDirection) ToInt() int { i, ok := BgpSessionDirectionToIntMap[v] if !ok { return -1 } return i } var IntToBgpSessionDirectionMap = map[int]BgpSessionDirection{ 0: BGP_SESSION_DIRECTION_INBOUND, 1: BGP_SESSION_DIRECTION_OUTBOUND, } func (v BgpSessionDirection) Validate() error { if _, ok := BgpSessionDirectionToIntMap[v]; !ok { return fmt.Errorf("invalid BgpSessionDirection: %s", v) } return nil } // typedef for identity bgp-types:bgp-origin-attr-type type BgpOriginAttrType string const ( BGP_ORIGIN_ATTR_TYPE_IGP BgpOriginAttrType = "igp" BGP_ORIGIN_ATTR_TYPE_EGP BgpOriginAttrType = "egp" BGP_ORIGIN_ATTR_TYPE_INCOMPLETE BgpOriginAttrType = "incomplete" ) var BgpOriginAttrTypeToIntMap = map[BgpOriginAttrType]int{ BGP_ORIGIN_ATTR_TYPE_IGP: 0, BGP_ORIGIN_ATTR_TYPE_EGP: 1, BGP_ORIGIN_ATTR_TYPE_INCOMPLETE: 2, } func (v BgpOriginAttrType) ToInt() int { i, ok := BgpOriginAttrTypeToIntMap[v] if !ok { return -1 } return i } var IntToBgpOriginAttrTypeMap = map[int]BgpOriginAttrType{ 0: BGP_ORIGIN_ATTR_TYPE_IGP, 1: BGP_ORIGIN_ATTR_TYPE_EGP, 2: BGP_ORIGIN_ATTR_TYPE_INCOMPLETE, } func (v BgpOriginAttrType) Validate() error { if _, ok := BgpOriginAttrTypeToIntMap[v]; !ok { return fmt.Errorf("invalid BgpOriginAttrType: %s", v) } return nil } // typedef for identity bgp-types:afi-safi-type type AfiSafiType string const ( AFI_SAFI_TYPE_IPV4_UNICAST AfiSafiType = "ipv4-unicast" AFI_SAFI_TYPE_IPV6_UNICAST AfiSafiType = "ipv6-unicast" AFI_SAFI_TYPE_IPV4_LABELLED_UNICAST AfiSafiType = "ipv4-labelled-unicast" AFI_SAFI_TYPE_IPV6_LABELLED_UNICAST AfiSafiType = "ipv6-labelled-unicast" AFI_SAFI_TYPE_L3VPN_IPV4_UNICAST AfiSafiType = "l3vpn-ipv4-unicast" AFI_SAFI_TYPE_L3VPN_IPV6_UNICAST AfiSafiType = "l3vpn-ipv6-unicast" AFI_SAFI_TYPE_L3VPN_IPV4_MULTICAST AfiSafiType = "l3vpn-ipv4-multicast" AFI_SAFI_TYPE_L3VPN_IPV6_MULTICAST AfiSafiType = "l3vpn-ipv6-multicast" AFI_SAFI_TYPE_L2VPN_VPLS AfiSafiType = "l2vpn-vpls" AFI_SAFI_TYPE_L2VPN_EVPN AfiSafiType = "l2vpn-evpn" AFI_SAFI_TYPE_IPV4_MULTICAST AfiSafiType = "ipv4-multicast" AFI_SAFI_TYPE_IPV6_MULTICAST AfiSafiType = "ipv6-multicast" AFI_SAFI_TYPE_RTC AfiSafiType = "rtc" AFI_SAFI_TYPE_IPV4_ENCAP AfiSafiType = "ipv4-encap" AFI_SAFI_TYPE_IPV6_ENCAP AfiSafiType = "ipv6-encap" AFI_SAFI_TYPE_IPV4_FLOWSPEC AfiSafiType = "ipv4-flowspec" AFI_SAFI_TYPE_L3VPN_IPV4_FLOWSPEC AfiSafiType = "l3vpn-ipv4-flowspec" AFI_SAFI_TYPE_IPV6_FLOWSPEC AfiSafiType = "ipv6-flowspec" AFI_SAFI_TYPE_L3VPN_IPV6_FLOWSPEC AfiSafiType = "l3vpn-ipv6-flowspec" AFI_SAFI_TYPE_L2VPN_FLOWSPEC AfiSafiType = "l2vpn-flowspec" AFI_SAFI_TYPE_OPAQUE AfiSafiType = "opaque" ) var AfiSafiTypeToIntMap = map[AfiSafiType]int{ AFI_SAFI_TYPE_IPV4_UNICAST: 0, AFI_SAFI_TYPE_IPV6_UNICAST: 1, AFI_SAFI_TYPE_IPV4_LABELLED_UNICAST: 2, AFI_SAFI_TYPE_IPV6_LABELLED_UNICAST: 3, AFI_SAFI_TYPE_L3VPN_IPV4_UNICAST: 4, AFI_SAFI_TYPE_L3VPN_IPV6_UNICAST: 5, AFI_SAFI_TYPE_L3VPN_IPV4_MULTICAST: 6, AFI_SAFI_TYPE_L3VPN_IPV6_MULTICAST: 7, AFI_SAFI_TYPE_L2VPN_VPLS: 8, AFI_SAFI_TYPE_L2VPN_EVPN: 9, AFI_SAFI_TYPE_IPV4_MULTICAST: 10, AFI_SAFI_TYPE_IPV6_MULTICAST: 11, AFI_SAFI_TYPE_RTC: 12, AFI_SAFI_TYPE_IPV4_ENCAP: 13, AFI_SAFI_TYPE_IPV6_ENCAP: 14, AFI_SAFI_TYPE_IPV4_FLOWSPEC: 15, AFI_SAFI_TYPE_L3VPN_IPV4_FLOWSPEC: 16, AFI_SAFI_TYPE_IPV6_FLOWSPEC: 17, AFI_SAFI_TYPE_L3VPN_IPV6_FLOWSPEC: 18, AFI_SAFI_TYPE_L2VPN_FLOWSPEC: 19, AFI_SAFI_TYPE_OPAQUE: 20, } func (v AfiSafiType) ToInt() int { i, ok := AfiSafiTypeToIntMap[v] if !ok { return -1 } return i } var IntToAfiSafiTypeMap = map[int]AfiSafiType{ 0: AFI_SAFI_TYPE_IPV4_UNICAST, 1: AFI_SAFI_TYPE_IPV6_UNICAST, 2: AFI_SAFI_TYPE_IPV4_LABELLED_UNICAST, 3: AFI_SAFI_TYPE_IPV6_LABELLED_UNICAST, 4: AFI_SAFI_TYPE_L3VPN_IPV4_UNICAST, 5: AFI_SAFI_TYPE_L3VPN_IPV6_UNICAST, 6: AFI_SAFI_TYPE_L3VPN_IPV4_MULTICAST, 7: AFI_SAFI_TYPE_L3VPN_IPV6_MULTICAST, 8: AFI_SAFI_TYPE_L2VPN_VPLS, 9: AFI_SAFI_TYPE_L2VPN_EVPN, 10: AFI_SAFI_TYPE_IPV4_MULTICAST, 11: AFI_SAFI_TYPE_IPV6_MULTICAST, 12: AFI_SAFI_TYPE_RTC, 13: AFI_SAFI_TYPE_IPV4_ENCAP, 14: AFI_SAFI_TYPE_IPV6_ENCAP, 15: AFI_SAFI_TYPE_IPV4_FLOWSPEC, 16: AFI_SAFI_TYPE_L3VPN_IPV4_FLOWSPEC, 17: AFI_SAFI_TYPE_IPV6_FLOWSPEC, 18: AFI_SAFI_TYPE_L3VPN_IPV6_FLOWSPEC, 19: AFI_SAFI_TYPE_L2VPN_FLOWSPEC, 20: AFI_SAFI_TYPE_OPAQUE, } func (v AfiSafiType) Validate() error { if _, ok := AfiSafiTypeToIntMap[v]; !ok { return fmt.Errorf("invalid AfiSafiType: %s", v) } return nil } // typedef for identity bgp-types:bgp-capability type BgpCapability string const ( BGP_CAPABILITY_MPBGP BgpCapability = "mpbgp" BGP_CAPABILITY_ROUTE_REFRESH BgpCapability = "route-refresh" BGP_CAPABILITY_ASN32 BgpCapability = "asn32" BGP_CAPABILITY_GRACEFUL_RESTART BgpCapability = "graceful-restart" BGP_CAPABILITY_ADD_PATHS BgpCapability = "add-paths" ) var BgpCapabilityToIntMap = map[BgpCapability]int{ BGP_CAPABILITY_MPBGP: 0, BGP_CAPABILITY_ROUTE_REFRESH: 1, BGP_CAPABILITY_ASN32: 2, BGP_CAPABILITY_GRACEFUL_RESTART: 3, BGP_CAPABILITY_ADD_PATHS: 4, } func (v BgpCapability) ToInt() int { i, ok := BgpCapabilityToIntMap[v] if !ok { return -1 } return i } var IntToBgpCapabilityMap = map[int]BgpCapability{ 0: BGP_CAPABILITY_MPBGP, 1: BGP_CAPABILITY_ROUTE_REFRESH, 2: BGP_CAPABILITY_ASN32, 3: BGP_CAPABILITY_GRACEFUL_RESTART, 4: BGP_CAPABILITY_ADD_PATHS, } func (v BgpCapability) Validate() error { if _, ok := BgpCapabilityToIntMap[v]; !ok { return fmt.Errorf("invalid BgpCapability: %s", v) } return nil } // typedef for identity bgp-types:bgp-well-known-std-community type BgpWellKnownStdCommunity string const ( BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT BgpWellKnownStdCommunity = "no_export" BGP_WELL_KNOWN_STD_COMMUNITY_NO_ADVERTISE BgpWellKnownStdCommunity = "no_advertise" BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT_SUBCONFED BgpWellKnownStdCommunity = "no_export_subconfed" BGP_WELL_KNOWN_STD_COMMUNITY_NOPEER BgpWellKnownStdCommunity = "nopeer" ) var BgpWellKnownStdCommunityToIntMap = map[BgpWellKnownStdCommunity]int{ BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT: 0, BGP_WELL_KNOWN_STD_COMMUNITY_NO_ADVERTISE: 1, BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT_SUBCONFED: 2, BGP_WELL_KNOWN_STD_COMMUNITY_NOPEER: 3, } func (v BgpWellKnownStdCommunity) ToInt() int { i, ok := BgpWellKnownStdCommunityToIntMap[v] if !ok { return -1 } return i } var IntToBgpWellKnownStdCommunityMap = map[int]BgpWellKnownStdCommunity{ 0: BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT, 1: BGP_WELL_KNOWN_STD_COMMUNITY_NO_ADVERTISE, 2: BGP_WELL_KNOWN_STD_COMMUNITY_NO_EXPORT_SUBCONFED, 3: BGP_WELL_KNOWN_STD_COMMUNITY_NOPEER, } func (v BgpWellKnownStdCommunity) Validate() error { if _, ok := BgpWellKnownStdCommunityToIntMap[v]; !ok { return fmt.Errorf("invalid BgpWellKnownStdCommunity: %s", v) } return nil } // typedef for identity ptypes:match-set-options-restricted-type type MatchSetOptionsRestrictedType string const ( MATCH_SET_OPTIONS_RESTRICTED_TYPE_ANY MatchSetOptionsRestrictedType = "any" MATCH_SET_OPTIONS_RESTRICTED_TYPE_INVERT MatchSetOptionsRestrictedType = "invert" ) var MatchSetOptionsRestrictedTypeToIntMap = map[MatchSetOptionsRestrictedType]int{ MATCH_SET_OPTIONS_RESTRICTED_TYPE_ANY: 0, MATCH_SET_OPTIONS_RESTRICTED_TYPE_INVERT: 1, } func (v MatchSetOptionsRestrictedType) ToInt() int { i, ok := MatchSetOptionsRestrictedTypeToIntMap[v] if !ok { return -1 } return i } var IntToMatchSetOptionsRestrictedTypeMap = map[int]MatchSetOptionsRestrictedType{ 0: MATCH_SET_OPTIONS_RESTRICTED_TYPE_ANY, 1: MATCH_SET_OPTIONS_RESTRICTED_TYPE_INVERT, } func (v MatchSetOptionsRestrictedType) Validate() error { if _, ok := MatchSetOptionsRestrictedTypeToIntMap[v]; !ok { return fmt.Errorf("invalid MatchSetOptionsRestrictedType: %s", v) } return nil } func (v MatchSetOptionsRestrictedType) Default() MatchSetOptionsRestrictedType { return MATCH_SET_OPTIONS_RESTRICTED_TYPE_ANY } func (v MatchSetOptionsRestrictedType) DefaultAsNeeded() MatchSetOptionsRestrictedType { if string(v) == "" { return v.Default() } return v } // typedef for identity ptypes:match-set-options-type type MatchSetOptionsType string const ( MATCH_SET_OPTIONS_TYPE_ANY MatchSetOptionsType = "any" MATCH_SET_OPTIONS_TYPE_ALL MatchSetOptionsType = "all" MATCH_SET_OPTIONS_TYPE_INVERT MatchSetOptionsType = "invert" ) var MatchSetOptionsTypeToIntMap = map[MatchSetOptionsType]int{ MATCH_SET_OPTIONS_TYPE_ANY: 0, MATCH_SET_OPTIONS_TYPE_ALL: 1, MATCH_SET_OPTIONS_TYPE_INVERT: 2, } func (v MatchSetOptionsType) ToInt() int { i, ok := MatchSetOptionsTypeToIntMap[v] if !ok { return -1 } return i } var IntToMatchSetOptionsTypeMap = map[int]MatchSetOptionsType{ 0: MATCH_SET_OPTIONS_TYPE_ANY, 1: MATCH_SET_OPTIONS_TYPE_ALL, 2: MATCH_SET_OPTIONS_TYPE_INVERT, } func (v MatchSetOptionsType) Validate() error { if _, ok := MatchSetOptionsTypeToIntMap[v]; !ok { return fmt.Errorf("invalid MatchSetOptionsType: %s", v) } return nil } func (v MatchSetOptionsType) Default() MatchSetOptionsType { return MATCH_SET_OPTIONS_TYPE_ANY } func (v MatchSetOptionsType) DefaultAsNeeded() MatchSetOptionsType { if string(v) == "" { return v.Default() } return v } // typedef for typedef ptypes:tag-type type TagType string // typedef for identity ptypes:install-protocol-type type InstallProtocolType string const ( INSTALL_PROTOCOL_TYPE_BGP InstallProtocolType = "bgp" INSTALL_PROTOCOL_TYPE_ISIS InstallProtocolType = "isis" INSTALL_PROTOCOL_TYPE_OSPF InstallProtocolType = "ospf" INSTALL_PROTOCOL_TYPE_OSPF3 InstallProtocolType = "ospf3" INSTALL_PROTOCOL_TYPE_STATIC InstallProtocolType = "static" INSTALL_PROTOCOL_TYPE_DIRECTLY_CONNECTED InstallProtocolType = "directly-connected" INSTALL_PROTOCOL_TYPE_LOCAL_AGGREGATE InstallProtocolType = "local-aggregate" ) var InstallProtocolTypeToIntMap = map[InstallProtocolType]int{ INSTALL_PROTOCOL_TYPE_BGP: 0, INSTALL_PROTOCOL_TYPE_ISIS: 1, INSTALL_PROTOCOL_TYPE_OSPF: 2, INSTALL_PROTOCOL_TYPE_OSPF3: 3, INSTALL_PROTOCOL_TYPE_STATIC: 4, INSTALL_PROTOCOL_TYPE_DIRECTLY_CONNECTED: 5, INSTALL_PROTOCOL_TYPE_LOCAL_AGGREGATE: 6, } func (v InstallProtocolType) ToInt() int { i, ok := InstallProtocolTypeToIntMap[v] if !ok { return -1 } return i } var IntToInstallProtocolTypeMap = map[int]InstallProtocolType{ 0: INSTALL_PROTOCOL_TYPE_BGP, 1: INSTALL_PROTOCOL_TYPE_ISIS, 2: INSTALL_PROTOCOL_TYPE_OSPF, 3: INSTALL_PROTOCOL_TYPE_OSPF3, 4: INSTALL_PROTOCOL_TYPE_STATIC, 5: INSTALL_PROTOCOL_TYPE_DIRECTLY_CONNECTED, 6: INSTALL_PROTOCOL_TYPE_LOCAL_AGGREGATE, } func (v InstallProtocolType) Validate() error { if _, ok := InstallProtocolTypeToIntMap[v]; !ok { return fmt.Errorf("invalid InstallProtocolType: %s", v) } return nil } // typedef for identity ptypes:attribute-comparison type AttributeComparison string const ( ATTRIBUTE_COMPARISON_ATTRIBUTE_EQ AttributeComparison = "attribute-eq" ATTRIBUTE_COMPARISON_ATTRIBUTE_GE AttributeComparison = "attribute-ge" ATTRIBUTE_COMPARISON_ATTRIBUTE_LE AttributeComparison = "attribute-le" ATTRIBUTE_COMPARISON_EQ AttributeComparison = "eq" ATTRIBUTE_COMPARISON_GE AttributeComparison = "ge" ATTRIBUTE_COMPARISON_LE AttributeComparison = "le" ) var AttributeComparisonToIntMap = map[AttributeComparison]int{ ATTRIBUTE_COMPARISON_ATTRIBUTE_EQ: 0, ATTRIBUTE_COMPARISON_ATTRIBUTE_GE: 1, ATTRIBUTE_COMPARISON_ATTRIBUTE_LE: 2, ATTRIBUTE_COMPARISON_EQ: 3, ATTRIBUTE_COMPARISON_GE: 4, ATTRIBUTE_COMPARISON_LE: 5, } func (v AttributeComparison) ToInt() int { i, ok := AttributeComparisonToIntMap[v] if !ok { return -1 } return i } var IntToAttributeComparisonMap = map[int]AttributeComparison{ 0: ATTRIBUTE_COMPARISON_ATTRIBUTE_EQ, 1: ATTRIBUTE_COMPARISON_ATTRIBUTE_GE, 2: ATTRIBUTE_COMPARISON_ATTRIBUTE_LE, 3: ATTRIBUTE_COMPARISON_EQ, 4: ATTRIBUTE_COMPARISON_GE, 5: ATTRIBUTE_COMPARISON_LE, } func (v AttributeComparison) Validate() error { if _, ok := AttributeComparisonToIntMap[v]; !ok { return fmt.Errorf("invalid AttributeComparison: %s", v) } return nil } // typedef for identity rpol:route-disposition type RouteDisposition string const ( ROUTE_DISPOSITION_NONE RouteDisposition = "none" ROUTE_DISPOSITION_ACCEPT_ROUTE RouteDisposition = "accept-route" ROUTE_DISPOSITION_REJECT_ROUTE RouteDisposition = "reject-route" ) var RouteDispositionToIntMap = map[RouteDisposition]int{ ROUTE_DISPOSITION_NONE: 0, ROUTE_DISPOSITION_ACCEPT_ROUTE: 1, ROUTE_DISPOSITION_REJECT_ROUTE: 2, } func (v RouteDisposition) ToInt() int { i, ok := RouteDispositionToIntMap[v] if !ok { return -1 } return i } var IntToRouteDispositionMap = map[int]RouteDisposition{ 0: ROUTE_DISPOSITION_NONE, 1: ROUTE_DISPOSITION_ACCEPT_ROUTE, 2: ROUTE_DISPOSITION_REJECT_ROUTE, } func (v RouteDisposition) Validate() error { if _, ok := RouteDispositionToIntMap[v]; !ok { return fmt.Errorf("invalid RouteDisposition: %s", v) } return nil } // typedef for identity rpol:route-type type RouteType string const ( ROUTE_TYPE_NONE RouteType = "none" ROUTE_TYPE_INTERNAL RouteType = "internal" ROUTE_TYPE_EXTERNAL RouteType = "external" ROUTE_TYPE_LOCAL RouteType = "local" ) var RouteTypeToIntMap = map[RouteType]int{ ROUTE_TYPE_NONE: 0, ROUTE_TYPE_INTERNAL: 1, ROUTE_TYPE_EXTERNAL: 2, ROUTE_TYPE_LOCAL: 3, } func (v RouteType) ToInt() int { i, ok := RouteTypeToIntMap[v] if !ok { return -1 } return i } var IntToRouteTypeMap = map[int]RouteType{ 0: ROUTE_TYPE_NONE, 1: ROUTE_TYPE_INTERNAL, 2: ROUTE_TYPE_EXTERNAL, 3: ROUTE_TYPE_LOCAL, } func (v RouteType) Validate() error { if _, ok := RouteTypeToIntMap[v]; !ok { return fmt.Errorf("invalid RouteType: %s", v) } return nil } // typedef for identity rpol:default-policy-type type DefaultPolicyType string const ( DEFAULT_POLICY_TYPE_ACCEPT_ROUTE DefaultPolicyType = "accept-route" DEFAULT_POLICY_TYPE_REJECT_ROUTE DefaultPolicyType = "reject-route" ) var DefaultPolicyTypeToIntMap = map[DefaultPolicyType]int{ DEFAULT_POLICY_TYPE_ACCEPT_ROUTE: 0, DEFAULT_POLICY_TYPE_REJECT_ROUTE: 1, } func (v DefaultPolicyType) ToInt() int { i, ok := DefaultPolicyTypeToIntMap[v] if !ok { return -1 } return i } var IntToDefaultPolicyTypeMap = map[int]DefaultPolicyType{ 0: DEFAULT_POLICY_TYPE_ACCEPT_ROUTE, 1: DEFAULT_POLICY_TYPE_REJECT_ROUTE, } func (v DefaultPolicyType) Validate() error { if _, ok := DefaultPolicyTypeToIntMap[v]; !ok { return fmt.Errorf("invalid DefaultPolicyType: %s", v) } return nil } // typedef for identity bgp:session-state type SessionState string const ( SESSION_STATE_IDLE SessionState = "idle" SESSION_STATE_CONNECT SessionState = "connect" SESSION_STATE_ACTIVE SessionState = "active" SESSION_STATE_OPENSENT SessionState = "opensent" SESSION_STATE_OPENCONFIRM SessionState = "openconfirm" SESSION_STATE_ESTABLISHED SessionState = "established" ) var SessionStateToIntMap = map[SessionState]int{ SESSION_STATE_IDLE: 0, SESSION_STATE_CONNECT: 1, SESSION_STATE_ACTIVE: 2, SESSION_STATE_OPENSENT: 3, SESSION_STATE_OPENCONFIRM: 4, SESSION_STATE_ESTABLISHED: 5, } func (v SessionState) ToInt() int { i, ok := SessionStateToIntMap[v] if !ok { return -1 } return i } var IntToSessionStateMap = map[int]SessionState{ 0: SESSION_STATE_IDLE, 1: SESSION_STATE_CONNECT, 2: SESSION_STATE_ACTIVE, 3: SESSION_STATE_OPENSENT, 4: SESSION_STATE_OPENCONFIRM, 5: SESSION_STATE_ESTABLISHED, } func (v SessionState) Validate() error { if _, ok := SessionStateToIntMap[v]; !ok { return fmt.Errorf("invalid SessionState: %s", v) } return nil } // typedef for identity bgp:admin-state type AdminState string const ( ADMIN_STATE_UP AdminState = "up" ADMIN_STATE_DOWN AdminState = "down" ADMIN_STATE_PFX_CT AdminState = "pfx_ct" ) var AdminStateToIntMap = map[AdminState]int{ ADMIN_STATE_UP: 0, ADMIN_STATE_DOWN: 1, ADMIN_STATE_PFX_CT: 2, } func (v AdminState) ToInt() int { i, ok := AdminStateToIntMap[v] if !ok { return -1 } return i } var IntToAdminStateMap = map[int]AdminState{ 0: ADMIN_STATE_UP, 1: ADMIN_STATE_DOWN, 2: ADMIN_STATE_PFX_CT, } func (v AdminState) Validate() error { if _, ok := AdminStateToIntMap[v]; !ok { return fmt.Errorf("invalid AdminState: %s", v) } return nil } // typedef for identity bgp:mode type Mode string const ( MODE_HELPER_ONLY Mode = "helper-only" MODE_BILATERAL Mode = "bilateral" MODE_REMOTE_HELPER Mode = "remote-helper" ) var ModeToIntMap = map[Mode]int{ MODE_HELPER_ONLY: 0, MODE_BILATERAL: 1, MODE_REMOTE_HELPER: 2, } func (v Mode) ToInt() int { i, ok := ModeToIntMap[v] if !ok { return -1 } return i } var IntToModeMap = map[int]Mode{ 0: MODE_HELPER_ONLY, 1: MODE_BILATERAL, 2: MODE_REMOTE_HELPER, } func (v Mode) Validate() error { if _, ok := ModeToIntMap[v]; !ok { return fmt.Errorf("invalid Mode: %s", v) } return nil } // typedef for typedef bgp-pol:bgp-next-hop-type type BgpNextHopType string // typedef for typedef bgp-pol:bgp-as-path-prepend-repeat type BgpAsPathPrependRepeat uint8 // typedef for typedef bgp-pol:bgp-set-med-type type BgpSetMedType string // typedef for identity bgp-pol:bgp-set-community-option-type type BgpSetCommunityOptionType string const ( BGP_SET_COMMUNITY_OPTION_TYPE_ADD BgpSetCommunityOptionType = "add" BGP_SET_COMMUNITY_OPTION_TYPE_REMOVE BgpSetCommunityOptionType = "remove" BGP_SET_COMMUNITY_OPTION_TYPE_REPLACE BgpSetCommunityOptionType = "replace" ) var BgpSetCommunityOptionTypeToIntMap = map[BgpSetCommunityOptionType]int{ BGP_SET_COMMUNITY_OPTION_TYPE_ADD: 0, BGP_SET_COMMUNITY_OPTION_TYPE_REMOVE: 1, BGP_SET_COMMUNITY_OPTION_TYPE_REPLACE: 2, } func (v BgpSetCommunityOptionType) ToInt() int { i, ok := BgpSetCommunityOptionTypeToIntMap[v] if !ok { return -1 } return i } var IntToBgpSetCommunityOptionTypeMap = map[int]BgpSetCommunityOptionType{ 0: BGP_SET_COMMUNITY_OPTION_TYPE_ADD, 1: BGP_SET_COMMUNITY_OPTION_TYPE_REMOVE, 2: BGP_SET_COMMUNITY_OPTION_TYPE_REPLACE, } func (v BgpSetCommunityOptionType) Validate() error { if _, ok := BgpSetCommunityOptionTypeToIntMap[v]; !ok { return fmt.Errorf("invalid BgpSetCommunityOptionType: %s", v) } return nil } // typedef for identity gobgp:bmp-route-monitoring-policy-type type BmpRouteMonitoringPolicyType string const ( BMP_ROUTE_MONITORING_POLICY_TYPE_PRE_POLICY BmpRouteMonitoringPolicyType = "pre-policy" BMP_ROUTE_MONITORING_POLICY_TYPE_POST_POLICY BmpRouteMonitoringPolicyType = "post-policy" BMP_ROUTE_MONITORING_POLICY_TYPE_BOTH BmpRouteMonitoringPolicyType = "both" ) var BmpRouteMonitoringPolicyTypeToIntMap = map[BmpRouteMonitoringPolicyType]int{ BMP_ROUTE_MONITORING_POLICY_TYPE_PRE_POLICY: 0, BMP_ROUTE_MONITORING_POLICY_TYPE_POST_POLICY: 1, BMP_ROUTE_MONITORING_POLICY_TYPE_BOTH: 2, } func (v BmpRouteMonitoringPolicyType) ToInt() int { i, ok := BmpRouteMonitoringPolicyTypeToIntMap[v] if !ok { return -1 } return i } var IntToBmpRouteMonitoringPolicyTypeMap = map[int]BmpRouteMonitoringPolicyType{ 0: BMP_ROUTE_MONITORING_POLICY_TYPE_PRE_POLICY, 1: BMP_ROUTE_MONITORING_POLICY_TYPE_POST_POLICY, 2: BMP_ROUTE_MONITORING_POLICY_TYPE_BOTH, } func (v BmpRouteMonitoringPolicyType) Validate() error { if _, ok := BmpRouteMonitoringPolicyTypeToIntMap[v]; !ok { return fmt.Errorf("invalid BmpRouteMonitoringPolicyType: %s", v) } return nil } // typedef for identity gobgp:mrt-type type MrtType string const ( MRT_TYPE_UPDATES MrtType = "updates" MRT_TYPE_TABLE MrtType = "table" ) var MrtTypeToIntMap = map[MrtType]int{ MRT_TYPE_UPDATES: 0, MRT_TYPE_TABLE: 1, } func (v MrtType) ToInt() int { i, ok := MrtTypeToIntMap[v] if !ok { return -1 } return i } var IntToMrtTypeMap = map[int]MrtType{ 0: MRT_TYPE_UPDATES, 1: MRT_TYPE_TABLE, } func (v MrtType) Validate() error { if _, ok := MrtTypeToIntMap[v]; !ok { return fmt.Errorf("invalid MrtType: %s", v) } return nil } // typedef for identity gobgp:rpki-validation-result-type type RpkiValidationResultType string const ( RPKI_VALIDATION_RESULT_TYPE_NONE RpkiValidationResultType = "none" RPKI_VALIDATION_RESULT_TYPE_NOT_FOUND RpkiValidationResultType = "not-found" RPKI_VALIDATION_RESULT_TYPE_VALID RpkiValidationResultType = "valid" RPKI_VALIDATION_RESULT_TYPE_INVALID RpkiValidationResultType = "invalid" ) var RpkiValidationResultTypeToIntMap = map[RpkiValidationResultType]int{ RPKI_VALIDATION_RESULT_TYPE_NONE: 0, RPKI_VALIDATION_RESULT_TYPE_NOT_FOUND: 1, RPKI_VALIDATION_RESULT_TYPE_VALID: 2, RPKI_VALIDATION_RESULT_TYPE_INVALID: 3, } func (v RpkiValidationResultType) ToInt() int { i, ok := RpkiValidationResultTypeToIntMap[v] if !ok { return -1 } return i } var IntToRpkiValidationResultTypeMap = map[int]RpkiValidationResultType{ 0: RPKI_VALIDATION_RESULT_TYPE_NONE, 1: RPKI_VALIDATION_RESULT_TYPE_NOT_FOUND, 2: RPKI_VALIDATION_RESULT_TYPE_VALID, 3: RPKI_VALIDATION_RESULT_TYPE_INVALID, } func (v RpkiValidationResultType) Validate() error { if _, ok := RpkiValidationResultTypeToIntMap[v]; !ok { return fmt.Errorf("invalid RpkiValidationResultType: %s", v) } return nil } //struct for container gobgp:state type CollectorState struct { // original -> gobgp:url Url string `mapstructure:"url" json:"url,omitempty"` // original -> gobgp:db-name DbName string `mapstructure:"db-name" json:"db-name,omitempty"` // original -> gobgp:table-dump-interval TableDumpInterval uint64 `mapstructure:"table-dump-interval" json:"table-dump-interval,omitempty"` } //struct for container gobgp:config type CollectorConfig struct { // original -> gobgp:url Url string `mapstructure:"url" json:"url,omitempty"` // original -> gobgp:db-name DbName string `mapstructure:"db-name" json:"db-name,omitempty"` // original -> gobgp:table-dump-interval TableDumpInterval uint64 `mapstructure:"table-dump-interval" json:"table-dump-interval,omitempty"` } func (lhs *CollectorConfig) Equal(rhs *CollectorConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Url != rhs.Url { return false } if lhs.DbName != rhs.DbName { return false } if lhs.TableDumpInterval != rhs.TableDumpInterval { return false } return true } //struct for container gobgp:collector type Collector struct { // original -> gobgp:collector-config Config CollectorConfig `mapstructure:"config" json:"config,omitempty"` // original -> gobgp:collector-state State CollectorState `mapstructure:"state" json:"state,omitempty"` } func (lhs *Collector) Equal(rhs *Collector) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container gobgp:state type ZebraState struct { // original -> gobgp:enabled //gobgp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> gobgp:url 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 Version uint8 `mapstructure:"version" json:"version,omitempty"` } //struct for container gobgp:config type ZebraConfig struct { // original -> gobgp:enabled //gobgp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> gobgp:url 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 Version uint8 `mapstructure:"version" json:"version,omitempty"` } func (lhs *ZebraConfig) Equal(rhs *ZebraConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Enabled != rhs.Enabled { return false } if lhs.Url != rhs.Url { return false } if len(lhs.RedistributeRouteTypeList) != len(rhs.RedistributeRouteTypeList) { return false } for idx, l := range lhs.RedistributeRouteTypeList { if l != rhs.RedistributeRouteTypeList[idx] { return false } } if lhs.Version != rhs.Version { return false } return true } //struct for container gobgp:zebra type Zebra struct { // original -> gobgp:zebra-config Config ZebraConfig `mapstructure:"config" json:"config,omitempty"` // original -> gobgp:zebra-state State ZebraState `mapstructure:"state" json:"state,omitempty"` } func (lhs *Zebra) Equal(rhs *Zebra) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //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 FileName string `mapstructure:"file-name" json:"file-name,omitempty"` // original -> gobgp:table-name TableName string `mapstructure:"table-name" json:"table-name,omitempty"` // original -> gobgp:dump-interval DumpInterval uint64 `mapstructure:"dump-interval" json:"dump-interval,omitempty"` // original -> gobgp:rotation-interval RotationInterval uint64 `mapstructure:"rotation-interval" json:"rotation-interval,omitempty"` } func (lhs *MrtConfig) Equal(rhs *MrtConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.DumpType != rhs.DumpType { return false } if lhs.FileName != rhs.FileName { return false } if lhs.TableName != rhs.TableName { return false } if lhs.DumpInterval != rhs.DumpInterval { return false } if lhs.RotationInterval != rhs.RotationInterval { return false } return true } //struct for container gobgp:mrt type Mrt struct { // original -> gobgp:file-name // original -> gobgp:mrt-config Config MrtConfig `mapstructure:"config" json:"config,omitempty"` } func (lhs *Mrt) Equal(rhs *Mrt) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container gobgp:state type BmpServerState struct { } //struct for container gobgp:config type BmpServerConfig struct { // original -> gobgp:address //gobgp:address's original type is inet:ip-address Address string `mapstructure:"address" json:"address,omitempty"` // original -> gobgp:port Port uint32 `mapstructure:"port" json:"port,omitempty"` // original -> gobgp:route-monitoring-policy RouteMonitoringPolicy BmpRouteMonitoringPolicyType `mapstructure:"route-monitoring-policy" json:"route-monitoring-policy,omitempty"` } func (lhs *BmpServerConfig) Equal(rhs *BmpServerConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Address != rhs.Address { return false } if lhs.Port != rhs.Port { return false } if lhs.RouteMonitoringPolicy != rhs.RouteMonitoringPolicy { return false } return true } //struct for container gobgp:bmp-server type BmpServer struct { // original -> gobgp:address // original -> gobgp:bmp-server-config Config BmpServerConfig `mapstructure:"config" json:"config,omitempty"` // original -> gobgp:bmp-server-state State BmpServerState `mapstructure:"state" json:"state,omitempty"` } func (lhs *BmpServer) Equal(rhs *BmpServer) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container gobgp:rpki-received type RpkiReceived struct { // original -> gobgp:serial-notify SerialNotify int64 `mapstructure:"serial-notify" json:"serial-notify,omitempty"` // original -> gobgp:cache-reset CacheReset int64 `mapstructure:"cache-reset" json:"cache-reset,omitempty"` // original -> gobgp:cache-response CacheResponse int64 `mapstructure:"cache-response" json:"cache-response,omitempty"` // original -> gobgp:ipv4-prefix Ipv4Prefix int64 `mapstructure:"ipv4-prefix" json:"ipv4-prefix,omitempty"` // original -> gobgp:ipv6-prefix Ipv6Prefix int64 `mapstructure:"ipv6-prefix" json:"ipv6-prefix,omitempty"` // original -> gobgp:end-of-data EndOfData int64 `mapstructure:"end-of-data" json:"end-of-data,omitempty"` // original -> gobgp:error Error int64 `mapstructure:"error" json:"error,omitempty"` } func (lhs *RpkiReceived) Equal(rhs *RpkiReceived) bool { if lhs == nil || rhs == nil { return false } if lhs.SerialNotify != rhs.SerialNotify { return false } if lhs.CacheReset != rhs.CacheReset { return false } if lhs.CacheResponse != rhs.CacheResponse { return false } if lhs.Ipv4Prefix != rhs.Ipv4Prefix { return false } if lhs.Ipv6Prefix != rhs.Ipv6Prefix { return false } if lhs.EndOfData != rhs.EndOfData { return false } if lhs.Error != rhs.Error { return false } return true } //struct for container gobgp:rpki-sent type RpkiSent struct { // original -> gobgp:serial-query SerialQuery int64 `mapstructure:"serial-query" json:"serial-query,omitempty"` // original -> gobgp:reset-query ResetQuery int64 `mapstructure:"reset-query" json:"reset-query,omitempty"` // original -> gobgp:error Error int64 `mapstructure:"error" json:"error,omitempty"` } func (lhs *RpkiSent) Equal(rhs *RpkiSent) bool { if lhs == nil || rhs == nil { return false } if lhs.SerialQuery != rhs.SerialQuery { return false } if lhs.ResetQuery != rhs.ResetQuery { return false } if lhs.Error != rhs.Error { return false } return true } //struct for container gobgp:rpki-messages type RpkiMessages struct { // original -> gobgp:rpki-sent RpkiSent RpkiSent `mapstructure:"rpki-sent" json:"rpki-sent,omitempty"` // original -> gobgp:rpki-received RpkiReceived RpkiReceived `mapstructure:"rpki-received" json:"rpki-received,omitempty"` } func (lhs *RpkiMessages) Equal(rhs *RpkiMessages) bool { if lhs == nil || rhs == nil { return false } if !lhs.RpkiSent.Equal(&(rhs.RpkiSent)) { return false } if !lhs.RpkiReceived.Equal(&(rhs.RpkiReceived)) { return false } return true } //struct for container gobgp:state type RpkiServerState struct { // original -> gobgp:up //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"` // original -> gobgp:records-v4 RecordsV4 uint32 `mapstructure:"records-v4" json:"records-v4,omitempty"` // original -> gobgp:records-v6 RecordsV6 uint32 `mapstructure:"records-v6" json:"records-v6,omitempty"` // original -> gobgp:prefixes-v4 PrefixesV4 uint32 `mapstructure:"prefixes-v4" json:"prefixes-v4,omitempty"` // original -> gobgp:prefixes-v6 PrefixesV6 uint32 `mapstructure:"prefixes-v6" json:"prefixes-v6,omitempty"` // original -> gobgp:uptime Uptime int64 `mapstructure:"uptime" json:"uptime,omitempty"` // original -> gobgp:downtime Downtime int64 `mapstructure:"downtime" json:"downtime,omitempty"` // original -> gobgp:last-pdu-recv-time LastPduRecvTime int64 `mapstructure:"last-pdu-recv-time" json:"last-pdu-recv-time,omitempty"` // original -> gobgp:rpki-messages RpkiMessages RpkiMessages `mapstructure:"rpki-messages" json:"rpki-messages,omitempty"` } //struct for container gobgp:config type RpkiServerConfig struct { // original -> gobgp:address //gobgp:address's original type is inet:ip-address Address string `mapstructure:"address" json:"address,omitempty"` // original -> gobgp:port Port uint32 `mapstructure:"port" json:"port,omitempty"` // original -> gobgp:refresh-time RefreshTime int64 `mapstructure:"refresh-time" json:"refresh-time,omitempty"` // original -> gobgp:hold-time HoldTime int64 `mapstructure:"hold-time" json:"hold-time,omitempty"` // original -> gobgp:record-lifetime RecordLifetime int64 `mapstructure:"record-lifetime" json:"record-lifetime,omitempty"` // original -> gobgp:preference Preference uint8 `mapstructure:"preference" json:"preference,omitempty"` } func (lhs *RpkiServerConfig) Equal(rhs *RpkiServerConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Address != rhs.Address { return false } if lhs.Port != rhs.Port { return false } if lhs.RefreshTime != rhs.RefreshTime { return false } if lhs.HoldTime != rhs.HoldTime { return false } if lhs.RecordLifetime != rhs.RecordLifetime { return false } if lhs.Preference != rhs.Preference { return false } return true } //struct for container gobgp:rpki-server type RpkiServer struct { // original -> gobgp:address // original -> gobgp:rpki-server-config Config RpkiServerConfig `mapstructure:"config" json:"config,omitempty"` // original -> gobgp:rpki-server-state State RpkiServerState `mapstructure:"state" json:"state,omitempty"` } func (lhs *RpkiServer) Equal(rhs *RpkiServer) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp:state type PeerGroupState struct { // original -> bgp:peer-as //bgp:peer-as's original type is inet:as-number PeerAs uint32 `mapstructure:"peer-as" json:"peer-as,omitempty"` // original -> bgp:local-as //bgp:local-as's original type is inet:as-number LocalAs uint32 `mapstructure:"local-as" json:"local-as,omitempty"` // original -> bgp:peer-type PeerType PeerType `mapstructure:"peer-type" json:"peer-type,omitempty"` // original -> bgp:auth-password AuthPassword string `mapstructure:"auth-password" json:"auth-password,omitempty"` // original -> bgp:remove-private-as 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 RouteFlapDamping bool `mapstructure:"route-flap-damping" json:"route-flap-damping,omitempty"` // original -> bgp:send-community SendCommunity CommunityType `mapstructure:"send-community" json:"send-community,omitempty"` // original -> bgp:description Description string `mapstructure:"description" json:"description,omitempty"` // original -> bgp:peer-group-name PeerGroupName string `mapstructure:"peer-group-name" json:"peer-group-name,omitempty"` // original -> bgp-op:total-paths 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 type PeerGroupConfig struct { // original -> bgp:peer-as //bgp:peer-as's original type is inet:as-number PeerAs uint32 `mapstructure:"peer-as" json:"peer-as,omitempty"` // original -> bgp:local-as //bgp:local-as's original type is inet:as-number LocalAs uint32 `mapstructure:"local-as" json:"local-as,omitempty"` // original -> bgp:peer-type PeerType PeerType `mapstructure:"peer-type" json:"peer-type,omitempty"` // original -> bgp:auth-password AuthPassword string `mapstructure:"auth-password" json:"auth-password,omitempty"` // original -> bgp:remove-private-as 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 RouteFlapDamping bool `mapstructure:"route-flap-damping" json:"route-flap-damping,omitempty"` // original -> bgp:send-community SendCommunity CommunityType `mapstructure:"send-community" json:"send-community,omitempty"` // original -> bgp:description Description string `mapstructure:"description" json:"description,omitempty"` // original -> bgp:peer-group-name PeerGroupName string `mapstructure:"peer-group-name" json:"peer-group-name,omitempty"` } func (lhs *PeerGroupConfig) Equal(rhs *PeerGroupConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.PeerAs != rhs.PeerAs { return false } if lhs.LocalAs != rhs.LocalAs { return false } if lhs.PeerType != rhs.PeerType { return false } if lhs.AuthPassword != rhs.AuthPassword { return false } if lhs.RemovePrivateAs != rhs.RemovePrivateAs { return false } if lhs.RouteFlapDamping != rhs.RouteFlapDamping { return false } if lhs.SendCommunity != rhs.SendCommunity { return false } if lhs.Description != rhs.Description { return false } if lhs.PeerGroupName != rhs.PeerGroupName { return false } return true } //struct for container bgp:peer-group type PeerGroup struct { // original -> bgp:peer-group-name // original -> bgp:peer-group-config Config PeerGroupConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:peer-group-state State PeerGroupState `mapstructure:"state" json:"state,omitempty"` // original -> bgp:timers Timers Timers `mapstructure:"timers" json:"timers,omitempty"` // original -> bgp:transport Transport Transport `mapstructure:"transport" json:"transport,omitempty"` // original -> bgp:error-handling ErrorHandling ErrorHandling `mapstructure:"error-handling" json:"error-handling,omitempty"` // original -> bgp:logging-options LoggingOptions LoggingOptions `mapstructure:"logging-options" json:"logging-options,omitempty"` // original -> bgp:ebgp-multihop EbgpMultihop EbgpMultihop `mapstructure:"ebgp-multihop" json:"ebgp-multihop,omitempty"` // original -> bgp:route-reflector RouteReflector RouteReflector `mapstructure:"route-reflector" json:"route-reflector,omitempty"` // original -> bgp:as-path-options AsPathOptions AsPathOptions `mapstructure:"as-path-options" json:"as-path-options,omitempty"` // original -> bgp:add-paths AddPaths AddPaths `mapstructure:"add-paths" json:"add-paths,omitempty"` // original -> bgp:afi-safis AfiSafis []AfiSafi `mapstructure:"afi-safis" json:"afi-safis,omitempty"` // original -> bgp:graceful-restart GracefulRestart GracefulRestart `mapstructure:"graceful-restart" json:"graceful-restart,omitempty"` // original -> rpol:apply-policy ApplyPolicy ApplyPolicy `mapstructure:"apply-policy" json:"apply-policy,omitempty"` // original -> bgp-mp:use-multiple-paths UseMultiplePaths UseMultiplePaths `mapstructure:"use-multiple-paths" json:"use-multiple-paths,omitempty"` // original -> gobgp:route-server RouteServer RouteServer `mapstructure:"route-server" json:"route-server,omitempty"` } func (lhs *PeerGroup) Equal(rhs *PeerGroup) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } if !lhs.Timers.Equal(&(rhs.Timers)) { return false } if !lhs.Transport.Equal(&(rhs.Transport)) { return false } if !lhs.ErrorHandling.Equal(&(rhs.ErrorHandling)) { return false } if !lhs.LoggingOptions.Equal(&(rhs.LoggingOptions)) { return false } if !lhs.EbgpMultihop.Equal(&(rhs.EbgpMultihop)) { return false } if !lhs.RouteReflector.Equal(&(rhs.RouteReflector)) { return false } if !lhs.AsPathOptions.Equal(&(rhs.AsPathOptions)) { return false } if !lhs.AddPaths.Equal(&(rhs.AddPaths)) { return false } if len(lhs.AfiSafis) != len(rhs.AfiSafis) { return false } { lmap := make(map[string]*AfiSafi) for i, l := range lhs.AfiSafis { lmap[mapkey(i, string(l.Config.AfiSafiName))] = &lhs.AfiSafis[i] } for i, r := range rhs.AfiSafis { if l, y := lmap[mapkey(i, string(r.Config.AfiSafiName))]; !y { return false } else if !r.Equal(l) { return false } } } if !lhs.GracefulRestart.Equal(&(rhs.GracefulRestart)) { return false } if !lhs.ApplyPolicy.Equal(&(rhs.ApplyPolicy)) { return false } if !lhs.UseMultiplePaths.Equal(&(rhs.UseMultiplePaths)) { return false } if !lhs.RouteServer.Equal(&(rhs.RouteServer)) { return false } return true } //struct for container gobgp:state type RouteServerState struct { // original -> gobgp:route-server-client //gobgp:route-server-client's original type is boolean RouteServerClient bool `mapstructure:"route-server-client" json:"route-server-client,omitempty"` } //struct for container gobgp:config type RouteServerConfig struct { // original -> gobgp:route-server-client //gobgp:route-server-client's original type is boolean RouteServerClient bool `mapstructure:"route-server-client" json:"route-server-client,omitempty"` } func (lhs *RouteServerConfig) Equal(rhs *RouteServerConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.RouteServerClient != rhs.RouteServerClient { return false } return true } //struct for container gobgp:route-server type RouteServer struct { // original -> gobgp:route-server-config Config RouteServerConfig `mapstructure:"config" json:"config,omitempty"` // original -> gobgp:route-server-state State RouteServerState `mapstructure:"state" json:"state,omitempty"` } func (lhs *RouteServer) Equal(rhs *RouteServer) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp-op:prefixes type Prefixes struct { // original -> bgp-op:received Received uint32 `mapstructure:"received" json:"received,omitempty"` // original -> bgp-op:sent Sent uint32 `mapstructure:"sent" json:"sent,omitempty"` // original -> bgp-op:installed Installed uint32 `mapstructure:"installed" json:"installed,omitempty"` } func (lhs *Prefixes) Equal(rhs *Prefixes) bool { if lhs == nil || rhs == nil { return false } if lhs.Received != rhs.Received { return false } if lhs.Sent != rhs.Sent { return false } if lhs.Installed != rhs.Installed { return false } return true } //struct for container bgp:state type AddPathsState struct { // original -> bgp:receive //bgp:receive's original type is boolean Receive bool `mapstructure:"receive" json:"receive,omitempty"` // original -> bgp:send-max SendMax uint8 `mapstructure:"send-max" json:"send-max,omitempty"` } //struct for container bgp:config type AddPathsConfig struct { // original -> bgp:receive //bgp:receive's original type is boolean Receive bool `mapstructure:"receive" json:"receive,omitempty"` // original -> bgp:send-max SendMax uint8 `mapstructure:"send-max" json:"send-max,omitempty"` } func (lhs *AddPathsConfig) Equal(rhs *AddPathsConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Receive != rhs.Receive { return false } if lhs.SendMax != rhs.SendMax { return false } return true } //struct for container bgp:add-paths type AddPaths struct { // original -> bgp:add-paths-config Config AddPathsConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:add-paths-state State AddPathsState `mapstructure:"state" json:"state,omitempty"` } func (lhs *AddPaths) Equal(rhs *AddPaths) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp:state type AsPathOptionsState struct { // original -> bgp:allow-own-as 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 ReplacePeerAs bool `mapstructure:"replace-peer-as" json:"replace-peer-as,omitempty"` } //struct for container bgp:config type AsPathOptionsConfig struct { // original -> bgp:allow-own-as 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 ReplacePeerAs bool `mapstructure:"replace-peer-as" json:"replace-peer-as,omitempty"` } func (lhs *AsPathOptionsConfig) Equal(rhs *AsPathOptionsConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.AllowOwnAs != rhs.AllowOwnAs { return false } if lhs.ReplacePeerAs != rhs.ReplacePeerAs { return false } return true } //struct for container bgp:as-path-options type AsPathOptions struct { // original -> bgp:as-path-options-config Config AsPathOptionsConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:as-path-options-state State AsPathOptionsState `mapstructure:"state" json:"state,omitempty"` } func (lhs *AsPathOptions) Equal(rhs *AsPathOptions) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp:state type RouteReflectorState struct { // original -> bgp:route-reflector-cluster-id 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 RouteReflectorClient bool `mapstructure:"route-reflector-client" json:"route-reflector-client,omitempty"` } //struct for container bgp:config type RouteReflectorConfig struct { // original -> bgp:route-reflector-cluster-id 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 RouteReflectorClient bool `mapstructure:"route-reflector-client" json:"route-reflector-client,omitempty"` } func (lhs *RouteReflectorConfig) Equal(rhs *RouteReflectorConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.RouteReflectorClusterId != rhs.RouteReflectorClusterId { return false } if lhs.RouteReflectorClient != rhs.RouteReflectorClient { return false } return true } //struct for container bgp:route-reflector type RouteReflector struct { // original -> bgp:route-reflector-config Config RouteReflectorConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:route-reflector-state State RouteReflectorState `mapstructure:"state" json:"state,omitempty"` } func (lhs *RouteReflector) Equal(rhs *RouteReflector) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp:state type EbgpMultihopState struct { // original -> bgp:enabled //bgp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> bgp:multihop-ttl MultihopTtl uint8 `mapstructure:"multihop-ttl" json:"multihop-ttl,omitempty"` } //struct for container bgp:config type EbgpMultihopConfig struct { // original -> bgp:enabled //bgp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> bgp:multihop-ttl MultihopTtl uint8 `mapstructure:"multihop-ttl" json:"multihop-ttl,omitempty"` } func (lhs *EbgpMultihopConfig) Equal(rhs *EbgpMultihopConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Enabled != rhs.Enabled { return false } if lhs.MultihopTtl != rhs.MultihopTtl { return false } return true } //struct for container bgp:ebgp-multihop type EbgpMultihop struct { // original -> bgp:ebgp-multihop-config Config EbgpMultihopConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:ebgp-multihop-state State EbgpMultihopState `mapstructure:"state" json:"state,omitempty"` } func (lhs *EbgpMultihop) Equal(rhs *EbgpMultihop) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp:state type LoggingOptionsState struct { // original -> bgp:log-neighbor-state-changes //bgp:log-neighbor-state-changes's original type is boolean LogNeighborStateChanges bool `mapstructure:"log-neighbor-state-changes" json:"log-neighbor-state-changes,omitempty"` } //struct for container bgp:config type LoggingOptionsConfig struct { // original -> bgp:log-neighbor-state-changes //bgp:log-neighbor-state-changes's original type is boolean LogNeighborStateChanges bool `mapstructure:"log-neighbor-state-changes" json:"log-neighbor-state-changes,omitempty"` } func (lhs *LoggingOptionsConfig) Equal(rhs *LoggingOptionsConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.LogNeighborStateChanges != rhs.LogNeighborStateChanges { return false } return true } //struct for container bgp:logging-options type LoggingOptions struct { // original -> bgp:logging-options-config Config LoggingOptionsConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:logging-options-state State LoggingOptionsState `mapstructure:"state" json:"state,omitempty"` } func (lhs *LoggingOptions) Equal(rhs *LoggingOptions) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp:state type ErrorHandlingState struct { // original -> bgp:treat-as-withdraw //bgp:treat-as-withdraw's original type is boolean TreatAsWithdraw bool `mapstructure:"treat-as-withdraw" json:"treat-as-withdraw,omitempty"` // original -> bgp-op:erroneous-update-messages ErroneousUpdateMessages uint32 `mapstructure:"erroneous-update-messages" json:"erroneous-update-messages,omitempty"` } //struct for container bgp:config type ErrorHandlingConfig struct { // original -> bgp:treat-as-withdraw //bgp:treat-as-withdraw's original type is boolean TreatAsWithdraw bool `mapstructure:"treat-as-withdraw" json:"treat-as-withdraw,omitempty"` } func (lhs *ErrorHandlingConfig) Equal(rhs *ErrorHandlingConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.TreatAsWithdraw != rhs.TreatAsWithdraw { return false } return true } //struct for container bgp:error-handling type ErrorHandling struct { // original -> bgp:error-handling-config Config ErrorHandlingConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:error-handling-state State ErrorHandlingState `mapstructure:"state" json:"state,omitempty"` } func (lhs *ErrorHandling) Equal(rhs *ErrorHandling) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp:state type TransportState struct { // original -> bgp:tcp-mss TcpMss uint16 `mapstructure:"tcp-mss" json:"tcp-mss,omitempty"` // original -> bgp:mtu-discovery //bgp:mtu-discovery's original type is boolean MtuDiscovery bool `mapstructure:"mtu-discovery" json:"mtu-discovery,omitempty"` // original -> bgp:passive-mode //bgp:passive-mode's original type is boolean PassiveMode bool `mapstructure:"passive-mode" json:"passive-mode,omitempty"` // original -> bgp:local-address //bgp:local-address's original type is union 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 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 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 RemotePort uint16 `mapstructure:"remote-port" json:"remote-port,omitempty"` } //struct for container bgp:config type TransportConfig struct { // original -> bgp:tcp-mss TcpMss uint16 `mapstructure:"tcp-mss" json:"tcp-mss,omitempty"` // original -> bgp:mtu-discovery //bgp:mtu-discovery's original type is boolean MtuDiscovery bool `mapstructure:"mtu-discovery" json:"mtu-discovery,omitempty"` // original -> bgp:passive-mode //bgp:passive-mode's original type is boolean PassiveMode bool `mapstructure:"passive-mode" json:"passive-mode,omitempty"` // original -> bgp:local-address //bgp:local-address's original type is union LocalAddress string `mapstructure:"local-address" json:"local-address,omitempty"` // original -> gobgp:remote-port //gobgp:remote-port's original type is inet:port-number RemotePort uint16 `mapstructure:"remote-port" json:"remote-port,omitempty"` } func (lhs *TransportConfig) Equal(rhs *TransportConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.TcpMss != rhs.TcpMss { return false } if lhs.MtuDiscovery != rhs.MtuDiscovery { return false } if lhs.PassiveMode != rhs.PassiveMode { return false } if lhs.LocalAddress != rhs.LocalAddress { return false } if lhs.RemotePort != rhs.RemotePort { return false } return true } //struct for container bgp:transport type Transport struct { // original -> bgp:transport-config Config TransportConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:transport-state State TransportState `mapstructure:"state" json:"state,omitempty"` } func (lhs *Transport) Equal(rhs *Transport) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp:state type TimersState struct { // original -> bgp:connect-retry //bgp:connect-retry's original type is decimal64 ConnectRetry float64 `mapstructure:"connect-retry" json:"connect-retry,omitempty"` // original -> bgp:hold-time //bgp:hold-time's original type is decimal64 HoldTime float64 `mapstructure:"hold-time" json:"hold-time,omitempty"` // original -> bgp:keepalive-interval //bgp:keepalive-interval's original type is decimal64 KeepaliveInterval float64 `mapstructure:"keepalive-interval" json:"keepalive-interval,omitempty"` // original -> bgp:minimum-advertisement-interval //bgp:minimum-advertisement-interval's original type is decimal64 MinimumAdvertisementInterval float64 `mapstructure:"minimum-advertisement-interval" json:"minimum-advertisement-interval,omitempty"` // original -> bgp-op:uptime //bgp-op:uptime's original type is yang:timeticks Uptime int64 `mapstructure:"uptime" json:"uptime,omitempty"` // original -> bgp-op:negotiated-hold-time //bgp-op:negotiated-hold-time's original type is decimal64 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 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 Downtime int64 `mapstructure:"downtime" json:"downtime,omitempty"` // original -> gobgp:update-recv-time UpdateRecvTime int64 `mapstructure:"update-recv-time" json:"update-recv-time,omitempty"` } //struct for container bgp:config type TimersConfig struct { // original -> bgp:connect-retry //bgp:connect-retry's original type is decimal64 ConnectRetry float64 `mapstructure:"connect-retry" json:"connect-retry,omitempty"` // original -> bgp:hold-time //bgp:hold-time's original type is decimal64 HoldTime float64 `mapstructure:"hold-time" json:"hold-time,omitempty"` // original -> bgp:keepalive-interval //bgp:keepalive-interval's original type is decimal64 KeepaliveInterval float64 `mapstructure:"keepalive-interval" json:"keepalive-interval,omitempty"` // original -> bgp:minimum-advertisement-interval //bgp:minimum-advertisement-interval's original type is decimal64 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 IdleHoldTimeAfterReset float64 `mapstructure:"idle-hold-time-after-reset" json:"idle-hold-time-after-reset,omitempty"` } func (lhs *TimersConfig) Equal(rhs *TimersConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.ConnectRetry != rhs.ConnectRetry { return false } if lhs.HoldTime != rhs.HoldTime { return false } if lhs.KeepaliveInterval != rhs.KeepaliveInterval { return false } if lhs.MinimumAdvertisementInterval != rhs.MinimumAdvertisementInterval { return false } if lhs.IdleHoldTimeAfterReset != rhs.IdleHoldTimeAfterReset { return false } return true } //struct for container bgp:timers type Timers struct { // original -> bgp:timers-config Config TimersConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:timers-state State TimersState `mapstructure:"state" json:"state,omitempty"` } func (lhs *Timers) Equal(rhs *Timers) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container gobgp:adj-table type AdjTable struct { // original -> gobgp:ADVERTISED Advertised uint32 `mapstructure:"advertised" json:"advertised,omitempty"` // original -> gobgp:RECEIVED Received uint32 `mapstructure:"received" json:"received,omitempty"` // original -> gobgp:ACCEPTED Accepted uint32 `mapstructure:"accepted" json:"accepted,omitempty"` } func (lhs *AdjTable) Equal(rhs *AdjTable) bool { if lhs == nil || rhs == nil { return false } if lhs.Advertised != rhs.Advertised { return false } if lhs.Received != rhs.Received { return false } if lhs.Accepted != rhs.Accepted { return false } return true } //struct for container bgp:queues type Queues struct { // original -> bgp-op:input Input uint32 `mapstructure:"input" json:"input,omitempty"` // original -> bgp-op:output Output uint32 `mapstructure:"output" json:"output,omitempty"` } func (lhs *Queues) Equal(rhs *Queues) bool { if lhs == nil || rhs == nil { return false } if lhs.Input != rhs.Input { return false } if lhs.Output != rhs.Output { return false } return true } //struct for container bgp:received type Received struct { // original -> bgp-op:UPDATE Update uint64 `mapstructure:"update" json:"update,omitempty"` // original -> bgp-op:NOTIFICATION Notification uint64 `mapstructure:"notification" json:"notification,omitempty"` // original -> gobgp:OPEN Open uint64 `mapstructure:"open" json:"open,omitempty"` // original -> gobgp:REFRESH Refresh uint64 `mapstructure:"refresh" json:"refresh,omitempty"` // original -> gobgp:KEEPALIVE Keepalive uint64 `mapstructure:"keepalive" json:"keepalive,omitempty"` // original -> gobgp:DYNAMIC-CAP DynamicCap uint64 `mapstructure:"dynamic-cap" json:"dynamic-cap,omitempty"` // original -> gobgp:DISCARDED Discarded uint64 `mapstructure:"discarded" json:"discarded,omitempty"` // original -> gobgp:TOTAL Total uint64 `mapstructure:"total" json:"total,omitempty"` } func (lhs *Received) Equal(rhs *Received) bool { if lhs == nil || rhs == nil { return false } if lhs.Update != rhs.Update { return false } if lhs.Notification != rhs.Notification { return false } if lhs.Open != rhs.Open { return false } if lhs.Refresh != rhs.Refresh { return false } if lhs.Keepalive != rhs.Keepalive { return false } if lhs.DynamicCap != rhs.DynamicCap { return false } if lhs.Discarded != rhs.Discarded { return false } if lhs.Total != rhs.Total { return false } return true } //struct for container bgp:sent type Sent struct { // original -> bgp-op:UPDATE Update uint64 `mapstructure:"update" json:"update,omitempty"` // original -> bgp-op:NOTIFICATION Notification uint64 `mapstructure:"notification" json:"notification,omitempty"` // original -> gobgp:OPEN Open uint64 `mapstructure:"open" json:"open,omitempty"` // original -> gobgp:REFRESH Refresh uint64 `mapstructure:"refresh" json:"refresh,omitempty"` // original -> gobgp:KEEPALIVE Keepalive uint64 `mapstructure:"keepalive" json:"keepalive,omitempty"` // original -> gobgp:DYNAMIC-CAP DynamicCap uint64 `mapstructure:"dynamic-cap" json:"dynamic-cap,omitempty"` // original -> gobgp:DISCARDED Discarded uint64 `mapstructure:"discarded" json:"discarded,omitempty"` // original -> gobgp:TOTAL Total uint64 `mapstructure:"total" json:"total,omitempty"` } func (lhs *Sent) Equal(rhs *Sent) bool { if lhs == nil || rhs == nil { return false } if lhs.Update != rhs.Update { return false } if lhs.Notification != rhs.Notification { return false } if lhs.Open != rhs.Open { return false } if lhs.Refresh != rhs.Refresh { return false } if lhs.Keepalive != rhs.Keepalive { return false } if lhs.DynamicCap != rhs.DynamicCap { return false } if lhs.Discarded != rhs.Discarded { return false } if lhs.Total != rhs.Total { return false } return true } //struct for container bgp:messages type Messages struct { // original -> bgp:sent Sent Sent `mapstructure:"sent" json:"sent,omitempty"` // original -> bgp:received Received Received `mapstructure:"received" json:"received,omitempty"` } func (lhs *Messages) Equal(rhs *Messages) bool { if lhs == nil || rhs == nil { return false } if !lhs.Sent.Equal(&(rhs.Sent)) { return false } if !lhs.Received.Equal(&(rhs.Received)) { return false } return true } //struct for container bgp:state type NeighborState struct { // original -> bgp:peer-as //bgp:peer-as's original type is inet:as-number PeerAs uint32 `mapstructure:"peer-as" json:"peer-as,omitempty"` // original -> bgp:local-as //bgp:local-as's original type is inet:as-number LocalAs uint32 `mapstructure:"local-as" json:"local-as,omitempty"` // original -> bgp:peer-type PeerType PeerType `mapstructure:"peer-type" json:"peer-type,omitempty"` // original -> bgp:auth-password AuthPassword string `mapstructure:"auth-password" json:"auth-password,omitempty"` // original -> bgp:remove-private-as 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 RouteFlapDamping bool `mapstructure:"route-flap-damping" json:"route-flap-damping,omitempty"` // original -> bgp:send-community SendCommunity CommunityType `mapstructure:"send-community" json:"send-community,omitempty"` // original -> bgp:description Description string `mapstructure:"description" json:"description,omitempty"` // original -> bgp:peer-group PeerGroup string `mapstructure:"peer-group" json:"peer-group,omitempty"` // original -> bgp:neighbor-address //bgp:neighbor-address's original type is inet:ip-address NeighborAddress string `mapstructure:"neighbor-address" json:"neighbor-address,omitempty"` // original -> bgp-op:session-state SessionState SessionState `mapstructure:"session-state" json:"session-state,omitempty"` // original -> bgp-op:supported-capabilities SupportedCapabilitiesList []BgpCapability `mapstructure:"supported-capabilities-list" json:"supported-capabilities-list,omitempty"` // original -> bgp:messages Messages Messages `mapstructure:"messages" json:"messages,omitempty"` // original -> bgp:queues Queues Queues `mapstructure:"queues" json:"queues,omitempty"` // original -> gobgp:adj-table AdjTable AdjTable `mapstructure:"adj-table" json:"adj-table,omitempty"` // original -> gobgp:remote-capability // original type is list of bgp-capability RemoteCapabilityList []bgp.ParameterCapabilityInterface `mapstructure:"remote-capability-list" json:"remote-capability-list,omitempty"` // original -> gobgp:local-capability // 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 ReceivedOpenMessage *bgp.BGPMessage `mapstructure:"received-open-message" json:"received-open-message,omitempty"` // original -> gobgp:admin-down //gobgp:admin-down's original type is boolean 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 EstablishedCount uint32 `mapstructure:"established-count" json:"established-count,omitempty"` // original -> gobgp:flops Flops uint32 `mapstructure:"flops" json:"flops,omitempty"` // original -> gobgp:neighbor-interface NeighborInterface string `mapstructure:"neighbor-interface" json:"neighbor-interface,omitempty"` // original -> gobgp:vrf Vrf string `mapstructure:"vrf" json:"vrf,omitempty"` // original -> gobgp:remote-router-id RemoteRouterId string `mapstructure:"remote-router-id" json:"remote-router-id,omitempty"` } //struct for container bgp:config type NeighborConfig struct { // original -> bgp:peer-as //bgp:peer-as's original type is inet:as-number PeerAs uint32 `mapstructure:"peer-as" json:"peer-as,omitempty"` // original -> bgp:local-as //bgp:local-as's original type is inet:as-number LocalAs uint32 `mapstructure:"local-as" json:"local-as,omitempty"` // original -> bgp:peer-type PeerType PeerType `mapstructure:"peer-type" json:"peer-type,omitempty"` // original -> bgp:auth-password AuthPassword string `mapstructure:"auth-password" json:"auth-password,omitempty"` // original -> bgp:remove-private-as 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 RouteFlapDamping bool `mapstructure:"route-flap-damping" json:"route-flap-damping,omitempty"` // original -> bgp:send-community SendCommunity CommunityType `mapstructure:"send-community" json:"send-community,omitempty"` // original -> bgp:description Description string `mapstructure:"description" json:"description,omitempty"` // original -> bgp:peer-group PeerGroup string `mapstructure:"peer-group" json:"peer-group,omitempty"` // original -> bgp:neighbor-address //bgp:neighbor-address's original type is inet:ip-address NeighborAddress string `mapstructure:"neighbor-address" json:"neighbor-address,omitempty"` // original -> gobgp:admin-down //gobgp:admin-down's original type is boolean AdminDown bool `mapstructure:"admin-down" json:"admin-down,omitempty"` // original -> gobgp:neighbor-interface NeighborInterface string `mapstructure:"neighbor-interface" json:"neighbor-interface,omitempty"` // original -> gobgp:vrf Vrf string `mapstructure:"vrf" json:"vrf,omitempty"` } func (lhs *NeighborConfig) Equal(rhs *NeighborConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.PeerAs != rhs.PeerAs { return false } if lhs.LocalAs != rhs.LocalAs { return false } if lhs.PeerType != rhs.PeerType { return false } if lhs.AuthPassword != rhs.AuthPassword { return false } if lhs.RemovePrivateAs != rhs.RemovePrivateAs { return false } if lhs.RouteFlapDamping != rhs.RouteFlapDamping { return false } if lhs.SendCommunity != rhs.SendCommunity { return false } if lhs.Description != rhs.Description { return false } if lhs.PeerGroup != rhs.PeerGroup { return false } if lhs.NeighborAddress != rhs.NeighborAddress { return false } if lhs.AdminDown != rhs.AdminDown { return false } if lhs.NeighborInterface != rhs.NeighborInterface { return false } if lhs.Vrf != rhs.Vrf { return false } return true } //struct for container bgp:neighbor type Neighbor struct { // original -> bgp:neighbor-address // original -> bgp:neighbor-config Config NeighborConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:neighbor-state State NeighborState `mapstructure:"state" json:"state,omitempty"` // original -> bgp:timers Timers Timers `mapstructure:"timers" json:"timers,omitempty"` // original -> bgp:transport Transport Transport `mapstructure:"transport" json:"transport,omitempty"` // original -> bgp:error-handling ErrorHandling ErrorHandling `mapstructure:"error-handling" json:"error-handling,omitempty"` // original -> bgp:logging-options LoggingOptions LoggingOptions `mapstructure:"logging-options" json:"logging-options,omitempty"` // original -> bgp:ebgp-multihop EbgpMultihop EbgpMultihop `mapstructure:"ebgp-multihop" json:"ebgp-multihop,omitempty"` // original -> bgp:route-reflector RouteReflector RouteReflector `mapstructure:"route-reflector" json:"route-reflector,omitempty"` // original -> bgp:as-path-options AsPathOptions AsPathOptions `mapstructure:"as-path-options" json:"as-path-options,omitempty"` // original -> bgp:add-paths AddPaths AddPaths `mapstructure:"add-paths" json:"add-paths,omitempty"` // original -> bgp:afi-safis AfiSafis []AfiSafi `mapstructure:"afi-safis" json:"afi-safis,omitempty"` // original -> bgp:graceful-restart GracefulRestart GracefulRestart `mapstructure:"graceful-restart" json:"graceful-restart,omitempty"` // original -> rpol:apply-policy ApplyPolicy ApplyPolicy `mapstructure:"apply-policy" json:"apply-policy,omitempty"` // original -> bgp-mp:use-multiple-paths UseMultiplePaths UseMultiplePaths `mapstructure:"use-multiple-paths" json:"use-multiple-paths,omitempty"` // original -> gobgp:route-server RouteServer RouteServer `mapstructure:"route-server" json:"route-server,omitempty"` } func (lhs *Neighbor) Equal(rhs *Neighbor) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } if !lhs.Timers.Equal(&(rhs.Timers)) { return false } if !lhs.Transport.Equal(&(rhs.Transport)) { return false } if !lhs.ErrorHandling.Equal(&(rhs.ErrorHandling)) { return false } if !lhs.LoggingOptions.Equal(&(rhs.LoggingOptions)) { return false } if !lhs.EbgpMultihop.Equal(&(rhs.EbgpMultihop)) { return false } if !lhs.RouteReflector.Equal(&(rhs.RouteReflector)) { return false } if !lhs.AsPathOptions.Equal(&(rhs.AsPathOptions)) { return false } if !lhs.AddPaths.Equal(&(rhs.AddPaths)) { return false } if len(lhs.AfiSafis) != len(rhs.AfiSafis) { return false } { lmap := make(map[string]*AfiSafi) for i, l := range lhs.AfiSafis { lmap[mapkey(i, string(l.Config.AfiSafiName))] = &lhs.AfiSafis[i] } for i, r := range rhs.AfiSafis { if l, y := lmap[mapkey(i, string(r.Config.AfiSafiName))]; !y { return false } else if !r.Equal(l) { return false } } } if !lhs.GracefulRestart.Equal(&(rhs.GracefulRestart)) { return false } if !lhs.ApplyPolicy.Equal(&(rhs.ApplyPolicy)) { return false } if !lhs.UseMultiplePaths.Equal(&(rhs.UseMultiplePaths)) { return false } if !lhs.RouteServer.Equal(&(rhs.RouteServer)) { return false } return true } //struct for container gobgp:state type LongLivedGracefulRestartState struct { // original -> gobgp:enabled //gobgp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> gobgp:received //gobgp:received's original type is boolean Received bool `mapstructure:"received" json:"received,omitempty"` // original -> gobgp:advertised //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 PeerRestartTimerExpired bool `mapstructure:"peer-restart-timer-expired" json:"peer-restart-timer-expired,omitempty"` } //struct for container gobgp:config type LongLivedGracefulRestartConfig struct { // original -> gobgp:enabled //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"` } func (lhs *LongLivedGracefulRestartConfig) Equal(rhs *LongLivedGracefulRestartConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Enabled != rhs.Enabled { return false } if lhs.RestartTime != rhs.RestartTime { return false } return true } //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"` // original -> gobgp:long-lived-graceful-restart-state State LongLivedGracefulRestartState `mapstructure:"state" json:"state,omitempty"` } func (lhs *LongLivedGracefulRestart) Equal(rhs *LongLivedGracefulRestart) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //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 type RouteTargetMembershipConfig struct { // original -> gobgp:deferral-time DeferralTime uint16 `mapstructure:"deferral-time" json:"deferral-time,omitempty"` } func (lhs *RouteTargetMembershipConfig) Equal(rhs *RouteTargetMembershipConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.DeferralTime != rhs.DeferralTime { return false } return true } //struct for container gobgp:route-target-membership type RouteTargetMembership struct { // original -> gobgp:route-target-membership-config Config RouteTargetMembershipConfig `mapstructure:"config" json:"config,omitempty"` // original -> gobgp:route-target-membership-state State RouteTargetMembershipState `mapstructure:"state" json:"state,omitempty"` } func (lhs *RouteTargetMembership) Equal(rhs *RouteTargetMembership) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp-mp:l2vpn-evpn type L2vpnEvpn struct { // original -> bgp-mp:prefix-limit PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"` } func (lhs *L2vpnEvpn) Equal(rhs *L2vpnEvpn) bool { if lhs == nil || rhs == nil { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } return true } //struct for container bgp-mp:l2vpn-vpls type L2vpnVpls struct { // original -> bgp-mp:prefix-limit PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"` } func (lhs *L2vpnVpls) Equal(rhs *L2vpnVpls) bool { if lhs == nil || rhs == nil { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } return true } //struct for container bgp-mp:l3vpn-ipv6-multicast type L3vpnIpv6Multicast struct { // original -> bgp-mp:prefix-limit PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"` } func (lhs *L3vpnIpv6Multicast) Equal(rhs *L3vpnIpv6Multicast) bool { if lhs == nil || rhs == nil { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } return true } //struct for container bgp-mp:l3vpn-ipv4-multicast type L3vpnIpv4Multicast struct { // original -> bgp-mp:prefix-limit PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"` } func (lhs *L3vpnIpv4Multicast) Equal(rhs *L3vpnIpv4Multicast) bool { if lhs == nil || rhs == nil { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } return true } //struct for container bgp-mp:l3vpn-ipv6-unicast type L3vpnIpv6Unicast struct { // original -> bgp-mp:prefix-limit PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"` } func (lhs *L3vpnIpv6Unicast) Equal(rhs *L3vpnIpv6Unicast) bool { if lhs == nil || rhs == nil { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } return true } //struct for container bgp-mp:l3vpn-ipv4-unicast type L3vpnIpv4Unicast struct { // original -> bgp-mp:prefix-limit PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"` } func (lhs *L3vpnIpv4Unicast) Equal(rhs *L3vpnIpv4Unicast) bool { if lhs == nil || rhs == nil { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } return true } //struct for container bgp-mp:ipv6-labelled-unicast type Ipv6LabelledUnicast struct { // original -> bgp-mp:prefix-limit PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"` } func (lhs *Ipv6LabelledUnicast) Equal(rhs *Ipv6LabelledUnicast) bool { if lhs == nil || rhs == nil { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } return true } //struct for container bgp-mp:ipv4-labelled-unicast type Ipv4LabelledUnicast struct { // original -> bgp-mp:prefix-limit PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"` } func (lhs *Ipv4LabelledUnicast) Equal(rhs *Ipv4LabelledUnicast) bool { if lhs == nil || rhs == nil { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } return true } //struct for container bgp-mp:state type Ipv6UnicastState struct { // original -> bgp-mp:send-default-route //bgp-mp:send-default-route's original type is boolean SendDefaultRoute bool `mapstructure:"send-default-route" json:"send-default-route,omitempty"` } //struct for container bgp-mp:config type Ipv6UnicastConfig struct { // original -> bgp-mp:send-default-route //bgp-mp:send-default-route's original type is boolean SendDefaultRoute bool `mapstructure:"send-default-route" json:"send-default-route,omitempty"` } func (lhs *Ipv6UnicastConfig) Equal(rhs *Ipv6UnicastConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.SendDefaultRoute != rhs.SendDefaultRoute { return false } return true } //struct for container bgp-mp:ipv6-unicast type Ipv6Unicast struct { // original -> bgp-mp:prefix-limit PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"` // original -> bgp-mp:ipv6-unicast-config Config Ipv6UnicastConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp-mp:ipv6-unicast-state State Ipv6UnicastState `mapstructure:"state" json:"state,omitempty"` } func (lhs *Ipv6Unicast) Equal(rhs *Ipv6Unicast) bool { if lhs == nil || rhs == nil { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp-mp:state type Ipv4UnicastState struct { // original -> bgp-mp:send-default-route //bgp-mp:send-default-route's original type is boolean SendDefaultRoute bool `mapstructure:"send-default-route" json:"send-default-route,omitempty"` } //struct for container bgp-mp:config type Ipv4UnicastConfig struct { // original -> bgp-mp:send-default-route //bgp-mp:send-default-route's original type is boolean SendDefaultRoute bool `mapstructure:"send-default-route" json:"send-default-route,omitempty"` } func (lhs *Ipv4UnicastConfig) Equal(rhs *Ipv4UnicastConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.SendDefaultRoute != rhs.SendDefaultRoute { return false } return true } //struct for container bgp-mp:state type PrefixLimitState struct { // original -> bgp-mp:max-prefixes MaxPrefixes uint32 `mapstructure:"max-prefixes" json:"max-prefixes,omitempty"` // original -> bgp-mp:shutdown-threshold-pct 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 RestartTimer float64 `mapstructure:"restart-timer" json:"restart-timer,omitempty"` } //struct for container bgp-mp:config type PrefixLimitConfig struct { // original -> bgp-mp:max-prefixes MaxPrefixes uint32 `mapstructure:"max-prefixes" json:"max-prefixes,omitempty"` // original -> bgp-mp:shutdown-threshold-pct 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 RestartTimer float64 `mapstructure:"restart-timer" json:"restart-timer,omitempty"` } func (lhs *PrefixLimitConfig) Equal(rhs *PrefixLimitConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.MaxPrefixes != rhs.MaxPrefixes { return false } if lhs.ShutdownThresholdPct != rhs.ShutdownThresholdPct { return false } if lhs.RestartTimer != rhs.RestartTimer { return false } return true } //struct for container bgp-mp:prefix-limit type PrefixLimit struct { // original -> bgp-mp:prefix-limit-config Config PrefixLimitConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp-mp:prefix-limit-state State PrefixLimitState `mapstructure:"state" json:"state,omitempty"` } func (lhs *PrefixLimit) Equal(rhs *PrefixLimit) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp-mp:ipv4-unicast type Ipv4Unicast struct { // original -> bgp-mp:prefix-limit PrefixLimit PrefixLimit `mapstructure:"prefix-limit" json:"prefix-limit,omitempty"` // original -> bgp-mp:ipv4-unicast-config Config Ipv4UnicastConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp-mp:ipv4-unicast-state State Ipv4UnicastState `mapstructure:"state" json:"state,omitempty"` } func (lhs *Ipv4Unicast) Equal(rhs *Ipv4Unicast) bool { if lhs == nil || rhs == nil { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container rpol:state type ApplyPolicyState struct { // original -> rpol:import-policy ImportPolicyList []string `mapstructure:"import-policy-list" json:"import-policy-list,omitempty"` // original -> rpol:default-import-policy DefaultImportPolicy DefaultPolicyType `mapstructure:"default-import-policy" json:"default-import-policy,omitempty"` // original -> rpol:export-policy ExportPolicyList []string `mapstructure:"export-policy-list" json:"export-policy-list,omitempty"` // original -> rpol:default-export-policy DefaultExportPolicy DefaultPolicyType `mapstructure:"default-export-policy" json:"default-export-policy,omitempty"` // original -> gobgp:in-policy InPolicyList []string `mapstructure:"in-policy-list" json:"in-policy-list,omitempty"` // original -> gobgp:default-in-policy DefaultInPolicy DefaultPolicyType `mapstructure:"default-in-policy" json:"default-in-policy,omitempty"` } //struct for container rpol:config type ApplyPolicyConfig struct { // original -> rpol:import-policy ImportPolicyList []string `mapstructure:"import-policy-list" json:"import-policy-list,omitempty"` // original -> rpol:default-import-policy DefaultImportPolicy DefaultPolicyType `mapstructure:"default-import-policy" json:"default-import-policy,omitempty"` // original -> rpol:export-policy ExportPolicyList []string `mapstructure:"export-policy-list" json:"export-policy-list,omitempty"` // original -> rpol:default-export-policy DefaultExportPolicy DefaultPolicyType `mapstructure:"default-export-policy" json:"default-export-policy,omitempty"` // original -> gobgp:in-policy InPolicyList []string `mapstructure:"in-policy-list" json:"in-policy-list,omitempty"` // original -> gobgp:default-in-policy DefaultInPolicy DefaultPolicyType `mapstructure:"default-in-policy" json:"default-in-policy,omitempty"` } func (lhs *ApplyPolicyConfig) Equal(rhs *ApplyPolicyConfig) bool { if lhs == nil || rhs == nil { return false } if len(lhs.ImportPolicyList) != len(rhs.ImportPolicyList) { return false } for idx, l := range lhs.ImportPolicyList { if l != rhs.ImportPolicyList[idx] { return false } } if lhs.DefaultImportPolicy != rhs.DefaultImportPolicy { return false } if len(lhs.ExportPolicyList) != len(rhs.ExportPolicyList) { return false } for idx, l := range lhs.ExportPolicyList { if l != rhs.ExportPolicyList[idx] { return false } } if lhs.DefaultExportPolicy != rhs.DefaultExportPolicy { return false } if len(lhs.InPolicyList) != len(rhs.InPolicyList) { return false } for idx, l := range lhs.InPolicyList { if l != rhs.InPolicyList[idx] { return false } } if lhs.DefaultInPolicy != rhs.DefaultInPolicy { return false } return true } //struct for container rpol:apply-policy type ApplyPolicy struct { // original -> rpol:apply-policy-config Config ApplyPolicyConfig `mapstructure:"config" json:"config,omitempty"` // original -> rpol:apply-policy-state State ApplyPolicyState `mapstructure:"state" json:"state,omitempty"` } func (lhs *ApplyPolicy) Equal(rhs *ApplyPolicy) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp-mp:state type AfiSafiState struct { // original -> bgp-mp:afi-safi-name AfiSafiName AfiSafiType `mapstructure:"afi-safi-name" json:"afi-safi-name,omitempty"` // original -> bgp-mp:enabled //bgp-mp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> bgp-op:total-paths 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 type AfiSafiConfig struct { // original -> bgp-mp:afi-safi-name AfiSafiName AfiSafiType `mapstructure:"afi-safi-name" json:"afi-safi-name,omitempty"` // original -> bgp-mp:enabled //bgp-mp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` } func (lhs *AfiSafiConfig) Equal(rhs *AfiSafiConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.AfiSafiName != rhs.AfiSafiName { return false } if lhs.Enabled != rhs.Enabled { return false } return true } //struct for container bgp-mp:state type MpGracefulRestartState struct { // original -> bgp-mp:enabled //bgp-mp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> bgp-op:received //bgp-op:received's original type is boolean Received bool `mapstructure:"received" json:"received,omitempty"` // original -> bgp-op:advertised //bgp-op:advertised's original type is boolean Advertised bool `mapstructure:"advertised" json:"advertised,omitempty"` // original -> gobgp:end-of-rib-received //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 EndOfRibSent bool `mapstructure:"end-of-rib-sent" json:"end-of-rib-sent,omitempty"` } //struct for container bgp-mp:config type MpGracefulRestartConfig struct { // original -> bgp-mp:enabled //bgp-mp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` } func (lhs *MpGracefulRestartConfig) Equal(rhs *MpGracefulRestartConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Enabled != rhs.Enabled { return false } return true } //struct for container bgp-mp:graceful-restart type MpGracefulRestart struct { // original -> bgp-mp:mp-graceful-restart-config Config MpGracefulRestartConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp-mp:mp-graceful-restart-state State MpGracefulRestartState `mapstructure:"state" json:"state,omitempty"` } func (lhs *MpGracefulRestart) Equal(rhs *MpGracefulRestart) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp-mp:afi-safi type AfiSafi struct { // original -> bgp-mp:afi-safi-name // original -> bgp-mp:mp-graceful-restart MpGracefulRestart MpGracefulRestart `mapstructure:"mp-graceful-restart" json:"mp-graceful-restart,omitempty"` // original -> bgp-mp:afi-safi-config Config AfiSafiConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp-mp:afi-safi-state State AfiSafiState `mapstructure:"state" json:"state,omitempty"` // original -> rpol:apply-policy ApplyPolicy ApplyPolicy `mapstructure:"apply-policy" json:"apply-policy,omitempty"` // original -> bgp-mp:ipv4-unicast Ipv4Unicast Ipv4Unicast `mapstructure:"ipv4-unicast" json:"ipv4-unicast,omitempty"` // original -> bgp-mp:ipv6-unicast Ipv6Unicast Ipv6Unicast `mapstructure:"ipv6-unicast" json:"ipv6-unicast,omitempty"` // original -> bgp-mp:ipv4-labelled-unicast Ipv4LabelledUnicast Ipv4LabelledUnicast `mapstructure:"ipv4-labelled-unicast" json:"ipv4-labelled-unicast,omitempty"` // original -> bgp-mp:ipv6-labelled-unicast Ipv6LabelledUnicast Ipv6LabelledUnicast `mapstructure:"ipv6-labelled-unicast" json:"ipv6-labelled-unicast,omitempty"` // original -> bgp-mp:l3vpn-ipv4-unicast L3vpnIpv4Unicast L3vpnIpv4Unicast `mapstructure:"l3vpn-ipv4-unicast" json:"l3vpn-ipv4-unicast,omitempty"` // original -> bgp-mp:l3vpn-ipv6-unicast L3vpnIpv6Unicast L3vpnIpv6Unicast `mapstructure:"l3vpn-ipv6-unicast" json:"l3vpn-ipv6-unicast,omitempty"` // original -> bgp-mp:l3vpn-ipv4-multicast L3vpnIpv4Multicast L3vpnIpv4Multicast `mapstructure:"l3vpn-ipv4-multicast" json:"l3vpn-ipv4-multicast,omitempty"` // original -> bgp-mp:l3vpn-ipv6-multicast L3vpnIpv6Multicast L3vpnIpv6Multicast `mapstructure:"l3vpn-ipv6-multicast" json:"l3vpn-ipv6-multicast,omitempty"` // original -> bgp-mp:l2vpn-vpls L2vpnVpls L2vpnVpls `mapstructure:"l2vpn-vpls" json:"l2vpn-vpls,omitempty"` // original -> bgp-mp:l2vpn-evpn L2vpnEvpn L2vpnEvpn `mapstructure:"l2vpn-evpn" json:"l2vpn-evpn,omitempty"` // original -> bgp-mp:route-selection-options RouteSelectionOptions RouteSelectionOptions `mapstructure:"route-selection-options" json:"route-selection-options,omitempty"` // original -> bgp-mp:use-multiple-paths UseMultiplePaths UseMultiplePaths `mapstructure:"use-multiple-paths" json:"use-multiple-paths,omitempty"` // original -> bgp-mp:prefix-limit 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"` // original -> gobgp:long-lived-graceful-restart LongLivedGracefulRestart LongLivedGracefulRestart `mapstructure:"long-lived-graceful-restart" json:"long-lived-graceful-restart,omitempty"` } func (lhs *AfiSafi) Equal(rhs *AfiSafi) bool { if lhs == nil || rhs == nil { return false } if !lhs.MpGracefulRestart.Equal(&(rhs.MpGracefulRestart)) { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } if !lhs.ApplyPolicy.Equal(&(rhs.ApplyPolicy)) { return false } if !lhs.Ipv4Unicast.Equal(&(rhs.Ipv4Unicast)) { return false } if !lhs.Ipv6Unicast.Equal(&(rhs.Ipv6Unicast)) { return false } if !lhs.Ipv4LabelledUnicast.Equal(&(rhs.Ipv4LabelledUnicast)) { return false } if !lhs.Ipv6LabelledUnicast.Equal(&(rhs.Ipv6LabelledUnicast)) { return false } if !lhs.L3vpnIpv4Unicast.Equal(&(rhs.L3vpnIpv4Unicast)) { return false } if !lhs.L3vpnIpv6Unicast.Equal(&(rhs.L3vpnIpv6Unicast)) { return false } if !lhs.L3vpnIpv4Multicast.Equal(&(rhs.L3vpnIpv4Multicast)) { return false } if !lhs.L3vpnIpv6Multicast.Equal(&(rhs.L3vpnIpv6Multicast)) { return false } if !lhs.L2vpnVpls.Equal(&(rhs.L2vpnVpls)) { return false } if !lhs.L2vpnEvpn.Equal(&(rhs.L2vpnEvpn)) { return false } if !lhs.RouteSelectionOptions.Equal(&(rhs.RouteSelectionOptions)) { return false } if !lhs.UseMultiplePaths.Equal(&(rhs.UseMultiplePaths)) { return false } if !lhs.PrefixLimit.Equal(&(rhs.PrefixLimit)) { return false } if !lhs.RouteTargetMembership.Equal(&(rhs.RouteTargetMembership)) { return false } if !lhs.LongLivedGracefulRestart.Equal(&(rhs.LongLivedGracefulRestart)) { return false } return true } //struct for container bgp:state type GracefulRestartState struct { // original -> bgp:enabled //bgp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> bgp:restart-time RestartTime uint16 `mapstructure:"restart-time" json:"restart-time,omitempty"` // original -> bgp:stale-routes-time //bgp:stale-routes-time's original type is decimal64 StaleRoutesTime float64 `mapstructure:"stale-routes-time" json:"stale-routes-time,omitempty"` // original -> bgp:helper-only //bgp:helper-only's original type is boolean HelperOnly bool `mapstructure:"helper-only" json:"helper-only,omitempty"` // original -> bgp-op:peer-restart-time 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 PeerRestarting bool `mapstructure:"peer-restarting" json:"peer-restarting,omitempty"` // original -> bgp-op:local-restarting //bgp-op:local-restarting's original type is boolean LocalRestarting bool `mapstructure:"local-restarting" json:"local-restarting,omitempty"` // original -> bgp-op:mode 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 NotificationEnabled bool `mapstructure:"notification-enabled" json:"notification-enabled,omitempty"` // original -> gobgp:long-lived-enabled //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 type GracefulRestartConfig struct { // original -> bgp:enabled //bgp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> bgp:restart-time RestartTime uint16 `mapstructure:"restart-time" json:"restart-time,omitempty"` // original -> bgp:stale-routes-time //bgp:stale-routes-time's original type is decimal64 StaleRoutesTime float64 `mapstructure:"stale-routes-time" json:"stale-routes-time,omitempty"` // original -> bgp:helper-only //bgp:helper-only's original type is boolean 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 NotificationEnabled bool `mapstructure:"notification-enabled" json:"notification-enabled,omitempty"` // original -> gobgp:long-lived-enabled //gobgp:long-lived-enabled's original type is boolean LongLivedEnabled bool `mapstructure:"long-lived-enabled" json:"long-lived-enabled,omitempty"` } func (lhs *GracefulRestartConfig) Equal(rhs *GracefulRestartConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Enabled != rhs.Enabled { return false } if lhs.RestartTime != rhs.RestartTime { return false } if lhs.StaleRoutesTime != rhs.StaleRoutesTime { return false } if lhs.HelperOnly != rhs.HelperOnly { return false } if lhs.DeferralTime != rhs.DeferralTime { return false } if lhs.NotificationEnabled != rhs.NotificationEnabled { return false } if lhs.LongLivedEnabled != rhs.LongLivedEnabled { return false } return true } //struct for container bgp:graceful-restart type GracefulRestart struct { // original -> bgp:graceful-restart-config Config GracefulRestartConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:graceful-restart-state State GracefulRestartState `mapstructure:"state" json:"state,omitempty"` } func (lhs *GracefulRestart) Equal(rhs *GracefulRestart) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp-mp:state type IbgpState struct { // original -> bgp-mp:maximum-paths MaximumPaths uint32 `mapstructure:"maximum-paths" json:"maximum-paths,omitempty"` } //struct for container bgp-mp:config type IbgpConfig struct { // original -> bgp-mp:maximum-paths MaximumPaths uint32 `mapstructure:"maximum-paths" json:"maximum-paths,omitempty"` } func (lhs *IbgpConfig) Equal(rhs *IbgpConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.MaximumPaths != rhs.MaximumPaths { return false } return true } //struct for container bgp-mp:ibgp type Ibgp struct { // original -> bgp-mp:ibgp-config Config IbgpConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp-mp:ibgp-state State IbgpState `mapstructure:"state" json:"state,omitempty"` } func (lhs *Ibgp) Equal(rhs *Ibgp) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp-mp:state type EbgpState struct { // original -> bgp-mp:allow-multiple-as //bgp-mp:allow-multiple-as's original type is boolean AllowMultipleAs bool `mapstructure:"allow-multiple-as" json:"allow-multiple-as,omitempty"` // original -> bgp-mp:maximum-paths MaximumPaths uint32 `mapstructure:"maximum-paths" json:"maximum-paths,omitempty"` } //struct for container bgp-mp:config type EbgpConfig struct { // original -> bgp-mp:allow-multiple-as //bgp-mp:allow-multiple-as's original type is boolean AllowMultipleAs bool `mapstructure:"allow-multiple-as" json:"allow-multiple-as,omitempty"` // original -> bgp-mp:maximum-paths MaximumPaths uint32 `mapstructure:"maximum-paths" json:"maximum-paths,omitempty"` } func (lhs *EbgpConfig) Equal(rhs *EbgpConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.AllowMultipleAs != rhs.AllowMultipleAs { return false } if lhs.MaximumPaths != rhs.MaximumPaths { return false } return true } //struct for container bgp-mp:ebgp type Ebgp struct { // original -> bgp-mp:ebgp-config Config EbgpConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp-mp:ebgp-state State EbgpState `mapstructure:"state" json:"state,omitempty"` } func (lhs *Ebgp) Equal(rhs *Ebgp) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp-mp:state type UseMultiplePathsState struct { // original -> bgp-mp:enabled //bgp-mp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` } //struct for container bgp-mp:config type UseMultiplePathsConfig struct { // original -> bgp-mp:enabled //bgp-mp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` } func (lhs *UseMultiplePathsConfig) Equal(rhs *UseMultiplePathsConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Enabled != rhs.Enabled { return false } return true } //struct for container bgp-mp:use-multiple-paths type UseMultiplePaths struct { // original -> bgp-mp:use-multiple-paths-config Config UseMultiplePathsConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp-mp:use-multiple-paths-state State UseMultiplePathsState `mapstructure:"state" json:"state,omitempty"` // original -> bgp-mp:ebgp Ebgp Ebgp `mapstructure:"ebgp" json:"ebgp,omitempty"` // original -> bgp-mp:ibgp Ibgp Ibgp `mapstructure:"ibgp" json:"ibgp,omitempty"` } func (lhs *UseMultiplePaths) Equal(rhs *UseMultiplePaths) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } if !lhs.Ebgp.Equal(&(rhs.Ebgp)) { return false } if !lhs.Ibgp.Equal(&(rhs.Ibgp)) { return false } return true } //struct for container bgp:state type ConfederationState struct { // original -> bgp:enabled //bgp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> bgp:identifier //bgp:identifier's original type is inet:as-number Identifier uint32 `mapstructure:"identifier" json:"identifier,omitempty"` // original -> bgp:member-as // original type is list of inet:as-number MemberAsList []uint32 `mapstructure:"member-as-list" json:"member-as-list,omitempty"` } //struct for container bgp:config type ConfederationConfig struct { // original -> bgp:enabled //bgp:enabled's original type is boolean Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // original -> bgp:identifier //bgp:identifier's original type is inet:as-number Identifier uint32 `mapstructure:"identifier" json:"identifier,omitempty"` // original -> bgp:member-as // original type is list of inet:as-number MemberAsList []uint32 `mapstructure:"member-as-list" json:"member-as-list,omitempty"` } func (lhs *ConfederationConfig) Equal(rhs *ConfederationConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.Enabled != rhs.Enabled { return false } if lhs.Identifier != rhs.Identifier { return false } if len(lhs.MemberAsList) != len(rhs.MemberAsList) { return false } for idx, l := range lhs.MemberAsList { if l != rhs.MemberAsList[idx] { return false } } return true } //struct for container bgp:confederation type Confederation struct { // original -> bgp:confederation-config Config ConfederationConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:confederation-state State ConfederationState `mapstructure:"state" json:"state,omitempty"` } func (lhs *Confederation) Equal(rhs *Confederation) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp:state type DefaultRouteDistanceState struct { // original -> bgp:external-route-distance ExternalRouteDistance uint8 `mapstructure:"external-route-distance" json:"external-route-distance,omitempty"` // original -> bgp:internal-route-distance InternalRouteDistance uint8 `mapstructure:"internal-route-distance" json:"internal-route-distance,omitempty"` } //struct for container bgp:config type DefaultRouteDistanceConfig struct { // original -> bgp:external-route-distance ExternalRouteDistance uint8 `mapstructure:"external-route-distance" json:"external-route-distance,omitempty"` // original -> bgp:internal-route-distance InternalRouteDistance uint8 `mapstructure:"internal-route-distance" json:"internal-route-distance,omitempty"` } func (lhs *DefaultRouteDistanceConfig) Equal(rhs *DefaultRouteDistanceConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.ExternalRouteDistance != rhs.ExternalRouteDistance { return false } if lhs.InternalRouteDistance != rhs.InternalRouteDistance { return false } return true } //struct for container bgp:default-route-distance type DefaultRouteDistance struct { // original -> bgp:default-route-distance-config Config DefaultRouteDistanceConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:default-route-distance-state State DefaultRouteDistanceState `mapstructure:"state" json:"state,omitempty"` } func (lhs *DefaultRouteDistance) Equal(rhs *DefaultRouteDistance) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp-mp:state type RouteSelectionOptionsState struct { // original -> bgp-mp:always-compare-med //bgp-mp:always-compare-med's original type is boolean 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 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 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 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 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 IgnoreNextHopIgpMetric bool `mapstructure:"ignore-next-hop-igp-metric" json:"ignore-next-hop-igp-metric,omitempty"` } //struct for container bgp-mp:config type RouteSelectionOptionsConfig struct { // original -> bgp-mp:always-compare-med //bgp-mp:always-compare-med's original type is boolean 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 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 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 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 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 IgnoreNextHopIgpMetric bool `mapstructure:"ignore-next-hop-igp-metric" json:"ignore-next-hop-igp-metric,omitempty"` } func (lhs *RouteSelectionOptionsConfig) Equal(rhs *RouteSelectionOptionsConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.AlwaysCompareMed != rhs.AlwaysCompareMed { return false } if lhs.IgnoreAsPathLength != rhs.IgnoreAsPathLength { return false } if lhs.ExternalCompareRouterId != rhs.ExternalCompareRouterId { return false } if lhs.AdvertiseInactiveRoutes != rhs.AdvertiseInactiveRoutes { return false } if lhs.EnableAigp != rhs.EnableAigp { return false } if lhs.IgnoreNextHopIgpMetric != rhs.IgnoreNextHopIgpMetric { return false } return true } //struct for container bgp-mp:route-selection-options type RouteSelectionOptions struct { // original -> bgp-mp:route-selection-options-config Config RouteSelectionOptionsConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp-mp:route-selection-options-state State RouteSelectionOptionsState `mapstructure:"state" json:"state,omitempty"` } func (lhs *RouteSelectionOptions) Equal(rhs *RouteSelectionOptions) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } return true } //struct for container bgp:state type GlobalState struct { // original -> bgp:as //bgp:as's original type is inet:as-number As uint32 `mapstructure:"as" json:"as,omitempty"` // original -> bgp:router-id //bgp:router-id's original type is inet:ipv4-address RouterId string `mapstructure:"router-id" json:"router-id,omitempty"` // original -> bgp-op:total-paths 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"` // original -> gobgp:local-address LocalAddressList []string `mapstructure:"local-address-list" json:"local-address-list,omitempty"` } //struct for container bgp:config type GlobalConfig struct { // original -> bgp:as //bgp:as's original type is inet:as-number As uint32 `mapstructure:"as" json:"as,omitempty"` // original -> bgp:router-id //bgp:router-id's original type is inet:ipv4-address RouterId string `mapstructure:"router-id" json:"router-id,omitempty"` // original -> gobgp:port Port int32 `mapstructure:"port" json:"port,omitempty"` // original -> gobgp:local-address LocalAddressList []string `mapstructure:"local-address-list" json:"local-address-list,omitempty"` } func (lhs *GlobalConfig) Equal(rhs *GlobalConfig) bool { if lhs == nil || rhs == nil { return false } if lhs.As != rhs.As { return false } if lhs.RouterId != rhs.RouterId { return false } if lhs.Port != rhs.Port { return false } if len(lhs.LocalAddressList) != len(rhs.LocalAddressList) { return false } for idx, l := range lhs.LocalAddressList { if l != rhs.LocalAddressList[idx] { return false } } return true } //struct for container bgp:global type Global struct { // original -> bgp:global-config Config GlobalConfig `mapstructure:"config" json:"config,omitempty"` // original -> bgp:global-state State GlobalState `mapstructure:"state" json:"state,omitempty"` // original -> bgp-mp:route-selection-options RouteSelectionOptions RouteSelectionOptions `mapstructure:"route-selection-options" json:"route-selection-options,omitempty"` // original -> bgp:default-route-distance DefaultRouteDistance DefaultRouteDistance `mapstructure:"default-route-distance" json:"default-route-distance,omitempty"` // original -> bgp:confederation Confederation Confederation `mapstructure:"confederation" json:"confederation,omitempty"` // original -> bgp-mp:use-multiple-paths UseMultiplePaths UseMultiplePaths `mapstructure:"use-multiple-paths" json:"use-multiple-paths,omitempty"` // original -> bgp:graceful-restart GracefulRestart GracefulRestart `mapstructure:"graceful-restart" json:"graceful-restart,omitempty"` // original -> bgp:afi-safis AfiSafis []AfiSafi `mapstructure:"afi-safis" json:"afi-safis,omitempty"` // original -> rpol:apply-policy ApplyPolicy ApplyPolicy `mapstructure:"apply-policy" json:"apply-policy,omitempty"` } func (lhs *Global) Equal(rhs *Global) bool { if lhs == nil || rhs == nil { return false } if !lhs.Config.Equal(&(rhs.Config)) { return false } if !lhs.RouteSelectionOptions.Equal(&(rhs.RouteSelectionOptions)) { return false } if !lhs.DefaultRouteDistance.Equal(&(rhs.DefaultRouteDistance)) { return false } if !lhs.Confederation.Equal(&(rhs.Confederation)) { return false } if !lhs.UseMultiplePaths.Equal(&(rhs.UseMultiplePaths)) { return false } if !lhs.GracefulRestart.Equal(&(rhs.GracefulRestart)) { return false } if len(lhs.AfiSafis) != len(rhs.AfiSafis) { return false } { lmap := make(map[string]*AfiSafi) for i, l := range lhs.AfiSafis { lmap[mapkey(i, string(l.Config.AfiSafiName))] = &lhs.AfiSafis[i] } for i, r := range rhs.AfiSafis { if l, y := lmap[mapkey(i, string(r.Config.AfiSafiName))]; !y { return false } else if !r.Equal(l) { return false } } } if !lhs.ApplyPolicy.Equal(&(rhs.ApplyPolicy)) { return false } return true } //struct for container bgp:bgp type Bgp struct { // original -> bgp:global Global Global `mapstructure:"global" json:"global,omitempty"` // original -> bgp:neighbors Neighbors []Neighbor `mapstructure:"neighbors" json:"neighbors,omitempty"` // original -> 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"` // original -> gobgp:bmp-servers BmpServers []BmpServer `mapstructure:"bmp-servers" json:"bmp-servers,omitempty"` // original -> gobgp:mrt-dump MrtDump []Mrt `mapstructure:"mrt-dump" json:"mrt-dump,omitempty"` // original -> gobgp:zebra Zebra Zebra `mapstructure:"zebra" json:"zebra,omitempty"` // original -> gobgp:collector Collector Collector `mapstructure:"collector" json:"collector,omitempty"` } func (lhs *Bgp) Equal(rhs *Bgp) bool { if lhs == nil || rhs == nil { return false } if !lhs.Global.Equal(&(rhs.Global)) { return false } if len(lhs.Neighbors) != len(rhs.Neighbors) { return false } { lmap := make(map[string]*Neighbor) for i, l := range lhs.Neighbors { lmap[mapkey(i, string(l.Config.NeighborAddress))] = &lhs.Neighbors[i] } for i, r := range rhs.Neighbors { if l, y := lmap[mapkey(i, string(r.Config.NeighborAddress))]; !y { return false } else if !r.Equal(l) { return false } } } if len(lhs.PeerGroups) != len(rhs.PeerGroups) { return false } { lmap := make(map[string]*PeerGroup) for i, l := range lhs.PeerGroups { lmap[mapkey(i, string(l.Config.PeerGroupName))] = &lhs.PeerGroups[i] } for i, r := range rhs.PeerGroups { if l, y := lmap[mapkey(i, string(r.Config.PeerGroupName))]; !y { return false } else if !r.Equal(l) { return false } } } if len(lhs.RpkiServers) != len(rhs.RpkiServers) { return false } { lmap := make(map[string]*RpkiServer) for i, l := range lhs.RpkiServers { lmap[mapkey(i, string(l.Config.Address))] = &lhs.RpkiServers[i] } for i, r := range rhs.RpkiServers { if l, y := lmap[mapkey(i, string(r.Config.Address))]; !y { return false } else if !r.Equal(l) { return false } } } if len(lhs.BmpServers) != len(rhs.BmpServers) { return false } { lmap := make(map[string]*BmpServer) for i, l := range lhs.BmpServers { lmap[mapkey(i, string(l.Config.Address))] = &lhs.BmpServers[i] } for i, r := range rhs.BmpServers { if l, y := lmap[mapkey(i, string(r.Config.Address))]; !y { return false } else if !r.Equal(l) { return false } } } if len(lhs.MrtDump) != len(rhs.MrtDump) { return false } { lmap := make(map[string]*Mrt) for i, l := range lhs.MrtDump { lmap[mapkey(i, string(l.Config.FileName))] = &lhs.MrtDump[i] } for i, r := range rhs.MrtDump { if l, y := lmap[mapkey(i, string(r.Config.FileName))]; !y { return false } else if !r.Equal(l) { return false } } } if !lhs.Zebra.Equal(&(rhs.Zebra)) { return false } if !lhs.Collector.Equal(&(rhs.Collector)) { return false } return true } //struct for container gobgp:set-large-community-method type SetLargeCommunityMethod struct { // original -> gobgp:communities CommunitiesList []string `mapstructure:"communities-list" json:"communities-list,omitempty"` } func (lhs *SetLargeCommunityMethod) Equal(rhs *SetLargeCommunityMethod) bool { if lhs == nil || rhs == nil { return false } if len(lhs.CommunitiesList) != len(rhs.CommunitiesList) { return false } for idx, l := range lhs.CommunitiesList { if l != rhs.CommunitiesList[idx] { return false } } return true } //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"` // original -> gobgp:options Options BgpSetCommunityOptionType `mapstructure:"options" json:"options,omitempty"` } func (lhs *SetLargeCommunity) Equal(rhs *SetLargeCommunity) bool { if lhs == nil || rhs == nil { return false } if !lhs.SetLargeCommunityMethod.Equal(&(rhs.SetLargeCommunityMethod)) { return false } if lhs.Options != rhs.Options { return false } return true } //struct for container bgp-pol:set-ext-community-method type SetExtCommunityMethod struct { // original -> bgp-pol:communities // original type is list of union CommunitiesList []string `mapstructure:"communities-list" json:"communities-list,omitempty"` // original -> bgp-pol:ext-community-set-ref ExtCommunitySetRef string `mapstructure:"ext-community-set-ref" json:"ext-community-set-ref,omitempty"` } func (lhs *SetExtCommunityMethod) Equal(rhs *SetExtCommunityMethod) bool { if lhs == nil || rhs == nil { return false } if len(lhs.CommunitiesList) != len(rhs.CommunitiesList) { return false } for idx, l := range lhs.CommunitiesList { if l != rhs.CommunitiesList[idx] { return false } } if lhs.ExtCommunitySetRef != rhs.ExtCommunitySetRef { return false } return true } //struct for container bgp-pol:set-ext-community type SetExtCommunity struct { // original -> bgp-pol:set-ext-community-method 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 Options string `mapstructure:"options" json:"options,omitempty"` } func (lhs *SetExtCommunity) Equal(rhs *SetExtCommunity) bool { if lhs == nil || rhs == nil { return false } if !lhs.SetExtCommunityMethod.Equal(&(rhs.SetExtCommunityMethod)) { return false } if lhs.Options != rhs.Options { return false } return true } //struct for container bgp-pol:set-community-method type SetCommunityMethod struct { // original -> bgp-pol:communities // original type is list of union CommunitiesList []string `mapstructure:"communities-list" json:"communities-list,omitempty"` // original -> bgp-pol:community-set-ref CommunitySetRef string `mapstructure:"community-set-ref" json:"community-set-ref,omitempty"` } func (lhs *SetCommunityMethod) Equal(rhs *SetCommunityMethod) bool { if lhs == nil || rhs == nil { return false } if len(lhs.CommunitiesList) != len(rhs.CommunitiesList) { return false } for idx, l := range lhs.CommunitiesList { if l != rhs.CommunitiesList[idx] { return false } } if lhs.CommunitySetRef != rhs.CommunitySetRef { return false } return true } //struct for container bgp-pol:set-community type SetCommunity struct { // original -> bgp-pol:set-community-method 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 Options string `mapstructure:"options" json:"options,omitempty"` } func (lhs *SetCommunity) Equal(rhs *SetCommunity) bool { if lhs == nil || rhs == nil { return false } if !lhs.SetCommunityMethod.Equal(&(rhs.SetCommunityMethod)) { return false } if lhs.Options != rhs.Options { return false } return true } //struct for container bgp-pol:set-as-path-prepend type SetAsPathPrepend struct { // original -> bgp-pol:repeat-n RepeatN uint8 `mapstructure:"repeat-n" json:"repeat-n,omitempty"` // original -> gobgp:as //gobgp:as's original type is union As string `mapstructure:"as" json:"as,omitempty"` } func (lhs *SetAsPathPrepend) Equal(rhs *SetAsPathPrepend) bool { if lhs == nil || rhs == nil { return false } if lhs.RepeatN != rhs.RepeatN { return false } if lhs.As != rhs.As { return false } return true } //struct for container bgp-pol:bgp-actions type BgpActions struct { // original -> bgp-pol:set-as-path-prepend SetAsPathPrepend SetAsPathPrepend `mapstructure:"set-as-path-prepend" json:"set-as-path-prepend,omitempty"` // original -> bgp-pol:set-community SetCommunity SetCommunity `mapstructure:"set-community" json:"set-community,omitempty"` // original -> bgp-pol:set-ext-community SetExtCommunity SetExtCommunity `mapstructure:"set-ext-community" json:"set-ext-community,omitempty"` // original -> bgp-pol:set-route-origin SetRouteOrigin BgpOriginAttrType `mapstructure:"set-route-origin" json:"set-route-origin,omitempty"` // original -> bgp-pol:set-local-pref SetLocalPref uint32 `mapstructure:"set-local-pref" json:"set-local-pref,omitempty"` // original -> bgp-pol:set-next-hop SetNextHop BgpNextHopType `mapstructure:"set-next-hop" json:"set-next-hop,omitempty"` // original -> bgp-pol:set-med 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"` } func (lhs *BgpActions) Equal(rhs *BgpActions) bool { if lhs == nil || rhs == nil { return false } if !lhs.SetAsPathPrepend.Equal(&(rhs.SetAsPathPrepend)) { return false } if !lhs.SetCommunity.Equal(&(rhs.SetCommunity)) { return false } if !lhs.SetExtCommunity.Equal(&(rhs.SetExtCommunity)) { return false } if lhs.SetRouteOrigin != rhs.SetRouteOrigin { return false } if lhs.SetLocalPref != rhs.SetLocalPref { return false } if lhs.SetNextHop != rhs.SetNextHop { return false } if lhs.SetMed != rhs.SetMed { return false } if !lhs.SetLargeCommunity.Equal(&(rhs.SetLargeCommunity)) { return false } return true } //struct for container rpol:igp-actions type IgpActions struct { // original -> rpol:set-tag SetTag TagType `mapstructure:"set-tag" json:"set-tag,omitempty"` } func (lhs *IgpActions) Equal(rhs *IgpActions) bool { if lhs == nil || rhs == nil { return false } if lhs.SetTag != rhs.SetTag { return false } return true } //struct for container rpol:actions type Actions struct { // original -> rpol:route-disposition RouteDisposition RouteDisposition `mapstructure:"route-disposition" json:"route-disposition,omitempty"` // original -> rpol:igp-actions IgpActions IgpActions `mapstructure:"igp-actions" json:"igp-actions,omitempty"` // original -> bgp-pol:bgp-actions BgpActions BgpActions `mapstructure:"bgp-actions" json:"bgp-actions,omitempty"` } func (lhs *Actions) Equal(rhs *Actions) bool { if lhs == nil || rhs == nil { return false } if lhs.RouteDisposition != rhs.RouteDisposition { return false } if !lhs.IgpActions.Equal(&(rhs.IgpActions)) { return false } if !lhs.BgpActions.Equal(&(rhs.BgpActions)) { return false } return true } //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 MatchSetOptions MatchSetOptionsType `mapstructure:"match-set-options" json:"match-set-options,omitempty"` } func (lhs *MatchLargeCommunitySet) Equal(rhs *MatchLargeCommunitySet) bool { if lhs == nil || rhs == nil { return false } if lhs.LargeCommunitySet != rhs.LargeCommunitySet { return false } if lhs.MatchSetOptions != rhs.MatchSetOptions { return false } return true } //struct for container bgp-pol:as-path-length type AsPathLength struct { // original -> ptypes:operator Operator AttributeComparison `mapstructure:"operator" json:"operator,omitempty"` // original -> ptypes:value Value uint32 `mapstructure:"value" json:"value,omitempty"` } func (lhs *AsPathLength) Equal(rhs *AsPathLength) bool { if lhs == nil || rhs == nil { return false } if lhs.Operator != rhs.Operator { return false } if lhs.Value != rhs.Value { return false } return true } //struct for container bgp-pol:community-count type CommunityCount struct { // original -> ptypes:operator Operator AttributeComparison `mapstructure:"operator" json:"operator,omitempty"` // original -> ptypes:value Value uint32 `mapstructure:"value" json:"value,omitempty"` } func (lhs *CommunityCount) Equal(rhs *CommunityCount) bool { if lhs == nil || rhs == nil { return false } if lhs.Operator != rhs.Operator { return false } if lhs.Value != rhs.Value { return false } return true } //struct for container bgp-pol:match-as-path-set type MatchAsPathSet struct { // original -> bgp-pol:as-path-set AsPathSet string `mapstructure:"as-path-set" json:"as-path-set,omitempty"` // original -> rpol:match-set-options MatchSetOptions MatchSetOptionsType `mapstructure:"match-set-options" json:"match-set-options,omitempty"` } func (lhs *MatchAsPathSet) Equal(rhs *MatchAsPathSet) bool { if lhs == nil || rhs == nil { return false } if lhs.AsPathSet != rhs.AsPathSet { return false } if lhs.MatchSetOptions != rhs.MatchSetOptions { return false } return true } //struct for container bgp-pol:match-ext-community-set type MatchExtCommunitySet struct { // original -> bgp-pol:ext-community-set ExtCommunitySet string `mapstructure:"ext-community-set" json:"ext-community-set,omitempty"` // original -> rpol:match-set-options MatchSetOptions MatchSetOptionsType `mapstructure:"match-set-options" json:"match-set-options,omitempty"` } func (lhs *MatchExtCommunitySet) Equal(rhs *MatchExtCommunitySet) bool { if lhs == nil || rhs == nil { return false } if lhs.ExtCommunitySet != rhs.ExtCommunitySet { return false } if lhs.MatchSetOptions != rhs.MatchSetOptions { return false } return true } //struct for container bgp-pol:match-community-set type MatchCommunitySet struct { // original -> bgp-pol:community-set CommunitySet string `mapstructure:"community-set" json:"community-set,omitempty"` // original -> rpol:match-set-options MatchSetOptions MatchSetOptionsType `mapstructure:"match-set-options" json:"match-set-options,omitempty"` } func (lhs *MatchCommunitySet) Equal(rhs *MatchCommunitySet) bool { if lhs == nil || rhs == nil { return false } if lhs.CommunitySet != rhs.CommunitySet { return false } if lhs.MatchSetOptions != rhs.MatchSetOptions { return false } return true } //struct for container bgp-pol:bgp-conditions type BgpConditions struct { // original -> bgp-pol:match-community-set MatchCommunitySet MatchCommunitySet `mapstructure:"match-community-set" json:"match-community-set,omitempty"` // original -> bgp-pol:match-ext-community-set MatchExtCommunitySet MatchExtCommunitySet `mapstructure:"match-ext-community-set" json:"match-ext-community-set,omitempty"` // original -> bgp-pol:match-as-path-set MatchAsPathSet MatchAsPathSet `mapstructure:"match-as-path-set" json:"match-as-path-set,omitempty"` // original -> bgp-pol:med-eq MedEq uint32 `mapstructure:"med-eq" json:"med-eq,omitempty"` // original -> bgp-pol:origin-eq OriginEq BgpOriginAttrType `mapstructure:"origin-eq" json:"origin-eq,omitempty"` // original -> bgp-pol:next-hop-in // original type is list of inet:ip-address NextHopInList []string `mapstructure:"next-hop-in-list" json:"next-hop-in-list,omitempty"` // original -> bgp-pol:afi-safi-in AfiSafiInList []AfiSafiType `mapstructure:"afi-safi-in-list" json:"afi-safi-in-list,omitempty"` // original -> bgp-pol:local-pref-eq LocalPrefEq uint32 `mapstructure:"local-pref-eq" json:"local-pref-eq,omitempty"` // original -> bgp-pol:community-count CommunityCount CommunityCount `mapstructure:"community-count" json:"community-count,omitempty"` // original -> bgp-pol:as-path-length AsPathLength AsPathLength `mapstructure:"as-path-length" json:"as-path-length,omitempty"` // original -> bgp-pol:route-type RouteType RouteType `mapstructure:"route-type" json:"route-type,omitempty"` // original -> gobgp:rpki-validation-result 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"` } func (lhs *BgpConditions) Equal(rhs *BgpConditions) bool { if lhs == nil || rhs == nil { return false } if !lhs.MatchCommunitySet.Equal(&(rhs.MatchCommunitySet)) { return false } if !lhs.MatchExtCommunitySet.Equal(&(rhs.MatchExtCommunitySet)) { return false } if !lhs.MatchAsPathSet.Equal(&(rhs.MatchAsPathSet)) { return false } if lhs.MedEq != rhs.MedEq { return false } if lhs.OriginEq != rhs.OriginEq { return false } if len(lhs.NextHopInList) != len(rhs.NextHopInList) { return false } for idx, l := range lhs.NextHopInList { if l != rhs.NextHopInList[idx] { return false } } if len(lhs.AfiSafiInList) != len(rhs.AfiSafiInList) { return false } for idx, l := range lhs.AfiSafiInList { if l != rhs.AfiSafiInList[idx] { return false } } if lhs.LocalPrefEq != rhs.LocalPrefEq { return false } if !lhs.CommunityCount.Equal(&(rhs.CommunityCount)) { return false } if !lhs.AsPathLength.Equal(&(rhs.AsPathLength)) { return false } if lhs.RouteType != rhs.RouteType { return false } if lhs.RpkiValidationResult != rhs.RpkiValidationResult { return false } if !lhs.MatchLargeCommunitySet.Equal(&(rhs.MatchLargeCommunitySet)) { return false } return true } //struct for container rpol:igp-conditions type IgpConditions struct { } func (lhs *IgpConditions) Equal(rhs *IgpConditions) bool { if lhs == nil || rhs == nil { return false } return true } //struct for container rpol:match-tag-set type MatchTagSet struct { // original -> rpol:tag-set TagSet string `mapstructure:"tag-set" json:"tag-set,omitempty"` // original -> rpol:match-set-options MatchSetOptions MatchSetOptionsRestrictedType `mapstructure:"match-set-options" json:"match-set-options,omitempty"` } func (lhs *MatchTagSet) Equal(rhs *MatchTagSet) bool { if lhs == nil || rhs == nil { return false } if lhs.TagSet != rhs.TagSet { return false } if lhs.MatchSetOptions != rhs.MatchSetOptions { return false } return true } //struct for container rpol:match-neighbor-set type MatchNeighborSet struct { // original -> rpol:neighbor-set NeighborSet string `mapstructure:"neighbor-set" json:"neighbor-set,omitempty"` // original -> rpol:match-set-options MatchSetOptions MatchSetOptionsRestrictedType `mapstructure:"match-set-options" json:"match-set-options,omitempty"` } func (lhs *MatchNeighborSet) Equal(rhs *MatchNeighborSet) bool { if lhs == nil || rhs == nil { return false } if lhs.NeighborSet != rhs.NeighborSet { return false } if lhs.MatchSetOptions != rhs.MatchSetOptions { return false } return true } //struct for container rpol:match-prefix-set type MatchPrefixSet struct { // original -> rpol:prefix-set PrefixSet string `mapstructure:"prefix-set" json:"prefix-set,omitempty"` // original -> rpol:match-set-options MatchSetOptions MatchSetOptionsRestrictedType `mapstructure:"match-set-options" json:"match-set-options,omitempty"` } func (lhs *MatchPrefixSet) Equal(rhs *MatchPrefixSet) bool { if lhs == nil || rhs == nil { return false } if lhs.PrefixSet != rhs.PrefixSet { return false } if lhs.MatchSetOptions != rhs.MatchSetOptions { return false } return true } //struct for container rpol:conditions type Conditions struct { // original -> rpol:call-policy CallPolicy string `mapstructure:"call-policy" json:"call-policy,omitempty"` // original -> rpol:match-prefix-set MatchPrefixSet MatchPrefixSet `mapstructure:"match-prefix-set" json:"match-prefix-set,omitempty"` // original -> rpol:match-neighbor-set MatchNeighborSet MatchNeighborSet `mapstructure:"match-neighbor-set" json:"match-neighbor-set,omitempty"` // original -> rpol:match-tag-set MatchTagSet MatchTagSet `mapstructure:"match-tag-set" json:"match-tag-set,omitempty"` // original -> rpol:install-protocol-eq InstallProtocolEq InstallProtocolType `mapstructure:"install-protocol-eq" json:"install-protocol-eq,omitempty"` // original -> rpol:igp-conditions IgpConditions IgpConditions `mapstructure:"igp-conditions" json:"igp-conditions,omitempty"` // original -> bgp-pol:bgp-conditions BgpConditions BgpConditions `mapstructure:"bgp-conditions" json:"bgp-conditions,omitempty"` } func (lhs *Conditions) Equal(rhs *Conditions) bool { if lhs == nil || rhs == nil { return false } if lhs.CallPolicy != rhs.CallPolicy { return false } if !lhs.MatchPrefixSet.Equal(&(rhs.MatchPrefixSet)) { return false } if !lhs.MatchNeighborSet.Equal(&(rhs.MatchNeighborSet)) { return false } if !lhs.MatchTagSet.Equal(&(rhs.MatchTagSet)) { return false } if lhs.InstallProtocolEq != rhs.InstallProtocolEq { return false } if !lhs.IgpConditions.Equal(&(rhs.IgpConditions)) { return false } if !lhs.BgpConditions.Equal(&(rhs.BgpConditions)) { return false } return true } //struct for container rpol:statement type Statement struct { // original -> rpol:name Name string `mapstructure:"name" json:"name,omitempty"` // original -> rpol:conditions Conditions Conditions `mapstructure:"conditions" json:"conditions,omitempty"` // original -> rpol:actions Actions Actions `mapstructure:"actions" json:"actions,omitempty"` } func (lhs *Statement) Equal(rhs *Statement) bool { if lhs == nil || rhs == nil { return false } if lhs.Name != rhs.Name { return false } if !lhs.Conditions.Equal(&(rhs.Conditions)) { return false } if !lhs.Actions.Equal(&(rhs.Actions)) { return false } return true } //struct for container rpol:policy-definition type PolicyDefinition struct { // original -> rpol:name Name string `mapstructure:"name" json:"name,omitempty"` // original -> rpol:statements Statements []Statement `mapstructure:"statements" json:"statements,omitempty"` } func (lhs *PolicyDefinition) Equal(rhs *PolicyDefinition) bool { if lhs == nil || rhs == nil { return false } if lhs.Name != rhs.Name { return false } if len(lhs.Statements) != len(rhs.Statements) { return false } { lmap := make(map[string]*Statement) for i, l := range lhs.Statements { lmap[mapkey(i, string(l.Name))] = &lhs.Statements[i] } for i, r := range rhs.Statements { if l, y := lmap[mapkey(i, string(r.Name))]; !y { return false } else if !r.Equal(l) { return false } } } return true } //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 LargeCommunityList []string `mapstructure:"large-community-list" json:"large-community-list,omitempty"` } func (lhs *LargeCommunitySet) Equal(rhs *LargeCommunitySet) bool { if lhs == nil || rhs == nil { return false } if lhs.LargeCommunitySetName != rhs.LargeCommunitySetName { return false } if len(lhs.LargeCommunityList) != len(rhs.LargeCommunityList) { return false } for idx, l := range lhs.LargeCommunityList { if l != rhs.LargeCommunityList[idx] { return false } } return true } //struct for container bgp-pol:as-path-set type AsPathSet struct { // original -> bgp-pol:as-path-set-name AsPathSetName string `mapstructure:"as-path-set-name" json:"as-path-set-name,omitempty"` // original -> gobgp:as-path AsPathList []string `mapstructure:"as-path-list" json:"as-path-list,omitempty"` } func (lhs *AsPathSet) Equal(rhs *AsPathSet) bool { if lhs == nil || rhs == nil { return false } if lhs.AsPathSetName != rhs.AsPathSetName { return false } if len(lhs.AsPathList) != len(rhs.AsPathList) { return false } for idx, l := range lhs.AsPathList { if l != rhs.AsPathList[idx] { return false } } return true } //struct for container bgp-pol:ext-community-set type ExtCommunitySet struct { // original -> bgp-pol:ext-community-set-name ExtCommunitySetName string `mapstructure:"ext-community-set-name" json:"ext-community-set-name,omitempty"` // original -> gobgp:ext-community ExtCommunityList []string `mapstructure:"ext-community-list" json:"ext-community-list,omitempty"` } func (lhs *ExtCommunitySet) Equal(rhs *ExtCommunitySet) bool { if lhs == nil || rhs == nil { return false } if lhs.ExtCommunitySetName != rhs.ExtCommunitySetName { return false } if len(lhs.ExtCommunityList) != len(rhs.ExtCommunityList) { return false } for idx, l := range lhs.ExtCommunityList { if l != rhs.ExtCommunityList[idx] { return false } } return true } //struct for container bgp-pol:community-set type CommunitySet struct { // original -> bgp-pol:community-set-name CommunitySetName string `mapstructure:"community-set-name" json:"community-set-name,omitempty"` // original -> gobgp:community CommunityList []string `mapstructure:"community-list" json:"community-list,omitempty"` } func (lhs *CommunitySet) Equal(rhs *CommunitySet) bool { if lhs == nil || rhs == nil { return false } if lhs.CommunitySetName != rhs.CommunitySetName { return false } if len(lhs.CommunityList) != len(rhs.CommunityList) { return false } for idx, l := range lhs.CommunityList { if l != rhs.CommunityList[idx] { return false } } return true } //struct for container bgp-pol:bgp-defined-sets type BgpDefinedSets struct { // original -> bgp-pol:community-sets CommunitySets []CommunitySet `mapstructure:"community-sets" json:"community-sets,omitempty"` // original -> bgp-pol:ext-community-sets ExtCommunitySets []ExtCommunitySet `mapstructure:"ext-community-sets" json:"ext-community-sets,omitempty"` // original -> bgp-pol: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"` } func (lhs *BgpDefinedSets) Equal(rhs *BgpDefinedSets) bool { if lhs == nil || rhs == nil { return false } if len(lhs.CommunitySets) != len(rhs.CommunitySets) { return false } { lmap := make(map[string]*CommunitySet) for i, l := range lhs.CommunitySets { lmap[mapkey(i, string(l.CommunitySetName))] = &lhs.CommunitySets[i] } for i, r := range rhs.CommunitySets { if l, y := lmap[mapkey(i, string(r.CommunitySetName))]; !y { return false } else if !r.Equal(l) { return false } } } if len(lhs.ExtCommunitySets) != len(rhs.ExtCommunitySets) { return false } { lmap := make(map[string]*ExtCommunitySet) for i, l := range lhs.ExtCommunitySets { lmap[mapkey(i, string(l.ExtCommunitySetName))] = &lhs.ExtCommunitySets[i] } for i, r := range rhs.ExtCommunitySets { if l, y := lmap[mapkey(i, string(r.ExtCommunitySetName))]; !y { return false } else if !r.Equal(l) { return false } } } if len(lhs.AsPathSets) != len(rhs.AsPathSets) { return false } { lmap := make(map[string]*AsPathSet) for i, l := range lhs.AsPathSets { lmap[mapkey(i, string(l.AsPathSetName))] = &lhs.AsPathSets[i] } for i, r := range rhs.AsPathSets { if l, y := lmap[mapkey(i, string(r.AsPathSetName))]; !y { return false } else if !r.Equal(l) { return false } } } if len(lhs.LargeCommunitySets) != len(rhs.LargeCommunitySets) { return false } { lmap := make(map[string]*LargeCommunitySet) for i, l := range lhs.LargeCommunitySets { lmap[mapkey(i, string(l.LargeCommunitySetName))] = &lhs.LargeCommunitySets[i] } for i, r := range rhs.LargeCommunitySets { if l, y := lmap[mapkey(i, string(r.LargeCommunitySetName))]; !y { return false } else if !r.Equal(l) { return false } } } return true } //struct for container rpol:tag type Tag struct { // original -> rpol:value Value TagType `mapstructure:"value" json:"value,omitempty"` } func (lhs *Tag) Equal(rhs *Tag) bool { if lhs == nil || rhs == nil { return false } if lhs.Value != rhs.Value { return false } return true } //struct for container rpol:tag-set type TagSet struct { // original -> rpol:tag-set-name TagSetName string `mapstructure:"tag-set-name" json:"tag-set-name,omitempty"` // original -> rpol:tag TagList []Tag `mapstructure:"tag-list" json:"tag-list,omitempty"` } func (lhs *TagSet) Equal(rhs *TagSet) bool { if lhs == nil || rhs == nil { return false } if lhs.TagSetName != rhs.TagSetName { return false } if len(lhs.TagList) != len(rhs.TagList) { return false } { lmap := make(map[string]*Tag) for i, l := range lhs.TagList { lmap[mapkey(i, string(l.Value))] = &lhs.TagList[i] } for i, r := range rhs.TagList { if l, y := lmap[mapkey(i, string(r.Value))]; !y { return false } else if !r.Equal(l) { return false } } } return true } //struct for container rpol:neighbor-set type NeighborSet struct { // original -> rpol:neighbor-set-name NeighborSetName string `mapstructure:"neighbor-set-name" json:"neighbor-set-name,omitempty"` // original -> gobgp:neighbor-info // original type is list of inet:ip-address NeighborInfoList []string `mapstructure:"neighbor-info-list" json:"neighbor-info-list,omitempty"` } func (lhs *NeighborSet) Equal(rhs *NeighborSet) bool { if lhs == nil || rhs == nil { return false } if lhs.NeighborSetName != rhs.NeighborSetName { return false } if len(lhs.NeighborInfoList) != len(rhs.NeighborInfoList) { return false } for idx, l := range lhs.NeighborInfoList { if l != rhs.NeighborInfoList[idx] { return false } } return true } //struct for container rpol:prefix type Prefix struct { // original -> rpol:ip-prefix //rpol:ip-prefix's original type is inet:ip-prefix IpPrefix string `mapstructure:"ip-prefix" json:"ip-prefix,omitempty"` // original -> rpol:masklength-range MasklengthRange string `mapstructure:"masklength-range" json:"masklength-range,omitempty"` } func (lhs *Prefix) Equal(rhs *Prefix) bool { if lhs == nil || rhs == nil { return false } if lhs.IpPrefix != rhs.IpPrefix { return false } if lhs.MasklengthRange != rhs.MasklengthRange { return false } return true } //struct for container rpol:prefix-set type PrefixSet struct { // original -> rpol:prefix-set-name PrefixSetName string `mapstructure:"prefix-set-name" json:"prefix-set-name,omitempty"` // original -> rpol:prefix PrefixList []Prefix `mapstructure:"prefix-list" json:"prefix-list,omitempty"` } func (lhs *PrefixSet) Equal(rhs *PrefixSet) bool { if lhs == nil || rhs == nil { return false } if lhs.PrefixSetName != rhs.PrefixSetName { return false } if len(lhs.PrefixList) != len(rhs.PrefixList) { return false } { lmap := make(map[string]*Prefix) for i, l := range lhs.PrefixList { lmap[mapkey(i, string(l.IpPrefix+l.MasklengthRange))] = &lhs.PrefixList[i] } for i, r := range rhs.PrefixList { if l, y := lmap[mapkey(i, string(r.IpPrefix+r.MasklengthRange))]; !y { return false } else if !r.Equal(l) { return false } } } return true } //struct for container rpol:defined-sets type DefinedSets struct { // original -> rpol:prefix-sets PrefixSets []PrefixSet `mapstructure:"prefix-sets" json:"prefix-sets,omitempty"` // original -> rpol:neighbor-sets NeighborSets []NeighborSet `mapstructure:"neighbor-sets" json:"neighbor-sets,omitempty"` // original -> rpol:tag-sets TagSets []TagSet `mapstructure:"tag-sets" json:"tag-sets,omitempty"` // original -> bgp-pol:bgp-defined-sets BgpDefinedSets BgpDefinedSets `mapstructure:"bgp-defined-sets" json:"bgp-defined-sets,omitempty"` } func (lhs *DefinedSets) Equal(rhs *DefinedSets) bool { if lhs == nil || rhs == nil { return false } if len(lhs.PrefixSets) != len(rhs.PrefixSets) { return false } { lmap := make(map[string]*PrefixSet) for i, l := range lhs.PrefixSets { lmap[mapkey(i, string(l.PrefixSetName))] = &lhs.PrefixSets[i] } for i, r := range rhs.PrefixSets { if l, y := lmap[mapkey(i, string(r.PrefixSetName))]; !y { return false } else if !r.Equal(l) { return false } } } if len(lhs.NeighborSets) != len(rhs.NeighborSets) { return false } { lmap := make(map[string]*NeighborSet) for i, l := range lhs.NeighborSets { lmap[mapkey(i, string(l.NeighborSetName))] = &lhs.NeighborSets[i] } for i, r := range rhs.NeighborSets { if l, y := lmap[mapkey(i, string(r.NeighborSetName))]; !y { return false } else if !r.Equal(l) { return false } } } if len(lhs.TagSets) != len(rhs.TagSets) { return false } { lmap := make(map[string]*TagSet) for i, l := range lhs.TagSets { lmap[mapkey(i, string(l.TagSetName))] = &lhs.TagSets[i] } for i, r := range rhs.TagSets { if l, y := lmap[mapkey(i, string(r.TagSetName))]; !y { return false } else if !r.Equal(l) { return false } } } if !lhs.BgpDefinedSets.Equal(&(rhs.BgpDefinedSets)) { return false } return true } //struct for container rpol:routing-policy type RoutingPolicy struct { // original -> rpol:defined-sets DefinedSets DefinedSets `mapstructure:"defined-sets" json:"defined-sets,omitempty"` // original -> rpol:policy-definitions PolicyDefinitions []PolicyDefinition `mapstructure:"policy-definitions" json:"policy-definitions,omitempty"` } func (lhs *RoutingPolicy) Equal(rhs *RoutingPolicy) bool { if lhs == nil || rhs == nil { return false } if !lhs.DefinedSets.Equal(&(rhs.DefinedSets)) { return false } if len(lhs.PolicyDefinitions) != len(rhs.PolicyDefinitions) { return false } { lmap := make(map[string]*PolicyDefinition) for i, l := range lhs.PolicyDefinitions { lmap[mapkey(i, string(l.Name))] = &lhs.PolicyDefinitions[i] } for i, r := range rhs.PolicyDefinitions { if l, y := lmap[mapkey(i, string(r.Name))]; !y { return false } else if !r.Equal(l) { return false } } } return true }