package main
import (
"fmt"
"net"
)
type ConfigProtocols *struct {
Rip *struct {
Interface *string `json:"interface,omitempty"`
Neighbor *net.IP `json:"neighbor,omitempty"`
Route *net.IPNet `json:"route,omitempty"`
Bfd *struct {
Neighbor *map[string]struct {
FallOver *string `json:"fall-over,omitempty"`
} `json:"neighbor,omitempty"`
AllInterfaces *string `json:"all-interfaces,omitempty"`
} `json:"bfd,omitempty"`
DefaultDistance *int `json:"default-distance,omitempty"`
Timers *struct {
Update *int `json:"update,omitempty"`
Timeout *int `json:"timeout,omitempty"`
GarbageCollection *int `json:"garbage-collection,omitempty"`
} `json:"timers,omitempty"`
Network *net.IPNet `json:"network,omitempty"`
DefaultMetric *int `json:"default-metric,omitempty"`
Vrf *map[string]struct {
Interface *string `json:"interface,omitempty"`
Bfd *struct {
Neighbor *map[string]struct {
FallOver *string `json:"fall-over,omitempty"`
} `json:"neighbor,omitempty"`
AllInterfaces *string `json:"all-interfaces,omitempty"`
} `json:"bfd,omitempty"`
DefaultDistance *int `json:"default-distance,omitempty"`
Network *net.IPNet `json:"network,omitempty"`
DefaultMetric *int `json:"default-metric,omitempty"`
NetworkDistance *map[string]struct {
Distance *int `json:"distance,omitempty"`
AccessList *string `json:"access-list,omitempty"`
} `json:"network-distance,omitempty"`
Redistribute *struct {
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"connected,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"static,omitempty"`
Bgp *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"bgp,omitempty"`
Ospf *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"ospf,omitempty"`
} `json:"redistribute,omitempty"`
DistributeList *struct {
Interface *map[string]struct {
AccessList *struct {
Out *int `json:"out,omitempty"`
In *int `json:"in,omitempty"`
} `json:"access-list,omitempty"`
PrefixList *struct {
Out *string `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"interface,omitempty"`
AccessList *struct {
Out *int `json:"out,omitempty"`
In *int `json:"in,omitempty"`
} `json:"access-list,omitempty"`
PrefixList *struct {
Out *string `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"distribute-list,omitempty"`
DefaultInformation *struct {
Originate *string `json:"originate,omitempty"`
} `json:"default-information,omitempty"`
} `json:".vrf,omitempty"`
NetworkDistance *map[string]struct {
Distance *int `json:"distance,omitempty"`
AccessList *string `json:"access-list,omitempty"`
} `json:"network-distance,omitempty"`
PassiveInterface *string `json:"passive-interface,omitempty"`
Redistribute *struct {
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"connected,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"static,omitempty"`
Bgp *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"bgp,omitempty"`
Kernel *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"kernel,omitempty"`
Ospf *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"ospf,omitempty"`
} `json:"redistribute,omitempty"`
DistributeList *struct {
Interface *map[string]struct {
AccessList *struct {
Out *int `json:"out,omitempty"`
In *int `json:"in,omitempty"`
} `json:"access-list,omitempty"`
PrefixList *struct {
Out *string `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"interface,omitempty"`
AccessList *struct {
Out *int `json:"out,omitempty"`
In *int `json:"in,omitempty"`
} `json:"access-list,omitempty"`
PrefixList *struct {
Out *string `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"distribute-list,omitempty"`
DefaultInformation *struct {
Originate *string `json:"originate,omitempty"`
} `json:"default-information,omitempty"`
} `json:"rip,omitempty"`
Mpls *struct {
LspTunneling *struct {
Interface *map[string]struct {
InLabel *map[string]struct {
OutLabel *map[string]struct {
NetworkFec *net.IPNet `json:"network-fec,omitempty"`
} `json:"out-label,omitempty"`
} `json:"in-label,omitempty"`
} `json:"interface,omitempty"`
} `json:"lsp-tunneling,omitempty"`
AcGroup *map[string]struct {
GroupId *int `json:"group-id,omitempty"`
} `json:"ac-group,omitempty"`
LocalPacketHandling *string `json:"local-packet-handling,omitempty"`
Interface *map[string]struct {
MulticastHellos *string `json:"multicast-hellos,omitempty"`
KeepaliveTimeout *int `json:"keepalive-timeout,omitempty"`
VcMode *struct {
Standby *string `json:"standby,omitempty"`
Revertive *string `json:"revertive,omitempty"`
} `json:"vc-mode,omitempty"`
LdpIgp *struct {
Sync *struct {
Ospf *struct {
HolddownTimer *int `json:"holddown-timer,omitempty"`
} `json:"ospf,omitempty"`
} `json:"sync,omitempty"`
SyncDelay *int `json:"sync-delay,omitempty"`
} `json:"ldp-igp,omitempty"`
MaxPduLength *int `json:"max-pdu-length,omitempty"`
LabelRetentionMode *struct {
Liberal *string `json:"liberal,omitempty"`
Conservative *string `json:"conservative,omitempty"`
} `json:"label-retention-mode,omitempty"`
AdminGroup *string `json:"admin-group,omitempty"`
L2Circuit *map[string]struct {
Hdlc *struct {
Primary *string `json:"primary,omitempty"`
Secondary *string `json:"secondary,omitempty"`
} `json:".hdlc,omitempty"`
Ppp *struct {
Primary *string `json:"primary,omitempty"`
Secondary *string `json:"secondary,omitempty"`
} `json:".ppp,omitempty"`
Ethernet *struct {
Primary *string `json:"primary,omitempty"`
Secondary *string `json:"secondary,omitempty"`
} `json:".ethernet,omitempty"`
} `json:"l2-circuit,omitempty"`
LabelSwitching *string `json:"label-switching,omitempty"`
HoldTime *int `json:"hold-time,omitempty"`
KeepaliveInterval *int `json:"keepalive-interval,omitempty"`
AdvertisementMode *struct {
DownstreamOnDemand *string `json:"downstream-on-demand,omitempty"`
DownstreamUnsolicited *string `json:"downstream-unsolicited,omitempty"`
} `json:"advertisement-mode,omitempty"`
HelloInterval *int `json:"hello-interval,omitempty"`
} `json:"interface,omitempty"`
L2CircuitFibEntry *map[string]struct {
InLabel *map[string]struct {
OutLabel *map[string]struct {
Ipv4 *map[string]struct {
Int *map[string]struct {
Int *string `json:"int,omitempty"`
} `json:"int,omitempty"`
} `json:"ipv4,omitempty"`
Ipv6 *map[string]struct {
Int *map[string]struct {
Int *string `json:"int,omitempty"`
} `json:"int,omitempty"`
} `json:"ipv6,omitempty"`
} `json:"out-label,omitempty"`
} `json:"in-label,omitempty"`
} `json:".l2-circuit-fib-entry,omitempty"`
EnableAllInterfaces *string `json:"enable-all-interfaces,omitempty"`
MsPw *map[string]struct {
Description *string `json:"description,omitempty"`
} `json:"ms-pw,omitempty"`
IngressTtl *int `json:"ingress-ttl,omitempty"`
TeClass *map[string]struct {
Name *map[string]struct {
Priority *int `json:"priority,omitempty"`
} `json:"name,omitempty"`
} `json:"te-class,omitempty"`
LspModel *struct {
Pipe *string `json:"pipe,omitempty"`
} `json:"lsp-model,omitempty"`
FtnEntry *struct {
TunnelId *map[string]struct {
Ip *map[string]struct {
Mask *map[string]struct {
OutLabel *map[string]struct {
Nexthop *map[string]struct {
Interface *map[string]struct {
Primary *string `json:"primary,omitempty"`
Secondary *string `json:"secondary,omitempty"`
} `json:"interface,omitempty"`
} `json:"nexthop,omitempty"`
} `json:"out-label,omitempty"`
} `json:"mask,omitempty"`
} `json:"ip,omitempty"`
Ipv6mask *map[string]struct {
OutLabel *map[string]struct {
Nexthop *map[string]struct {
Interface *map[string]struct {
Primary *string `json:"primary,omitempty"`
Secondary *string `json:"secondary,omitempty"`
} `json:"interface,omitempty"`
} `json:"nexthop,omitempty"`
} `json:"out-label,omitempty"`
} `json:"ipv6mask,omitempty"`
Ipv4mask *map[string]struct {
OutLabel *map[string]struct {
Nexthop *map[string]struct {
Interface *map[string]struct {
Primary *string `json:"primary,omitempty"`
Secondary *string `json:"secondary,omitempty"`
} `json:"interface,omitempty"`
} `json:"nexthop,omitempty"`
} `json:"out-label,omitempty"`
} `json:"ipv4mask,omitempty"`
} `json:"tunnel-id,omitempty"`
} `json:"ftn-entry,omitempty"`
ClassToExp *map[string]struct {
Bit *int `json:"bit,omitempty"`
} `json:"class-to-exp,omitempty"`
L2Circuit *map[string]struct {
Ipv4 *map[string]struct {
Agi *map[string]struct {
Saii *map[string]struct {
Taii *map[string]struct {
Manual *string `json:"manual,omitempty"`
Groupname *map[string]struct {
GroupId *int `json:"group-id,omitempty"`
} `json:"groupname,omitempty"`
ControlWord *struct {
Manual *string `json:"manual,omitempty"`
TunnelId *map[string]struct {
Passive *string `json:"passive,omitempty"`
Reverse *struct {
Passive *string `json:"passive,omitempty"`
Manual *string `json:"manual,omitempty"`
} `json:"reverse,omitempty"`
Manual *string `json:"manual,omitempty"`
Forward *struct {
Passive *string `json:"passive,omitempty"`
Manual *string `json:"manual,omitempty"`
} `json:"forward,omitempty"`
} `json:"tunnel-id,omitempty"`
} `json:"control-word,omitempty"`
TunnelId *map[string]struct {
Passive *string `json:"passive,omitempty"`
Reverse *struct {
Passive *string `json:"passive,omitempty"`
Manual *string `json:"manual,omitempty"`
} `json:"reverse,omitempty"`
Manual *string `json:"manual,omitempty"`
Forward *struct {
Passive *string `json:"passive,omitempty"`
Manual *string `json:"manual,omitempty"`
} `json:"forward,omitempty"`
} `json:"tunnel-id,omitempty"`
} `json:"taii,omitempty"`
} `json:"saii,omitempty"`
} `json:"agi,omitempty"`
} `json:"ipv4,omitempty"`
Id *map[string]struct {
Ipv4 *map[string]struct {
Passive *string `json:"passive,omitempty"`
Manual *string `json:"manual,omitempty"`
Groupname *map[string]struct {
ControlWord *struct {
Manual *string `json:"manual,omitempty"`
} `json:"control-word,omitempty"`
} `json:"groupname,omitempty"`
ControlWord *struct {
Passive *string `json:"passive,omitempty"`
Manual *string `json:"manual,omitempty"`
TunnelId *map[string]struct {
Passive *string `json:"passive,omitempty"`
Reverse *struct {
Passive *string `json:"passive,omitempty"`
Manual *string `json:"manual,omitempty"`
} `json:"reverse,omitempty"`
Manual *string `json:"manual,omitempty"`
Forward *struct {
Passive *string `json:"passive,omitempty"`
Manual *string `json:"manual,omitempty"`
} `json:"forward,omitempty"`
} `json:"tunnel-id,omitempty"`
} `json:"control-word,omitempty"`
TunnelId *map[string]struct {
Passive *string `json:"passive,omitempty"`
Reverse *struct {
Passive *string `json:"passive,omitempty"`
Manual *string `json:"manual,omitempty"`
} `json:"reverse,omitempty"`
Manual *string `json:"manual,omitempty"`
Forward *struct {
Passive *string `json:"passive,omitempty"`
Manual *string `json:"manual,omitempty"`
} `json:"forward,omitempty"`
} `json:"tunnel-id,omitempty"`
} `json:"ipv4,omitempty"`
Ipv6 *map[string]struct {
Manual *string `json:"manual,omitempty"`
} `json:"ipv6,omitempty"`
} `json:"id,omitempty"`
} `json:".l2-circuit,omitempty"`
EgressTtl *int `json:"egress-ttl,omitempty"`
MinLabelValue *map[string]struct {
LabelSpace *int `json:"label-space,omitempty"`
} `json:"min-label-value,omitempty"`
AdminGroup *map[string]struct {
Value *int `json:"value,omitempty"`
} `json:"admin-group,omitempty"`
MsPwStitch *map[string]struct {
Vc1 *map[string]struct {
Vc2 *map[string]struct {
Mtu *map[string]struct {
Ethernet *string `json:"ethernet,omitempty"`
Vlan *int `json:"vlan,omitempty"`
} `json:"mtu,omitempty"`
} `json:"vc2,omitempty"`
} `json:"vc1,omitempty"`
} `json:"ms-pw-stitch,omitempty"`
ClassType *map[string]struct {
Name *string `json:"name,omitempty"`
} `json:"class-type,omitempty"`
IlmEntry *map[string]struct {
Interface *map[string]struct {
Pop *string `json:"pop,omitempty"`
Swap *map[string]struct {
Interface *map[string]struct {
Ip *map[string]struct {
Fec *map[string]struct {
Mask *net.IP `json:"mask,omitempty"`
} `json:"fec,omitempty"`
} `json:"ip,omitempty"`
} `json:"interface,omitempty"`
} `json:"swap,omitempty"`
} `json:"interface,omitempty"`
} `json:"ilm-entry,omitempty"`
SupportDiffservClass *string `json:"support-diffserv-class,omitempty"`
MapRoute *map[string]struct {
Fec *net.IPNet `json:"fec,omitempty"`
} `json:"map-route,omitempty"`
Rsvp *struct {
MinLabelValue *map[string]struct {
LabelSpace *int `json:"label-space,omitempty"`
} `json:"min-label-value,omitempty"`
MaxLabelValue *map[string]struct {
LabelSpace *int `json:"label-space,omitempty"`
} `json:"max-label-value,omitempty"`
} `json:"rsvp,omitempty"`
Ldp *struct {
MinLabelValue *map[string]struct {
LabelSpace *int `json:"label-space,omitempty"`
} `json:"min-label-value,omitempty"`
MaxLabelValue *map[string]struct {
LabelSpace *int `json:"label-space,omitempty"`
} `json:"max-label-value,omitempty"`
} `json:"ldp,omitempty"`
Bgp *struct {
MinLabelValue *map[string]struct {
LabelSpace *int `json:"label-space,omitempty"`
} `json:"min-label-value,omitempty"`
MaxLabelValue *map[string]struct {
LabelSpace *int `json:"label-space,omitempty"`
} `json:"max-label-value,omitempty"`
} `json:"bgp,omitempty"`
MaxLabelValue *map[string]struct {
LabelSpace *int `json:"label-space,omitempty"`
} `json:"max-label-value,omitempty"`
PropagateTtl *string `json:"propagate-ttl,omitempty"`
DisableAllInterfaces *string `json:"disable-all-interfaces,omitempty"`
} `json:"mpls,omitempty"`
Bfd *struct {
Interface *map[string]struct {
Enable *string `json:"enable,omitempty"`
Echo *struct {
Interval *int `json:"interval,omitempty"`
} `json:"echo,omitempty"`
Auth *struct {
Key *string `json:"key,omitempty"`
Type *string `json:"type,omitempty"`
} `json:"auth,omitempty"`
Interval *map[string]struct {
Minrx *map[string]struct {
Multiplier *int `json:"multiplier,omitempty"`
} `json:"minrx,omitempty"`
} `json:"interval,omitempty"`
Session *struct {
Source *map[string]struct {
Dest *map[string]struct {
Multihop *struct {
AdminDown *string `json:"admin-down,omitempty"`
DemandMode *struct {
AdminDown *string `json:"admin-down,omitempty"`
NonPersistent *struct {
AdminDown *string `json:"admin-down,omitempty"`
} `json:"non-persistent,omitempty"`
} `json:"demand-mode,omitempty"`
} `json:"multihop,omitempty"`
AdminDown *string `json:"admin-down,omitempty"`
DemandMode *struct {
AdminDown *string `json:"admin-down,omitempty"`
NonPersistent *struct {
AdminDown *string `json:"admin-down,omitempty"`
} `json:"non-persistent,omitempty"`
} `json:"demand-mode,omitempty"`
NonPersistent *struct {
AdminDown *string `json:"admin-down,omitempty"`
} `json:"non-persistent,omitempty"`
} `json:"dest,omitempty"`
} `json:"source,omitempty"`
} `json:"session,omitempty"`
} `json:"interface,omitempty"`
Echo *string `json:"echo,omitempty"`
Notification *struct {
Enable *string `json:"enable,omitempty"`
} `json:"notification,omitempty"`
SlowTimer *int `json:"slow-timer,omitempty"`
Gtsm *struct {
Enable *string `json:"enable,omitempty"`
Ttl *int `json:"ttl,omitempty"`
} `json:"gtsm,omitempty"`
MultihopPeer *map[string]struct {
Auth *struct {
Key *string `json:"key,omitempty"`
Type *string `json:"type,omitempty"`
} `json:"auth,omitempty"`
Interval *map[string]struct {
Minrx *map[string]struct {
Multiplier *int `json:"multiplier,omitempty"`
} `json:"minrx,omitempty"`
} `json:"interval,omitempty"`
} `json:"multihop-peer,omitempty"`
} `json:"bfd,omitempty"`
Ripng *struct {
Interface *string `json:"interface,omitempty"`
Route *net.IPNet `json:"route,omitempty"`
Timers *struct {
Update *int `json:"update,omitempty"`
Timeout *int `json:"timeout,omitempty"`
GarbageCollection *int `json:"garbage-collection,omitempty"`
} `json:"timers,omitempty"`
Network *net.IPNet `json:"network,omitempty"`
DefaultMetric *int `json:"default-metric,omitempty"`
AggregateAddress *net.IPNet `json:"aggregate-address,omitempty"`
Vrf *map[string]struct {
Interface *string `json:"interface,omitempty"`
Route *net.IPNet `json:"route,omitempty"`
Timers *struct {
Update *int `json:"update,omitempty"`
Timeout *int `json:"timeout,omitempty"`
GarbageCollection *int `json:"garbage-collection,omitempty"`
} `json:"timers,omitempty"`
Network *net.IPNet `json:"network,omitempty"`
DefaultMetric *int `json:"default-metric,omitempty"`
AggregateAddress *net.IPNet `json:"aggregate-address,omitempty"`
PassiveInterface *string `json:"passive-interface,omitempty"`
Redistribute *struct {
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"connected,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"static,omitempty"`
Bgp *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"bgp,omitempty"`
Ospfv3 *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"ospfv3,omitempty"`
} `json:"redistribute,omitempty"`
DistributeList *struct {
Interface *map[string]struct {
AccessList *struct {
Out *int `json:"out,omitempty"`
In *int `json:"in,omitempty"`
} `json:"access-list,omitempty"`
PrefixList *struct {
Out *string `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"interface,omitempty"`
AccessList *struct {
Out *int `json:"out,omitempty"`
In *int `json:"in,omitempty"`
} `json:"access-list,omitempty"`
PrefixList *struct {
Out *string `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"distribute-list,omitempty"`
DefaultInformation *struct {
Originate *string `json:"originate,omitempty"`
} `json:"default-information,omitempty"`
} `json:".vrf,omitempty"`
PassiveInterface *string `json:"passive-interface,omitempty"`
Redistribute *struct {
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"connected,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"static,omitempty"`
Bgp *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"bgp,omitempty"`
Ospfv3 *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"ospfv3,omitempty"`
Kernel *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"kernel,omitempty"`
} `json:"redistribute,omitempty"`
DistributeList *struct {
Interface *map[string]struct {
AccessList *struct {
Out *int `json:"out,omitempty"`
In *int `json:"in,omitempty"`
} `json:"access-list,omitempty"`
PrefixList *struct {
Out *string `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"interface,omitempty"`
AccessList *struct {
Out *int `json:"out,omitempty"`
In *int `json:"in,omitempty"`
} `json:"access-list,omitempty"`
PrefixList *struct {
Out *string `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"distribute-list,omitempty"`
DefaultInformation *struct {
Originate *string `json:"originate,omitempty"`
} `json:"default-information,omitempty"`
} `json:"ripng,omitempty"`
Vrf *map[string]struct {
Interface *string `json:"interface,omitempty"`
RouterId *net.IP `json:"router-id,omitempty"`
RouteTarget *struct {
Both *string `json:"both,omitempty"`
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"route-target,omitempty"`
Description *string `json:"description,omitempty"`
Import *struct {
Map *string `json:"map,omitempty"`
} `json:"import,omitempty"`
Rd *struct {
Int *string `json:"int,omitempty"`
Ip *string `json:"ip,omitempty"`
} `json:"rd,omitempty"`
} `json:".vrf,omitempty"`
Static *struct {
InterfaceRoute6 *map[string]struct {
NextHopInterface *map[string]struct {
Disable *string `json:"disable,omitempty"`
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"next-hop-interface,omitempty"`
} `json:"interface-route6,omitempty"`
Route *map[string]struct {
NextHop *map[string]struct {
Disable *string `json:"disable,omitempty"`
Bfd *string `json:"bfd,omitempty"`
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"next-hop,omitempty"`
Blackhole *struct {
Disable *string `json:"disable,omitempty"`
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"blackhole,omitempty"`
} `json:"route,omitempty"`
Bfd *struct {
Interface *map[string]struct {
Ipv4 *string `json:"ipv4,omitempty"`
Ipv6 *string `json:"ipv6,omitempty"`
} `json:"interface,omitempty"`
AllInterfaces *struct {
Ipv4 *string `json:"ipv4,omitempty"`
Ipv6 *string `json:"ipv6,omitempty"`
} `json:"all-interfaces,omitempty"`
} `json:"bfd,omitempty"`
Vrf *map[string]struct {
InterfaceRoute6 *map[string]struct {
NextHopInterface *map[string]struct {
Gw *map[string]struct {
Disable *string `json:"disable,omitempty"`
} `json:"gw,omitempty"`
} `json:"next-hop-interface,omitempty"`
} `json:"interface-route6,omitempty"`
Route *map[string]struct {
NextHop *map[string]struct {
Disable *string `json:"disable,omitempty"`
Interface *string `json:"interface,omitempty"`
} `json:"next-hop,omitempty"`
Blackhole *struct {
Disable *string `json:"disable,omitempty"`
Interface *string `json:"interface,omitempty"`
} `json:"blackhole,omitempty"`
} `json:"route,omitempty"`
InterfaceRoute *map[string]struct {
NextHopInterface *map[string]struct {
Disable *string `json:"disable,omitempty"`
} `json:"next-hop-interface,omitempty"`
} `json:"interface-route,omitempty"`
Ip *struct {
Forwarding *string `json:"forwarding,omitempty"`
} `json:"ip,omitempty"`
Route6 *map[string]struct {
NextHop *map[string]struct {
Disable *string `json:"disable,omitempty"`
Interface *string `json:"interface,omitempty"`
} `json:"next-hop,omitempty"`
} `json:"route6,omitempty"`
} `json:".vrf,omitempty"`
Table *map[string]struct {
InterfaceRoute6 *map[string]struct {
NextHopInterface *map[string]struct {
Disable *string `json:"disable,omitempty"`
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"next-hop-interface,omitempty"`
} `json:"interface-route6,omitempty"`
Route *map[string]struct {
NextHop *map[string]struct {
Disable *string `json:"disable,omitempty"`
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"next-hop,omitempty"`
Blackhole *struct {
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"blackhole,omitempty"`
} `json:"route,omitempty"`
Mark *int `json:"mark,omitempty"`
Description *string `json:"description,omitempty"`
InterfaceRoute *map[string]struct {
NextHopInterface *map[string]struct {
Disable *string `json:"disable,omitempty"`
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"next-hop-interface,omitempty"`
} `json:"interface-route,omitempty"`
Route6 *map[string]struct {
NextHop *map[string]struct {
Disable *string `json:"disable,omitempty"`
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"next-hop,omitempty"`
Blackhole *struct {
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"blackhole,omitempty"`
} `json:"route6,omitempty"`
} `json:"table,omitempty"`
InterfaceRoute *map[string]struct {
NextHopInterface *map[string]struct {
Disable *string `json:"disable,omitempty"`
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"next-hop-interface,omitempty"`
} `json:"interface-route,omitempty"`
Arp *map[string]struct {
Hwaddr *net.HardwareAddr `json:"hwaddr,omitempty"`
} `json:"arp,omitempty"`
Route6 *map[string]struct {
NextHop *map[string]struct {
Disable *string `json:"disable,omitempty"`
Interface *string `json:"interface,omitempty"`
Bfd *string `json:"bfd,omitempty"`
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"next-hop,omitempty"`
Blackhole *struct {
Disable *string `json:"disable,omitempty"`
Distance *int `json:"distance,omitempty"`
Description *string `json:"description,omitempty"`
} `json:"blackhole,omitempty"`
} `json:"route6,omitempty"`
} `json:"static,omitempty"`
Rsvp *struct {
HelloTimeout *int `json:"hello-timeout,omitempty"`
Interface *map[string]struct {
HelloTimeout *int `json:"hello-timeout,omitempty"`
Disable *string `json:"disable,omitempty"`
AckWaitTimeout *int `json:"ack-wait-timeout,omitempty"`
MessageAck *string `json:"message-ack,omitempty"`
RefreshReduction *string `json:"refresh-reduction,omitempty"`
RefreshTime *int `json:"refresh-time,omitempty"`
HelloReceipt *string `json:"hello-receipt,omitempty"`
KeepMultiplier *int `json:"keep-multiplier,omitempty"`
NonIANAHello *string `json:"non-IANA-hello,omitempty"`
HelloInterval *int `json:"hello-interval,omitempty"`
} `json:"interface,omitempty"`
Neighbor *net.IP `json:"neighbor,omitempty"`
BundleSend *string `json:"bundle-send,omitempty"`
ExplicitNull *string `json:"explicit-null,omitempty"`
OverrideDiffserv *string `json:"override-diffserv,omitempty"`
PreprogramSuggestedLabel *string `json:"preprogram-suggested-label,omitempty"`
Notification *string `json:"notification,omitempty"`
Path *map[string]struct {
Mpls *struct {
Loose *net.IP `json:"loose,omitempty"`
Unnumbered *map[string]struct {
LinkId *net.IP `json:"link-id,omitempty"`
} `json:".unnumbered,omitempty"`
Strict *net.IP `json:"strict,omitempty"`
StrictHop *net.IP `json:".strict-hop,omitempty"`
} `json:"mpls,omitempty"`
Gmpls *struct {
StrictHop *net.IP `json:"strict-hop,omitempty"`
Unnumbered *map[string]struct {
LinkId *net.IP `json:"link-id,omitempty"`
} `json:"unnumbered,omitempty"`
Strict *net.IP `json:".strict,omitempty"`
Loose *net.IP `json:".loose,omitempty"`
} `json:".gmpls,omitempty"`
} `json:"path,omitempty"`
From *net.IP `json:"from,omitempty"`
AckWaitTimeout *int `json:"ack-wait-timeout,omitempty"`
RefreshPathParsing *string `json:"refresh-path-parsing,omitempty"`
Cspf *string `json:"cspf,omitempty"`
GracefulRestart *struct {
Enable *string `json:"enable,omitempty"`
RestartTime *int `json:"restart-time,omitempty"`
RecoveryTime *int `json:"recovery-time,omitempty"`
} `json:"graceful-restart,omitempty"`
RefreshResvParsing *string `json:"refresh-resv-parsing,omitempty"`
MessageAck *string `json:"message-ack,omitempty"`
RefreshReduction *string `json:"refresh-reduction,omitempty"`
LocalProtection *string `json:"local-protection,omitempty"`
RefreshTime *int `json:"refresh-time,omitempty"`
NoPhp *string `json:"no-php,omitempty"`
HelloReceipt *string `json:"hello-receipt,omitempty"`
KeepMultiplier *int `json:"keep-multiplier,omitempty"`
LoopDetection *string `json:"loop-detection,omitempty"`
HelloInterval *int `json:"hello-interval,omitempty"`
Trunk *map[string]struct {
Gmpls *struct {
ExtTunnelId *net.IP `json:"ext-tunnel-id,omitempty"`
LspMetric *struct {
Relative *int `json:"relative,omitempty"`
Absolute *int `json:"absolute,omitempty"`
} `json:"lsp-metric,omitempty"`
EnableIgpShortcut *string `json:".enable-igp-shortcut,omitempty"`
Capability *struct {
Psc1 *string `json:"psc-1,omitempty"`
PbbTe *string `json:"pbb-te,omitempty"`
Psc4 *string `json:"psc-4,omitempty"`
Psc3 *string `json:"psc-3,omitempty"`
Psc2 *string `json:"psc-2,omitempty"`
} `json:"capability,omitempty"`
From *net.IP `json:"from,omitempty"`
Gpid *struct {
Ethernet *string `json:"ethernet,omitempty"`
Ipv4 *string `json:"ipv4,omitempty"`
} `json:"gpid,omitempty"`
RsvpTrunkRestart *string `json:"rsvp-trunk-restart,omitempty"`
GmplsLabelSet *struct {
Range *struct {
StartRange *map[string]struct {
EndRange *int `json:"end_range,omitempty"`
} `json:"start_range,omitempty"`
} `json:"range,omitempty"`
Packet *struct {
Range *struct {
StartRange *map[string]struct {
EndRange *int `json:"end_range,omitempty"`
} `json:"start_range,omitempty"`
} `json:"range,omitempty"`
} `json:"packet,omitempty"`
} `json:"gmpls-label-set,omitempty"`
Direction *struct {
Bidirectional *string `json:"bidirectional,omitempty"`
Unidirectional *string `json:"unidirectional,omitempty"`
} `json:"direction,omitempty"`
UpdateType *struct {
MakeBeforeBreak *string `json:"make-before-break,omitempty"`
BreakBeforeMake *string `json:"break-before-make,omitempty"`
} `json:"update-type,omitempty"`
DisableIgpShortcut *string `json:".disable-igp-shortcut,omitempty"`
Primary *struct {
Traffic *struct {
ControlledLoad *string `json:"controlled-load,omitempty"`
Guaranteed *string `json:"guaranteed,omitempty"`
} `json:"traffic,omitempty"`
Bandwidth *int `json:"bandwidth,omitempty"`
SetupPriority *int `json:"setup-priority,omitempty"`
Record *string `json:"record,omitempty"`
IncludeAny *string `json:"include-any,omitempty"`
Affinity *string `json:"affinity,omitempty"`
ReuseRouteRecord *string `json:"reuse-route-record,omitempty"`
ElspPreconfigured *string `json:"elsp-preconfigured,omitempty"`
Path *string `json:"path,omitempty"`
HoldPriority *int `json:"hold-priority,omitempty"`
HopLimit *int `json:"hop-limit,omitempty"`
Cspf *string `json:"cspf,omitempty"`
LabelRecord *string `json:"label-record,omitempty"`
NoAffinity *string `json:"no-affinity,omitempty"`
Protection *struct {
Unprotected *string `json:"unprotected,omitempty"`
DedicatedOneToOne *string `json:"dedicated-one-to-one,omitempty"`
Shared *string `json:"shared,omitempty"`
ExtraTraffic *string `json:"extra-traffic,omitempty"`
DedicatedOnePlusOne *string `json:"dedicated-one-plus-one,omitempty"`
Ehanced *string `json:"ehanced,omitempty"`
} `json:"protection,omitempty"`
RetryLimit *int `json:"retry-limit,omitempty"`
CspfRetryTimer *int `json:"cspf-retry-timer,omitempty"`
ClassType *string `json:"class-type,omitempty"`
ElspSignaled *string `json:"elsp-signaled,omitempty"`
LocalProtection *string `json:"local-protection,omitempty"`
ClassToExpBit *map[string]struct {
Bit *int `json:"bit,omitempty"`
} `json:"class-to-exp-bit,omitempty"`
Filter *struct {
SharedExplicit *string `json:"shared-explicit,omitempty"`
Fixed *string `json:"fixed,omitempty"`
} `json:"filter,omitempty"`
ExplicitLabel *map[string]struct {
Reverse *string `json:"reverse,omitempty"`
Packet *struct {
Reverse *string `json:"reverse,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:"packet,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:"explicit-label,omitempty"`
CspfRetryLimit *int `json:"cspf-retry-limit,omitempty"`
ExcludeAny *string `json:"exclude-any,omitempty"`
RetryTimer *int `json:"retry-timer,omitempty"`
NoRecord *string `json:"no-record,omitempty"`
Llsp *string `json:"llsp,omitempty"`
} `json:"primary,omitempty"`
To *net.IP `json:"to,omitempty"`
Secondary *struct {
Traffic *struct {
ControlledLoad *string `json:"controlled-load,omitempty"`
Guaranteed *string `json:"guaranteed,omitempty"`
} `json:"traffic,omitempty"`
Bandwidth *int `json:"bandwidth,omitempty"`
SetupPriority *int `json:"setup-priority,omitempty"`
Record *string `json:"record,omitempty"`
IncludeAny *string `json:"include-any,omitempty"`
Affinity *string `json:"affinity,omitempty"`
ReuseRouteRecord *string `json:"reuse-route-record,omitempty"`
ElspPreconfigured *string `json:"elsp-preconfigured,omitempty"`
Path *string `json:"path,omitempty"`
HoldPriority *int `json:"hold-priority,omitempty"`
HopLimit *int `json:"hop-limit,omitempty"`
Cspf *string `json:"cspf,omitempty"`
LabelRecord *string `json:"label-record,omitempty"`
NoAffinity *string `json:"no-affinity,omitempty"`
Protection *struct {
Unprotected *string `json:"unprotected,omitempty"`
DedicatedOneToOne *string `json:"dedicated-one-to-one,omitempty"`
Shared *string `json:"shared,omitempty"`
ExtraTraffic *string `json:"extra-traffic,omitempty"`
DedicatedOnePlusOne *string `json:"dedicated-one-plus-one,omitempty"`
Ehanced *string `json:"ehanced,omitempty"`
} `json:"protection,omitempty"`
RetryLimit *int `json:"retry-limit,omitempty"`
CspfRetryTimer *int `json:"cspf-retry-timer,omitempty"`
ClassType *string `json:"class-type,omitempty"`
ElspSignaled *string `json:"elsp-signaled,omitempty"`
LocalProtection *string `json:"local-protection,omitempty"`
ClassToExpBit *map[string]struct {
Bit *int `json:"bit,omitempty"`
} `json:"class-to-exp-bit,omitempty"`
Filter *struct {
SharedExplicit *string `json:"shared-explicit,omitempty"`
Fixed *string `json:"fixed,omitempty"`
} `json:"filter,omitempty"`
ExplicitLabel *map[string]struct {
Reverse *string `json:"reverse,omitempty"`
Packet *struct {
Reverse *string `json:"reverse,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:"packet,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:"explicit-label,omitempty"`
CspfRetryLimit *int `json:"cspf-retry-limit,omitempty"`
ExcludeAny *string `json:"exclude-any,omitempty"`
RetryTimer *int `json:"retry-timer,omitempty"`
NoRecord *string `json:"no-record,omitempty"`
Llsp *string `json:"llsp,omitempty"`
} `json:"secondary,omitempty"`
} `json:".gmpls,omitempty"`
Ipv4 *struct {
ExtTunnelId *net.IP `json:"ext-tunnel-id,omitempty"`
LspMetric *struct {
Relative *int `json:"relative,omitempty"`
Absolute *int `json:"absolute,omitempty"`
} `json:"lsp-metric,omitempty"`
From *net.IP `json:"from,omitempty"`
RsvpTrunkRestart *string `json:".rsvp-trunk-restart,omitempty"`
Capability *struct {
Psc1 *string `json:"psc-1,omitempty"`
Psc4 *string `json:"psc-4,omitempty"`
Psc3 *string `json:"psc-3,omitempty"`
Psc2 *string `json:"psc-2,omitempty"`
} `json:".capability,omitempty"`
Direction *struct {
Bidirectional *string `json:"bidirectional,omitempty"`
Unidirectional *string `json:"unidirectional,omitempty"`
} `json:".direction,omitempty"`
MapRoute *map[string]struct {
Class *string `json:"class,omitempty"`
} `json:"map-route,omitempty"`
UpdateType *string `json:"update-type,omitempty"`
Primary *struct {
Traffic *string `json:"traffic,omitempty"`
Bandwidth *string `json:"bandwidth,omitempty"`
SetupPriority *int `json:"setup-priority,omitempty"`
Record *string `json:"record,omitempty"`
IncludeAny *string `json:"include-any,omitempty"`
Protection *struct {
Unprotected *string `json:"unprotected,omitempty"`
DedicatedOneToOne *string `json:"dedicated-one-to-one,omitempty"`
Shared *string `json:"shared,omitempty"`
ExtraTraffic *string `json:"extra-traffic,omitempty"`
DedicatedOnePlusOne *string `json:"dedicated-one-plus-one,omitempty"`
Ehanced *string `json:"ehanced,omitempty"`
} `json:".protection,omitempty"`
ReuseRouteRecord *string `json:"reuse-route-record,omitempty"`
ElspPreconfigured *string `json:"elsp-preconfigured,omitempty"`
Path *string `json:"path,omitempty"`
ExplicitLabel *map[string]struct {
Reverse *string `json:"reverse,omitempty"`
Packet *struct {
Reverse *string `json:"reverse,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:"packet,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:".explicit-label,omitempty"`
ClassToExp *map[string]struct {
Bit *int `json:"bit,omitempty"`
} `json:"class-to-exp,omitempty"`
HoldPriority *int `json:"hold-priority,omitempty"`
HopLimit *int `json:"hop-limit,omitempty"`
Cspf *string `json:"cspf,omitempty"`
LabelRecord *string `json:"label-record,omitempty"`
NoAffinity *string `json:"no-affinity,omitempty"`
RetryLimit *int `json:"retry-limit,omitempty"`
CspfRetryTimer *int `json:"cspf-retry-timer,omitempty"`
ClassType *string `json:"class-type,omitempty"`
NoRecord *string `json:".no-record,omitempty"`
ElspSignaled *string `json:"elsp-signaled,omitempty"`
LocalProtection *string `json:"local-protection,omitempty"`
Filter *string `json:"filter,omitempty"`
CspfRetryLimit *int `json:"cspf-retry-limit,omitempty"`
ExcludeAny *string `json:"exclude-any,omitempty"`
RetryTimer *int `json:"retry-timer,omitempty"`
Llsp *string `json:"llsp,omitempty"`
} `json:"primary,omitempty"`
To *net.IP `json:"to,omitempty"`
EnableIgpShortcut *string `json:"enable-igp-shortcut,omitempty"`
Secondary *struct {
Traffic *string `json:"traffic,omitempty"`
Bandwidth *string `json:"bandwidth,omitempty"`
SetupPriority *int `json:"setup-priority,omitempty"`
Record *string `json:"record,omitempty"`
IncludeAny *string `json:"include-any,omitempty"`
Protection *struct {
Unprotected *string `json:"unprotected,omitempty"`
DedicatedOneToOne *string `json:"dedicated-one-to-one,omitempty"`
Shared *string `json:"shared,omitempty"`
ExtraTraffic *string `json:"extra-traffic,omitempty"`
DedicatedOnePlusOne *string `json:"dedicated-one-plus-one,omitempty"`
Ehanced *string `json:"ehanced,omitempty"`
} `json:".protection,omitempty"`
ReuseRouteRecord *string `json:"reuse-route-record,omitempty"`
ElspPreconfigured *string `json:"elsp-preconfigured,omitempty"`
Path *string `json:"path,omitempty"`
ExplicitLabel *map[string]struct {
Reverse *string `json:"reverse,omitempty"`
Packet *struct {
Reverse *string `json:"reverse,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:"packet,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:".explicit-label,omitempty"`
ClassToExp *map[string]struct {
Bit *int `json:"bit,omitempty"`
} `json:"class-to-exp,omitempty"`
HoldPriority *int `json:"hold-priority,omitempty"`
HopLimit *int `json:"hop-limit,omitempty"`
Cspf *string `json:"cspf,omitempty"`
LabelRecord *string `json:"label-record,omitempty"`
NoAffinity *string `json:"no-affinity,omitempty"`
RetryLimit *int `json:"retry-limit,omitempty"`
CspfRetryTimer *int `json:"cspf-retry-timer,omitempty"`
ClassType *string `json:"class-type,omitempty"`
NoRecord *string `json:".no-record,omitempty"`
ElspSignaled *string `json:"elsp-signaled,omitempty"`
LocalProtection *string `json:"local-protection,omitempty"`
Filter *string `json:"filter,omitempty"`
CspfRetryLimit *int `json:"cspf-retry-limit,omitempty"`
ExcludeAny *string `json:"exclude-any,omitempty"`
RetryTimer *int `json:"retry-timer,omitempty"`
Llsp *string `json:"llsp,omitempty"`
} `json:"secondary,omitempty"`
GmplsLabelSet *struct {
Range *struct {
StartRange *map[string]struct {
EndRange *int `json:"end_range,omitempty"`
} `json:"start_range,omitempty"`
} `json:"range,omitempty"`
Packet *struct {
Range *struct {
StartRange *map[string]struct {
EndRange *int `json:"end_range,omitempty"`
} `json:"start_range,omitempty"`
} `json:"range,omitempty"`
} `json:"packet,omitempty"`
} `json:".gmpls-label-set,omitempty"`
} `json:"ipv4,omitempty"`
Ipv6 *struct {
ExtTunnelId *net.IP `json:"ext-tunnel-id,omitempty"`
LspMetric *struct {
Relative *int `json:"relative,omitempty"`
Absolute *int `json:"absolute,omitempty"`
} `json:"lsp-metric,omitempty"`
From *net.IP `json:"from,omitempty"`
Ethernet *string `json:"ethernet,omitempty"`
RsvpTrunkRestart *string `json:"rsvp-trunk-restart,omitempty"`
Capability *struct {
Psc1 *string `json:"psc-1,omitempty"`
Psc4 *string `json:"psc-4,omitempty"`
Psc3 *string `json:"psc-3,omitempty"`
Psc2 *string `json:"psc-2,omitempty"`
} `json:".capability,omitempty"`
Direction *struct {
Bidirectional *string `json:"bidirectional,omitempty"`
Unidirectional *string `json:"unidirectional,omitempty"`
} `json:".direction,omitempty"`
MapRoute *struct {
Prefix *map[string]struct {
Mask *map[string]struct {
Class *string `json:"class,omitempty"`
} `json:"mask,omitempty"`
} `json:"prefix,omitempty"`
Mask *map[string]struct {
Class *string `json:"class,omitempty"`
} `json:"mask,omitempty"`
} `json:"map-route,omitempty"`
DisableIgpShortcut *string `json:"disable-igp-shortcut,omitempty"`
UpdateType *struct {
MakeBeforeBreak *string `json:"make-before-break,omitempty"`
BreakBeforeMake *string `json:"break-before-make,omitempty"`
} `json:"update-type,omitempty"`
Primary *struct {
Traffic *struct {
ControlledLoad *string `json:"controlled-load,omitempty"`
Guaranteed *string `json:"guaranteed,omitempty"`
} `json:"traffic,omitempty"`
Bandwidth *int `json:"bandwidth,omitempty"`
SetupPriority *int `json:"setup-priority,omitempty"`
Record *string `json:"record,omitempty"`
IncludeAny *string `json:"include-any,omitempty"`
Protection *struct {
Unprotected *string `json:"unprotected,omitempty"`
DedicatedOneToOne *string `json:"dedicated-one-to-one,omitempty"`
Shared *string `json:"shared,omitempty"`
ExtraTraffic *string `json:"extra-traffic,omitempty"`
DedicatedOnePlusOne *string `json:"dedicated-one-plus-one,omitempty"`
Ehanced *string `json:"ehanced,omitempty"`
} `json:".protection,omitempty"`
Affinity *string `json:"affinity,omitempty"`
ReuseRouteRecord *string `json:"reuse-route-record,omitempty"`
ElspPreconfigured *string `json:"elsp-preconfigured,omitempty"`
Path *string `json:"path,omitempty"`
ExplicitLabel *map[string]struct {
Reverse *string `json:"reverse,omitempty"`
Packet *struct {
Reverse *string `json:"reverse,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:"packet,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:".explicit-label,omitempty"`
HoldPriority *int `json:"hold-priority,omitempty"`
HopLimit *int `json:"hop-limit,omitempty"`
Cspf *string `json:"cspf,omitempty"`
LabelRecord *string `json:"label-record,omitempty"`
RetryLimit *int `json:"retry-limit,omitempty"`
CspfRetryTimer *int `json:"cspf-retry-timer,omitempty"`
ClassType *string `json:"class-type,omitempty"`
NoRecord *string `json:".no-record,omitempty"`
ElspSignaled *string `json:"elsp-signaled,omitempty"`
NoAffinity *string `json:".no-affinity,omitempty"`
LocalProtection *string `json:"local-protection,omitempty"`
ClassToExpBit *map[string]struct {
Bit *int `json:"bit,omitempty"`
} `json:"class-to-exp-bit,omitempty"`
Filter *struct {
SharedExplicit *string `json:"shared-explicit,omitempty"`
Fixed *string `json:"fixed,omitempty"`
} `json:"filter,omitempty"`
CspfRetryLimit *int `json:"cspf-retry-limit,omitempty"`
ExcludeAny *string `json:"exclude-any,omitempty"`
RetryTimer *int `json:"retry-timer,omitempty"`
Llsp *string `json:"llsp,omitempty"`
} `json:"primary,omitempty"`
To *net.IP `json:"to,omitempty"`
EnableIgpShortcut *string `json:"enable-igp-shortcut,omitempty"`
Secondary *struct {
Traffic *struct {
ControlledLoad *string `json:"controlled-load,omitempty"`
Guaranteed *string `json:"guaranteed,omitempty"`
} `json:"traffic,omitempty"`
Bandwidth *int `json:"bandwidth,omitempty"`
SetupPriority *int `json:"setup-priority,omitempty"`
Record *string `json:"record,omitempty"`
IncludeAny *string `json:"include-any,omitempty"`
Protection *struct {
Unprotected *string `json:"unprotected,omitempty"`
DedicatedOneToOne *string `json:"dedicated-one-to-one,omitempty"`
Shared *string `json:"shared,omitempty"`
ExtraTraffic *string `json:"extra-traffic,omitempty"`
DedicatedOnePlusOne *string `json:"dedicated-one-plus-one,omitempty"`
Ehanced *string `json:"ehanced,omitempty"`
} `json:".protection,omitempty"`
Affinity *string `json:"affinity,omitempty"`
ReuseRouteRecord *string `json:"reuse-route-record,omitempty"`
ElspPreconfigured *string `json:"elsp-preconfigured,omitempty"`
Path *string `json:"path,omitempty"`
ExplicitLabel *map[string]struct {
Reverse *string `json:"reverse,omitempty"`
Packet *struct {
Reverse *string `json:"reverse,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:"packet,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:".explicit-label,omitempty"`
HoldPriority *int `json:"hold-priority,omitempty"`
HopLimit *int `json:"hop-limit,omitempty"`
Cspf *string `json:"cspf,omitempty"`
LabelRecord *string `json:"label-record,omitempty"`
RetryLimit *int `json:"retry-limit,omitempty"`
CspfRetryTimer *int `json:"cspf-retry-timer,omitempty"`
ClassType *string `json:"class-type,omitempty"`
NoRecord *string `json:".no-record,omitempty"`
ElspSignaled *string `json:"elsp-signaled,omitempty"`
NoAffinity *string `json:".no-affinity,omitempty"`
LocalProtection *string `json:"local-protection,omitempty"`
ClassToExpBit *map[string]struct {
Bit *int `json:"bit,omitempty"`
} `json:"class-to-exp-bit,omitempty"`
Filter *struct {
SharedExplicit *string `json:"shared-explicit,omitempty"`
Fixed *string `json:"fixed,omitempty"`
} `json:"filter,omitempty"`
CspfRetryLimit *int `json:"cspf-retry-limit,omitempty"`
ExcludeAny *string `json:"exclude-any,omitempty"`
RetryTimer *int `json:"retry-timer,omitempty"`
Llsp *string `json:"llsp,omitempty"`
} `json:"secondary,omitempty"`
GmplsLabelSet *struct {
Range *struct {
StartRange *map[string]struct {
EndRange *int `json:"end_range,omitempty"`
} `json:"start_range,omitempty"`
} `json:"range,omitempty"`
Packet *struct {
Range *struct {
StartRange *map[string]struct {
EndRange *int `json:"end_range,omitempty"`
} `json:"start_range,omitempty"`
} `json:"range,omitempty"`
} `json:"packet,omitempty"`
} `json:".gmpls-label-set,omitempty"`
} `json:".ipv6,omitempty"`
} `json:"trunk,omitempty"`
} `json:"rsvp,omitempty"`
Vpls *struct {
Interface *map[string]struct {
VlanInstance *map[string]struct {
Vlan *map[string]struct {
} `json:"vlan,omitempty"`
} `json:"vlan-instance,omitempty"`
Instance *string `json:"instance,omitempty"`
} `json:"interface,omitempty"`
FibEntry *map[string]struct {
Peer *map[string]struct {
InLabel *map[string]struct {
OutInterface *map[string]struct {
OutLabel *int `json:"out-label,omitempty"`
} `json:"out-interface,omitempty"`
} `json:"in-label,omitempty"`
} `json:"peer,omitempty"`
SpokeVc *map[string]struct {
InLabel *map[string]struct {
OutInterface *map[string]struct {
OutLabel *int `json:"out-label,omitempty"`
} `json:"out-interface,omitempty"`
} `json:"in-label,omitempty"`
} `json:".spoke-vc,omitempty"`
} `json:"fib-entry,omitempty"`
Instance *map[string]struct {
Id *map[string]struct {
VplsAcGroup *string `json:"vpls-ac-group,omitempty"`
VplsPeer *map[string]struct {
Manual *string `json:"manual,omitempty"`
TunnelId *map[string]struct {
Reverse *struct {
Manual *string `json:"manual,omitempty"`
} `json:"reverse,omitempty"`
Manual *string `json:"manual,omitempty"`
Forward *struct {
Manual *string `json:"manual,omitempty"`
} `json:"forward,omitempty"`
} `json:"tunnel-id,omitempty"`
} `json:"vpls-peer,omitempty"`
Learning *struct {
Disable *string `json:"disable,omitempty"`
Limit *int `json:"limit,omitempty"`
} `json:"learning,omitempty"`
VplsVc *map[string]struct {
Ethernet *string `json:"ethernet,omitempty"`
Vlan *string `json:"vlan,omitempty"`
Normal *string `json:"normal,omitempty"`
} `json:"vpls-vc,omitempty"`
VplsDescription *string `json:"vpls-description,omitempty"`
Signaling *struct {
Ldp *struct {
VplsPeer *map[string]struct {
Agi *map[string]struct {
Saii *map[string]struct {
Taii *map[string]struct {
Normal *string `json:"normal,omitempty"`
TunnelId *map[string]struct {
Reverse *string `json:"reverse,omitempty"`
Normal *string `json:"normal,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:"tunnel-id,omitempty"`
} `json:"taii,omitempty"`
} `json:"saii,omitempty"`
} `json:"agi,omitempty"`
TunnelId *map[string]struct {
Reverse *string `json:"reverse,omitempty"`
Forward *string `json:"forward,omitempty"`
} `json:"tunnel-id,omitempty"`
} `json:"vpls-peer,omitempty"`
} `json:"ldp,omitempty"`
Bgp *struct {
VeRange *int `json:"ve-range,omitempty"`
VeId *int `json:"ve-id,omitempty"`
RouteTarget *string `json:"route-target,omitempty"`
Rd *string `json:"rd,omitempty"`
} `json:"bgp,omitempty"`
} `json:"signaling,omitempty"`
VplsType *string `json:"vpls-type,omitempty"`
VplsMtu *int `json:"vpls-mtu,omitempty"`
} `json:"id,omitempty"`
} `json:"instance,omitempty"`
} `json:"vpls,omitempty"`
Ldp *struct {
LdpOptimization *string `json:"ldp-optimization,omitempty"`
TargetedPeerHelloInterval *int `json:"targeted-peer-hello-interval,omitempty"`
Interface *map[string]struct {
Enable *struct {
Both *string `json:"both,omitempty"`
Ipv4 *string `json:"ipv4,omitempty"`
Ipv6 *string `json:"ipv6,omitempty"`
} `json:"enable,omitempty"`
KeepaliveTimeout *int `json:"keepalive-timeout,omitempty"`
LabelRetentionMode *struct {
Liberal *string `json:"liberal,omitempty"`
Conservative *string `json:"conservative,omitempty"`
} `json:"label-retention-mode,omitempty"`
HoldTime *int `json:"hold-time,omitempty"`
KeepaliveInterval *int `json:"keepalive-interval,omitempty"`
AdvertisementMode *struct {
DownstreamOnDemand *string `json:"downstream-on-demand,omitempty"`
DownstreamUnsolicited *string `json:"downstream-unsolicited,omitempty"`
} `json:"advertisement-mode,omitempty"`
HelloInterval *int `json:"hello-interval,omitempty"`
} `json:"interface,omitempty"`
Neighbor *map[string]struct {
Auth *struct {
Md5 *struct {
Password *map[string]struct {
Type *int `json:"type,omitempty"`
} `json:"password,omitempty"`
} `json:"md5,omitempty"`
} `json:"auth,omitempty"`
} `json:"neighbor,omitempty"`
MulticastHellos *string `json:"multicast-hellos,omitempty"`
ExplicitNull *string `json:"explicit-null,omitempty"`
ImportBgpRoutes *string `json:"import-bgp-routes,omitempty"`
AdvertiseLabels *struct {
ForAcl *map[string]struct {
To *struct {
Any *string `json:"any,omitempty"`
} `json:"to,omitempty"`
} `json:"for-acl,omitempty"`
For *struct {
PeerAcl *map[string]struct {
To *struct {
PeerAcl *string `json:"peer-acl,omitempty"`
Any *string `json:"any,omitempty"`
} `json:"to,omitempty"`
} `json:"peer-acl,omitempty"`
Any *struct {
To *struct {
None *string `json:"none,omitempty"`
} `json:"to,omitempty"`
} `json:"any,omitempty"`
} `json:"for,omitempty"`
} `json:"advertise-labels,omitempty"`
KeepaliveTimeout *int `json:"keepalive-timeout,omitempty"`
PropagateRelease *string `json:"propagate-release,omitempty"`
TransportAddress *struct {
Ipv4 *map[string]struct {
Labelspace *string `json:"labelspace,omitempty"`
} `json:"ipv4,omitempty"`
Ipv6 *map[string]struct {
Labelspace *string `json:"labelspace,omitempty"`
} `json:".ipv6,omitempty"`
} `json:"transport-address,omitempty"`
RouterId *net.IP `json:"router-id,omitempty"`
ControlMode *struct {
Independent *string `json:"independent,omitempty"`
Ordered *string `json:"ordered,omitempty"`
} `json:"control-mode,omitempty"`
LabelRetentionMode *struct {
Liberal *string `json:"liberal,omitempty"`
Conservative *string `json:"conservative,omitempty"`
} `json:"label-retention-mode,omitempty"`
RequestRetryTimeout *int `json:"request-retry-timeout,omitempty"`
GracefulRestart *struct {
Enable *string `json:"enable,omitempty"`
Disable *string `json:"disable,omitempty"`
Timers *struct {
MaxRecovery *int `json:"max-recovery,omitempty"`
NeighborLiveness *int `json:"neighbor-liveness,omitempty"`
} `json:"timers,omitempty"`
} `json:"graceful-restart,omitempty"`
TargetedPeerHoldTime *int `json:"targeted-peer-hold-time,omitempty"`
LoopDetectionPathVecCount *int `json:"loop-detection-path-vec-count,omitempty"`
HoldTime *int `json:"hold-time,omitempty"`
RequestRetry *string `json:"request-retry,omitempty"`
LoopDetection *string `json:"loop-detection,omitempty"`
TargetedPeer *struct {
Ipv4 *map[string]struct {
} `json:"ipv4,omitempty"`
Ipv6 *net.IP `json:".ipv6,omitempty"`
} `json:"targeted-peer,omitempty"`
GlobalMergeCapability *struct {
NonMergeCapable *string `json:"non-merge-capable,omitempty"`
MergeCapable *string `json:"merge-capable,omitempty"`
} `json:"global-merge-capability,omitempty"`
KeepaliveInterval *int `json:"keepalive-interval,omitempty"`
AdvertisementMode *struct {
DownstreamOnDemand *string `json:"downstream-on-demand,omitempty"`
DownstreamUnsolicited *string `json:"downstream-unsolicited,omitempty"`
} `json:"advertisement-mode,omitempty"`
LoopDetectionHopCount *int `json:"loop-detection-hop-count,omitempty"`
HelloInterval *int `json:"hello-interval,omitempty"`
PwStatusTlv *string `json:"pw-status-tlv,omitempty"`
} `json:"ldp,omitempty"`
IgmpProxy *struct {
Disable *string `json:"disable,omitempty"`
Interface *map[string]struct {
Whitelist *net.IPNet `json:"whitelist,omitempty"`
Role *string `json:"role,omitempty"`
AltSubnet *net.IPNet `json:"alt-subnet,omitempty"`
Threshold *int `json:"threshold,omitempty"`
} `json:"interface,omitempty"`
DisableQuickleave *string `json:"disable-quickleave,omitempty"`
} `json:"igmp-proxy,omitempty"`
Bgp *map[string]struct {
Neighbor *map[string]struct {
Weight *int `json:"weight,omitempty"`
NoActivate *string `json:"no-activate,omitempty"`
EbgpMultihop *int `json:"ebgp-multihop,omitempty"`
Password *string `json:"password,omitempty"`
MaximumPrefix *int `json:"maximum-prefix,omitempty"`
FilterList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"filter-list,omitempty"`
AllowasIn *struct {
Number *int `json:"number,omitempty"`
} `json:"allowas-in,omitempty"`
RouteReflectorClient *string `json:"route-reflector-client,omitempty"`
OverrideCapability *string `json:"override-capability,omitempty"`
Shutdown *string `json:"shutdown,omitempty"`
StrictCapabilityMatch *string `json:"strict-capability-match,omitempty"`
DisableSendCommunity *struct {
Standard *string `json:"standard,omitempty"`
Extended *string `json:"extended,omitempty"`
} `json:"disable-send-community,omitempty"`
Timers *struct {
Holdtime *int `json:"holdtime,omitempty"`
Keepalive *int `json:"keepalive,omitempty"`
Connect *int `json:"connect,omitempty"`
} `json:"timers,omitempty"`
DefaultOriginate *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"default-originate,omitempty"`
RouteServerClient *string `json:"route-server-client,omitempty"`
Capability *struct {
Dynamic *string `json:"dynamic,omitempty"`
Orf *struct {
PrefixList *struct {
Both *string `json:"both,omitempty"`
Receive *string `json:"receive,omitempty"`
Send *string `json:"send,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"orf,omitempty"`
GracefulRestart *string `json:"graceful-restart,omitempty"`
} `json:"capability,omitempty"`
UpdateSource *string `json:"update-source,omitempty"`
TtlSecurity *struct {
Hops *int `json:"hops,omitempty"`
} `json:"ttl-security,omitempty"`
UnsuppressMap *string `json:"unsuppress-map,omitempty"`
FallOver *struct {
Bfd *struct {
Multihop *string `json:"multihop,omitempty"`
} `json:"bfd,omitempty"`
} `json:"fall-over,omitempty"`
Passive *string `json:"passive,omitempty"`
AddressFamily *struct {
Ipv6Unicast *struct {
MaximumPrefix *int `json:"maximum-prefix,omitempty"`
FilterList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"filter-list,omitempty"`
AllowasIn *struct {
Number *int `json:"number,omitempty"`
} `json:"allowas-in,omitempty"`
RouteReflectorClient *string `json:"route-reflector-client,omitempty"`
NexthopLocal *struct {
Unchanged *string `json:"unchanged,omitempty"`
} `json:"nexthop-local,omitempty"`
DisableSendCommunity *struct {
Standard *string `json:"standard,omitempty"`
Extended *string `json:"extended,omitempty"`
} `json:"disable-send-community,omitempty"`
DefaultOriginate *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"default-originate,omitempty"`
RouteServerClient *string `json:"route-server-client,omitempty"`
Capability *struct {
Orf *struct {
PrefixList *struct {
Receive *string `json:"receive,omitempty"`
Send *string `json:"send,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"orf,omitempty"`
GracefulRestart *string `json:"graceful-restart,omitempty"`
} `json:"capability,omitempty"`
UnsuppressMap *string `json:"unsuppress-map,omitempty"`
SoftReconfiguration *struct {
Inbound *string `json:"inbound,omitempty"`
} `json:"soft-reconfiguration,omitempty"`
AttributeUnchanged *struct {
AsPath *string `json:"as-path,omitempty"`
NextHop *string `json:"next-hop,omitempty"`
Med *string `json:"med,omitempty"`
} `json:"attribute-unchanged,omitempty"`
RouteMap *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"route-map,omitempty"`
NexthopSelf *string `json:"nexthop-self,omitempty"`
RemovePrivateAs *string `json:"remove-private-as,omitempty"`
PrefixList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"prefix-list,omitempty"`
DistributeList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"distribute-list,omitempty"`
PeerGroup *string `json:"peer-group,omitempty"`
} `json:"ipv6-unicast,omitempty"`
} `json:"address-family,omitempty"`
Description *string `json:"description,omitempty"`
SoftReconfiguration *struct {
Inbound *string `json:"inbound,omitempty"`
} `json:"soft-reconfiguration,omitempty"`
LocalAs *map[string]struct {
NoPrepend *string `json:"no-prepend,omitempty"`
} `json:"local-as,omitempty"`
AttributeUnchanged *struct {
AsPath *string `json:"as-path,omitempty"`
NextHop *string `json:"next-hop,omitempty"`
Med *string `json:"med,omitempty"`
} `json:"attribute-unchanged,omitempty"`
RouteMap *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"route-map,omitempty"`
RemoteAs *int `json:"remote-as,omitempty"`
NexthopSelf *string `json:"nexthop-self,omitempty"`
DisableConnectedCheck *string `json:"disable-connected-check,omitempty"`
DisableCapabilityNegotiation *string `json:"disable-capability-negotiation,omitempty"`
Port *int `json:"port,omitempty"`
AdvertisementInterval *int `json:"advertisement-interval,omitempty"`
RemovePrivateAs *string `json:"remove-private-as,omitempty"`
PrefixList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"prefix-list,omitempty"`
DistributeList *struct {
Word *map[string]struct {
Out *string `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"word,omitempty"`
Export *int `json:"export,omitempty"`
Import *int `json:"import,omitempty"`
} `json:"distribute-list,omitempty"`
PeerGroup *string `json:"peer-group,omitempty"`
} `json:"neighbor,omitempty"`
Timers *struct {
Holdtime *int `json:"holdtime,omitempty"`
Keepalive *int `json:"keepalive,omitempty"`
} `json:"timers,omitempty"`
MaximumPaths *struct {
Ibgp *int `json:"ibgp,omitempty"`
Ebgp *int `json:"ebgp,omitempty"`
} `json:"maximum-paths,omitempty"`
Network *map[string]struct {
Backdoor *string `json:"backdoor,omitempty"`
RouteMap *string `json:"route-map,omitempty"`
} `json:"network,omitempty"`
AggregateAddress *map[string]struct {
SummaryOnly *string `json:"summary-only,omitempty"`
AsSet *string `json:"as-set,omitempty"`
} `json:"aggregate-address,omitempty"`
AddressFamily *struct {
L2vpn *struct {
Vpls *struct {
Neighbor *struct {
Ipv4 *map[string]struct {
Activate *string `json:"activate,omitempty"`
} `json:"ipv4,omitempty"`
Ipv6 *map[string]struct {
Activate *string `json:"activate,omitempty"`
} `json:"ipv6,omitempty"`
Tag *map[string]struct {
Activate *string `json:"activate,omitempty"`
} `json:"tag,omitempty"`
} `json:"neighbor,omitempty"`
} `json:"vpls,omitempty"`
} `json:"l2vpn,omitempty"`
Ipv4Unicast *struct {
Vrf *map[string]struct {
Neighbor *map[string]struct {
Weight *int `json:"weight,omitempty"`
EbgpMultihop *int `json:"ebgp-multihop,omitempty"`
MaximumPrefix *int `json:"maximum-prefix,omitempty"`
FilterList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"filter-list,omitempty"`
AllowasIn *struct {
Number *int `json:"number,omitempty"`
} `json:"allowas-in,omitempty"`
RouteReflectorClient *string `json:"route-reflector-client,omitempty"`
Shutdown *string `json:"shutdown,omitempty"`
Timers *struct {
Holdtime *int `json:"holdtime,omitempty"`
Keepalive *int `json:"keepalive,omitempty"`
Connect *int `json:"connect,omitempty"`
} `json:"timers,omitempty"`
DefaultOriginate *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"default-originate,omitempty"`
Capability *struct {
Dynamic *string `json:"dynamic,omitempty"`
Orf *struct {
PrefixList *struct {
Both *string `json:"both,omitempty"`
Receive *string `json:"receive,omitempty"`
Send *string `json:"send,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"orf,omitempty"`
GracefulRestart *string `json:"graceful-restart,omitempty"`
} `json:"capability,omitempty"`
UpdateSource *string `json:"update-source,omitempty"`
UnsuppressMap *string `json:"unsuppress-map,omitempty"`
Passive *string `json:"passive,omitempty"`
Description *string `json:"description,omitempty"`
SoftReconfiguration *struct {
Inbound *string `json:"inbound,omitempty"`
} `json:"soft-reconfiguration,omitempty"`
LocalAs *map[string]struct {
NoPrepend *string `json:"no-prepend,omitempty"`
} `json:"local-as,omitempty"`
AttributeUnchanged *struct {
AsPath *string `json:"as-path,omitempty"`
NextHop *string `json:"next-hop,omitempty"`
Med *string `json:"med,omitempty"`
} `json:"attribute-unchanged,omitempty"`
RouteMap *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"route-map,omitempty"`
RemoteAs *int `json:"remote-as,omitempty"`
Activate *string `json:"activate,omitempty"`
Port *int `json:"port,omitempty"`
AdvertisementInterval *int `json:"advertisement-interval,omitempty"`
RemovePrivateAs *string `json:"remove-private-as,omitempty"`
PrefixList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"prefix-list,omitempty"`
DistributeList *struct {
Word *map[string]struct {
Out *string `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"word,omitempty"`
} `json:"distribute-list,omitempty"`
PeerGroup *string `json:"peer-group,omitempty"`
} `json:"neighbor,omitempty"`
Network *map[string]struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"network,omitempty"`
Parameters *struct {
Dampening *struct {
MaxSuppressTime *int `json:"max-suppress-time,omitempty"`
StartSuppressTime *int `json:"start-suppress-time,omitempty"`
ReUse *int `json:"re-use,omitempty"`
HalfLife *int `json:"half-life,omitempty"`
} `json:"dampening,omitempty"`
Confederation *struct {
Identifier *int `json:"identifier,omitempty"`
Peers *int `json:"peers,omitempty"`
} `json:"confederation,omitempty"`
} `json:"parameters,omitempty"`
Redistribute *struct {
Rip *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"rip,omitempty"`
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"connected,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"static,omitempty"`
Kernel *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"kernel,omitempty"`
Ospf *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"ospf,omitempty"`
} `json:"redistribute,omitempty"`
PeerGroup *map[string]struct {
Weight *int `json:"weight,omitempty"`
EbgpMultihop *int `json:"ebgp-multihop,omitempty"`
MaximumPrefix *int `json:"maximum-prefix,omitempty"`
FilterList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"filter-list,omitempty"`
AllowasIn *struct {
Number *int `json:"number,omitempty"`
} `json:"allowas-in,omitempty"`
RouteReflectorClient *string `json:"route-reflector-client,omitempty"`
OverrideCapability *string `json:"override-capability,omitempty"`
Shutdown *string `json:"shutdown,omitempty"`
DisableSendCommunity *struct {
Standard *string `json:"standard,omitempty"`
Extended *string `json:"extended,omitempty"`
} `json:"disable-send-community,omitempty"`
DefaultOriginate *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"default-originate,omitempty"`
Capability *struct {
Dynamic *string `json:"dynamic,omitempty"`
Orf *struct {
PrefixList *struct {
Receive *string `json:"receive,omitempty"`
Send *string `json:"send,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"orf,omitempty"`
} `json:"capability,omitempty"`
UpdateSource *string `json:"update-source,omitempty"`
UnsuppressMap *string `json:"unsuppress-map,omitempty"`
Passive *string `json:"passive,omitempty"`
Timers *struct {
Holdtime *int `json:"holdtime,omitempty"`
Keepalive *int `json:"keepalive,omitempty"`
} `json:".timers,omitempty"`
Description *string `json:"description,omitempty"`
SoftReconfiguration *struct {
Inbound *string `json:"inbound,omitempty"`
} `json:"soft-reconfiguration,omitempty"`
LocalAs *map[string]struct {
NoPrepend *string `json:"no-prepend,omitempty"`
} `json:"local-as,omitempty"`
AttributeUnchanged *struct {
AsPath *string `json:"as-path,omitempty"`
NextHop *string `json:"next-hop,omitempty"`
Med *string `json:"med,omitempty"`
} `json:"attribute-unchanged,omitempty"`
RouteMap *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"route-map,omitempty"`
RemoteAs *int `json:"remote-as,omitempty"`
DisableConnectedCheck *string `json:"disable-connected-check,omitempty"`
DisableCapabilityNegotiation *string `json:"disable-capability-negotiation,omitempty"`
RemovePrivateAs *string `json:"remove-private-as,omitempty"`
PrefixList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"prefix-list,omitempty"`
DistributeList *struct {
Export *int `json:"export,omitempty"`
Import *int `json:"import,omitempty"`
} `json:"distribute-list,omitempty"`
} `json:"peer-group,omitempty"`
} `json:"vrf,omitempty"`
} `json:".ipv4-unicast,omitempty"`
Ipv6Unicast *struct {
Network *map[string]struct {
RouteMap *string `json:"route-map,omitempty"`
PathLimit *int `json:"path-limit,omitempty"`
} `json:"network,omitempty"`
AggregateAddress *map[string]struct {
SummaryOnly *string `json:"summary-only,omitempty"`
} `json:"aggregate-address,omitempty"`
Redistribute *struct {
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"connected,omitempty"`
Ripng *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"ripng,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"static,omitempty"`
Ospfv3 *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"ospfv3,omitempty"`
Kernel *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"kernel,omitempty"`
} `json:"redistribute,omitempty"`
} `json:"ipv6-unicast,omitempty"`
} `json:"address-family,omitempty"`
Dampening *struct {
RouteMap *string `json:"route-map,omitempty"`
HalfLife *map[string]struct {
ReuseRoute *map[string]struct {
SupRoute *map[string]struct {
Time *map[string]struct {
HalfTime *int `json:"half-time,omitempty"`
} `json:"time,omitempty"`
} `json:"sup-route,omitempty"`
} `json:"reuse-route,omitempty"`
} `json:"half-life,omitempty"`
} `json:"dampening,omitempty"`
Parameters *struct {
ClusterId *net.IP `json:"cluster-id,omitempty"`
DisableNetworkImportCheck *string `json:"disable-network-import-check,omitempty"`
NoClientToClientReflection *string `json:"no-client-to-client-reflection,omitempty"`
EnforceFirstAs *string `json:"enforce-first-as,omitempty"`
RouterId *net.IP `json:"router-id,omitempty"`
Distance *struct {
Prefix *map[string]struct {
Distance *int `json:"distance,omitempty"`
} `json:"prefix,omitempty"`
Global *struct {
Internal *int `json:"internal,omitempty"`
Local *int `json:"local,omitempty"`
External *int `json:"external,omitempty"`
} `json:"global,omitempty"`
} `json:"distance,omitempty"`
Default *struct {
NoIpv4Unicast *string `json:"no-ipv4-unicast,omitempty"`
LocalPref *int `json:"local-pref,omitempty"`
} `json:"default,omitempty"`
AlwaysCompareMed *string `json:"always-compare-med,omitempty"`
GracefulRestart *struct {
StalepathTime *int `json:"stalepath-time,omitempty"`
} `json:"graceful-restart,omitempty"`
Dampening *struct {
MaxSuppressTime *int `json:"max-suppress-time,omitempty"`
StartSuppressTime *int `json:"start-suppress-time,omitempty"`
ReUse *int `json:"re-use,omitempty"`
HalfLife *int `json:"half-life,omitempty"`
} `json:"dampening,omitempty"`
DeterministicMed *string `json:"deterministic-med,omitempty"`
Bestpath *struct {
AsPath *struct {
Confed *string `json:"confed,omitempty"`
Ignore *string `json:"ignore,omitempty"`
} `json:"as-path,omitempty"`
CompareRouterid *string `json:"compare-routerid,omitempty"`
Med *struct {
Confed *string `json:"confed,omitempty"`
MissingAsWorst *string `json:"missing-as-worst,omitempty"`
} `json:"med,omitempty"`
} `json:"bestpath,omitempty"`
LogNeighborChanges *string `json:"log-neighbor-changes,omitempty"`
ScanTime *int `json:"scan-time,omitempty"`
Confederation *struct {
Identifier *int `json:"identifier,omitempty"`
Peers *int `json:"peers,omitempty"`
} `json:"confederation,omitempty"`
NoFastExternalFailover *string `json:"no-fast-external-failover,omitempty"`
} `json:"parameters,omitempty"`
Redistribute *struct {
Rip *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"rip,omitempty"`
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"connected,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"static,omitempty"`
Kernel *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"kernel,omitempty"`
Ospf *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"ospf,omitempty"`
} `json:"redistribute,omitempty"`
PeerGroup *map[string]struct {
Weight *int `json:"weight,omitempty"`
EbgpMultihop *int `json:"ebgp-multihop,omitempty"`
Password *string `json:"password,omitempty"`
MaximumPrefix *int `json:"maximum-prefix,omitempty"`
FilterList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"filter-list,omitempty"`
AllowasIn *struct {
Number *int `json:"number,omitempty"`
} `json:"allowas-in,omitempty"`
RouteReflectorClient *string `json:"route-reflector-client,omitempty"`
OverrideCapability *string `json:"override-capability,omitempty"`
Shutdown *string `json:"shutdown,omitempty"`
DisableSendCommunity *struct {
Standard *string `json:"standard,omitempty"`
Extended *string `json:"extended,omitempty"`
} `json:"disable-send-community,omitempty"`
DefaultOriginate *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"default-originate,omitempty"`
RouteServerClient *string `json:"route-server-client,omitempty"`
Capability *struct {
Dynamic *string `json:"dynamic,omitempty"`
Orf *struct {
PrefixList *struct {
Receive *string `json:"receive,omitempty"`
Send *string `json:"send,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"orf,omitempty"`
GracefulRestart *string `json:"graceful-restart,omitempty"`
} `json:"capability,omitempty"`
UpdateSource *string `json:"update-source,omitempty"`
TtlSecurity *struct {
Hops *int `json:"hops,omitempty"`
} `json:"ttl-security,omitempty"`
UnsuppressMap *string `json:"unsuppress-map,omitempty"`
Passive *string `json:"passive,omitempty"`
Timers *struct {
Holdtime *int `json:"holdtime,omitempty"`
Keepalive *int `json:"keepalive,omitempty"`
} `json:".timers,omitempty"`
AddressFamily *struct {
Ipv6Unicast *struct {
MaximumPrefix *int `json:"maximum-prefix,omitempty"`
FilterList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"filter-list,omitempty"`
AllowasIn *struct {
Number *int `json:"number,omitempty"`
} `json:"allowas-in,omitempty"`
RouteReflectorClient *string `json:"route-reflector-client,omitempty"`
NexthopLocal *struct {
Unchanged *string `json:"unchanged,omitempty"`
} `json:"nexthop-local,omitempty"`
DisableSendCommunity *struct {
Standard *string `json:"standard,omitempty"`
Extended *string `json:"extended,omitempty"`
} `json:"disable-send-community,omitempty"`
DefaultOriginate *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"default-originate,omitempty"`
RouteServerClient *string `json:"route-server-client,omitempty"`
Capability *struct {
Orf *struct {
PrefixList *struct {
Receive *string `json:"receive,omitempty"`
Send *string `json:"send,omitempty"`
} `json:"prefix-list,omitempty"`
} `json:"orf,omitempty"`
GracefulRestart *string `json:"graceful-restart,omitempty"`
} `json:"capability,omitempty"`
UnsuppressMap *string `json:"unsuppress-map,omitempty"`
SoftReconfiguration *struct {
Inbound *string `json:"inbound,omitempty"`
} `json:"soft-reconfiguration,omitempty"`
AttributeUnchanged *struct {
AsPath *string `json:"as-path,omitempty"`
NextHop *string `json:"next-hop,omitempty"`
Med *string `json:"med,omitempty"`
} `json:"attribute-unchanged,omitempty"`
RouteMap *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"route-map,omitempty"`
NexthopSelf *string `json:"nexthop-self,omitempty"`
RemovePrivateAs *string `json:"remove-private-as,omitempty"`
PrefixList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"prefix-list,omitempty"`
DistributeList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"distribute-list,omitempty"`
} `json:"ipv6-unicast,omitempty"`
} `json:"address-family,omitempty"`
Description *string `json:"description,omitempty"`
SoftReconfiguration *struct {
Inbound *string `json:"inbound,omitempty"`
} `json:"soft-reconfiguration,omitempty"`
LocalAs *map[string]struct {
NoPrepend *string `json:"no-prepend,omitempty"`
} `json:"local-as,omitempty"`
AttributeUnchanged *struct {
AsPath *string `json:"as-path,omitempty"`
NextHop *string `json:"next-hop,omitempty"`
Med *string `json:"med,omitempty"`
} `json:"attribute-unchanged,omitempty"`
RouteMap *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"route-map,omitempty"`
RemoteAs *int `json:"remote-as,omitempty"`
NexthopSelf *string `json:"nexthop-self,omitempty"`
DisableConnectedCheck *string `json:"disable-connected-check,omitempty"`
DisableCapabilityNegotiation *string `json:"disable-capability-negotiation,omitempty"`
RemovePrivateAs *string `json:"remove-private-as,omitempty"`
PrefixList *struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"prefix-list,omitempty"`
DistributeList *struct {
Export *int `json:"export,omitempty"`
Import *int `json:"import,omitempty"`
} `json:"distribute-list,omitempty"`
} `json:"peer-group,omitempty"`
} `json:"bgp,omitempty"`
Ospfv3 *struct {
Bfd *struct {
Interface *string `json:"interface,omitempty"`
AllInterfaces *string `json:"all-interfaces,omitempty"`
} `json:"bfd,omitempty"`
Area *map[string]struct {
ExportList *string `json:"export-list,omitempty"`
Interface *string `json:"interface,omitempty"`
FilterList *map[string]struct {
} `json:".filter-list,omitempty"`
ImportList *string `json:"import-list,omitempty"`
AreaType *struct {
Stub *struct {
DefaultCost *int `json:"default-cost,omitempty"`
NoSummary *string `json:"no-summary,omitempty"`
} `json:"stub,omitempty"`
Normal *string `json:"normal,omitempty"`
Nssa *struct {
DefaultCost *int `json:"default-cost,omitempty"`
Translate *string `json:"translate,omitempty"`
NoSummary *string `json:"no-summary,omitempty"`
StabilityInterval *int `json:"stability-interval,omitempty"`
DefaultInformationOriginate *struct {
RouteMap *string `json:"route-map,omitempty"`
Metric *map[string]struct {
Type *string `json:"type,omitempty"`
} `json:"metric,omitempty"`
} `json:"default-information-originate,omitempty"`
NoRedistribution *string `json:"no-redistribution,omitempty"`
} `json:"nssa,omitempty"`
} `json:"area-type,omitempty"`
VirtualLink *map[string]struct {
Bfd *string `json:"bfd,omitempty"`
} `json:"virtual-link,omitempty"`
Range *map[string]struct {
NotAdvertise *string `json:"not-advertise,omitempty"`
} `json:"range,omitempty"`
} `json:"area,omitempty"`
Timers *struct {
SfpExpDelay *struct {
Min *map[string]struct {
Max *int `json:"max,omitempty"`
} `json:"min,omitempty"`
} `json:"sfp-exp-delay,omitempty"`
} `json:"timers,omitempty"`
Capability *struct {
DbSummaryOpt *string `json:"db-summary-opt,omitempty"`
Te *string `json:"te,omitempty"`
Cspf *string `json:"cspf,omitempty"`
GracefulRestart *string `json:"graceful-restart,omitempty"`
} `json:"capability,omitempty"`
DefaultMetric *int `json:"default-metric,omitempty"`
Distance *struct {
Global *int `json:"global,omitempty"`
Ospfv3 *struct {
InterArea *int `json:"inter-area,omitempty"`
External *int `json:"external,omitempty"`
IntraArea *int `json:"intra-area,omitempty"`
} `json:"ospfv3,omitempty"`
} `json:"distance,omitempty"`
LogAdjacencyChanges *struct {
Detail *string `json:"detail,omitempty"`
} `json:"log-adjacency-changes,omitempty"`
SummaryAddress *net.IPNet `json:"summary-address,omitempty"`
Cspf *struct {
TieBreak *string `json:"tie-break,omitempty"`
DefaultRetryInterval *int `json:"default-retry-interval,omitempty"`
} `json:"cspf,omitempty"`
AutoCost *struct {
ReferenceBandwidth *int `json:"reference-bandwidth,omitempty"`
} `json:"auto-cost,omitempty"`
PassiveInterfaceExclude *string `json:"passive-interface-exclude,omitempty"`
Vrf *map[string]struct {
Bfd *struct {
AllInterfaces *string `json:"all-interfaces,omitempty"`
} `json:"bfd,omitempty"`
Area *map[string]struct {
ExportList *string `json:"export-list,omitempty"`
Interface *string `json:"interface,omitempty"`
FilterList *map[string]struct {
} `json:".filter-list,omitempty"`
ImportList *string `json:"import-list,omitempty"`
VirtualLink *map[string]struct {
Bfd *string `json:"bfd,omitempty"`
} `json:"virtual-link,omitempty"`
Range *map[string]struct {
Advertise *string `json:"advertise,omitempty"`
NotAdvertise *string `json:"not-advertise,omitempty"`
} `json:"range,omitempty"`
} `json:"area,omitempty"`
Parameters *struct {
RouterId *net.IP `json:"router-id,omitempty"`
} `json:"parameters,omitempty"`
Redistribute *struct {
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"connected,omitempty"`
Ripng *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"ripng,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"static,omitempty"`
Bgp *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"bgp,omitempty"`
Kernel *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"kernel,omitempty"`
} `json:"redistribute,omitempty"`
} `json:".vrf,omitempty"`
Parameters *struct {
RouterId *net.IP `json:"router-id,omitempty"`
AbrType *string `json:"abr-type,omitempty"`
} `json:"parameters,omitempty"`
PassiveInterface *string `json:"passive-interface,omitempty"`
MaxConcurrentDd *int `json:"max-concurrent-dd,omitempty"`
Redistribute *struct {
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"connected,omitempty"`
Ripng *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"ripng,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"static,omitempty"`
Bgp *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"bgp,omitempty"`
Kernel *struct {
RouteMap *string `json:"route-map,omitempty"`
} `json:"kernel,omitempty"`
} `json:"redistribute,omitempty"`
DistributeList *map[string]struct {
Out *struct {
Rip *string `json:"rip,omitempty"`
Connected *string `json:"connected,omitempty"`
Static *string `json:"static,omitempty"`
Bgp *string `json:"bgp,omitempty"`
Kernel *string `json:"kernel,omitempty"`
Ospf *int `json:"ospf,omitempty"`
Isis *string `json:"isis,omitempty"`
} `json:"out,omitempty"`
In *string `json:"in,omitempty"`
} `json:"distribute-list,omitempty"`
DefaultInformation *struct {
Originate *struct {
Always *string `json:"always,omitempty"`
RouteMap *string `json:"route-map,omitempty"`
MetricType *string `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"originate,omitempty"`
} `json:"default-information,omitempty"`
} `json:"ospfv3,omitempty"`
Ospf *struct {
Neighbor *map[string]struct {
PollInterval *int `json:"poll-interval,omitempty"`
Priority *int `json:"priority,omitempty"`
} `json:"neighbor,omitempty"`
Bfd *struct {
Interface *string `json:"interface,omitempty"`
AllInterfaces *string `json:"all-interfaces,omitempty"`
} `json:"bfd,omitempty"`
Area *map[string]struct {
Shortcut *string `json:"shortcut,omitempty"`
Network *net.IPNet `json:"network,omitempty"`
AreaType *struct {
Stub *struct {
DefaultCost *int `json:"default-cost,omitempty"`
NoSummary *string `json:"no-summary,omitempty"`
} `json:"stub,omitempty"`
Normal *string `json:"normal,omitempty"`
Nssa *struct {
DefaultCost *int `json:"default-cost,omitempty"`
Translate *string `json:"translate,omitempty"`
NoSummary *string `json:"no-summary,omitempty"`
} `json:"nssa,omitempty"`
} `json:"area-type,omitempty"`
VirtualLink *map[string]struct {
RetransmitInterval *int `json:"retransmit-interval,omitempty"`
TransmitDelay *int `json:"transmit-delay,omitempty"`
Bfd *string `json:"bfd,omitempty"`
DeadInterval *int `json:"dead-interval,omitempty"`
Authentication *struct {
Md5 *struct {
KeyId *map[string]struct {
Md5Key *string `json:"md5-key,omitempty"`
} `json:"key-id,omitempty"`
} `json:"md5,omitempty"`
PlaintextPassword *string `json:"plaintext-password,omitempty"`
} `json:"authentication,omitempty"`
HelloInterval *int `json:"hello-interval,omitempty"`
} `json:"virtual-link,omitempty"`
Range *map[string]struct {
Cost *int `json:"cost,omitempty"`
Substitute *net.IPNet `json:"substitute,omitempty"`
NotAdvertise *string `json:"not-advertise,omitempty"`
} `json:"range,omitempty"`
Authentication *string `json:"authentication,omitempty"`
} `json:"area,omitempty"`
Refresh *struct {
Timers *int `json:"timers,omitempty"`
} `json:"refresh,omitempty"`
Timers *struct {
Throttle *struct {
Spf *struct {
MaxHoldtime *int `json:"max-holdtime,omitempty"`
Delay *int `json:"delay,omitempty"`
InitialHoldtime *int `json:"initial-holdtime,omitempty"`
} `json:"spf,omitempty"`
} `json:"throttle,omitempty"`
} `json:"timers,omitempty"`
DefaultMetric *int `json:"default-metric,omitempty"`
Distance *struct {
Global *int `json:"global,omitempty"`
Ospf *struct {
InterArea *int `json:"inter-area,omitempty"`
External *int `json:"external,omitempty"`
IntraArea *int `json:"intra-area,omitempty"`
} `json:"ospf,omitempty"`
} `json:"distance,omitempty"`
LogAdjacencyChanges *struct {
Detail *string `json:"detail,omitempty"`
} `json:"log-adjacency-changes,omitempty"`
MplsTe *struct {
Enable *string `json:"enable,omitempty"`
RouterAddress *net.IP `json:"router-address,omitempty"`
} `json:"mpls-te,omitempty"`
AutoCost *struct {
ReferenceBandwidth *int `json:"reference-bandwidth,omitempty"`
} `json:"auto-cost,omitempty"`
PassiveInterfaceExclude *string `json:"passive-interface-exclude,omitempty"`
AccessList *map[string]struct {
Export *string `json:"export,omitempty"`
Import *string `json:"import,omitempty"`
} `json:"access-list,omitempty"`
InstanceId *map[string]struct {
Vrf *map[string]struct {
Neighbor *map[string]struct {
PollInterval *int `json:"poll-interval,omitempty"`
Priority *int `json:"priority,omitempty"`
} `json:"neighbor,omitempty"`
Bfd *struct {
AllInterfaces *string `json:"all-interfaces,omitempty"`
} `json:"bfd,omitempty"`
Area *map[string]struct {
Shortcut *string `json:"shortcut,omitempty"`
Network *net.IPNet `json:"network,omitempty"`
AreaType *struct {
Stub *struct {
DefaultCost *int `json:"default-cost,omitempty"`
NoSummary *string `json:"no-summary,omitempty"`
} `json:"stub,omitempty"`
Normal *string `json:"normal,omitempty"`
Nssa *struct {
DefaultCost *int `json:"default-cost,omitempty"`
Translate *string `json:"translate,omitempty"`
NoSummary *string `json:"no-summary,omitempty"`
} `json:"nssa,omitempty"`
} `json:"area-type,omitempty"`
VirtualLink *map[string]struct {
RetransmitInterval *int `json:"retransmit-interval,omitempty"`
TransmitDelay *int `json:"transmit-delay,omitempty"`
Bfd *string `json:"bfd,omitempty"`
DeadInterval *int `json:"dead-interval,omitempty"`
Authentication *struct {
Md5 *struct {
KeyId *map[string]struct {
Md5Key *string `json:"md5-key,omitempty"`
} `json:"key-id,omitempty"`
} `json:"md5,omitempty"`
PlaintextPassword *string `json:"plaintext-password,omitempty"`
} `json:"authentication,omitempty"`
HelloInterval *int `json:"hello-interval,omitempty"`
} `json:"virtual-link,omitempty"`
Range *map[string]struct {
Cost *int `json:"cost,omitempty"`
Substitute *net.IPNet `json:"substitute,omitempty"`
NotAdvertise *string `json:"not-advertise,omitempty"`
} `json:"range,omitempty"`
Authentication *string `json:"authentication,omitempty"`
} `json:"area,omitempty"`
Refresh *struct {
Timers *int `json:"timers,omitempty"`
} `json:"refresh,omitempty"`
Timers *struct {
Throttle *struct {
Spf *struct {
MaxHoldtime *int `json:"max-holdtime,omitempty"`
Delay *int `json:"delay,omitempty"`
InitialHoldtime *int `json:"initial-holdtime,omitempty"`
} `json:"spf,omitempty"`
} `json:"throttle,omitempty"`
} `json:"timers,omitempty"`
Capability *struct {
Cspf *struct {
EnableBetterProtection *string `json:"enable-better-protection,omitempty"`
TieBreak *struct {
MostFill *string `json:"most-fill,omitempty"`
LeastFill *string `json:"least-fill,omitempty"`
Random *string `json:"random,omitempty"`
} `json:"tie-break,omitempty"`
DisableBetterProtection *string `json:"disable-better-protection,omitempty"`
DefaultRetryInterval *int `json:"default-retry-interval,omitempty"`
} `json:"cspf,omitempty"`
TrafficEngineering *string `json:"traffic-engineering,omitempty"`
} `json:"capability,omitempty"`
DefaultMetric *int `json:"default-metric,omitempty"`
Distance *struct {
Global *int `json:"global,omitempty"`
Ospf *struct {
InterArea *int `json:"inter-area,omitempty"`
External *int `json:"external,omitempty"`
IntraArea *int `json:"intra-area,omitempty"`
} `json:"ospf,omitempty"`
} `json:"distance,omitempty"`
LogAdjacencyChanges *struct {
Detail *string `json:"detail,omitempty"`
} `json:"log-adjacency-changes,omitempty"`
MplsTe *struct {
Enable *string `json:"enable,omitempty"`
RouterAddress *net.IP `json:"router-address,omitempty"`
} `json:"mpls-te,omitempty"`
AutoCost *struct {
ReferenceBandwidth *int `json:"reference-bandwidth,omitempty"`
} `json:"auto-cost,omitempty"`
PassiveInterfaceExclude *string `json:"passive-interface-exclude,omitempty"`
AccessList *map[string]struct {
Export *string `json:"export,omitempty"`
} `json:"access-list,omitempty"`
Parameters *struct {
Rfc1583Compatibility *string `json:"rfc1583-compatibility,omitempty"`
RouterId *net.IP `json:"router-id,omitempty"`
AbrType *string `json:"abr-type,omitempty"`
OpaqueLsa *string `json:"opaque-lsa,omitempty"`
} `json:"parameters,omitempty"`
PassiveInterface *string `json:"passive-interface,omitempty"`
Redistribute *struct {
Rip *struct {
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"rip,omitempty"`
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"connected,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"static,omitempty"`
Bgp *struct {
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"bgp,omitempty"`
Kernel *struct {
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"kernel,omitempty"`
} `json:"redistribute,omitempty"`
MaxMetric *struct {
RouterLsa *struct {
OnStartup *int `json:"on-startup,omitempty"`
Administrative *string `json:"administrative,omitempty"`
OnShutdown *int `json:"on-shutdown,omitempty"`
} `json:"router-lsa,omitempty"`
} `json:"max-metric,omitempty"`
DefaultInformation *struct {
Originate *struct {
Always *string `json:"always,omitempty"`
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"originate,omitempty"`
} `json:"default-information,omitempty"`
} `json:"vrf,omitempty"`
} `json:".instance-id,omitempty"`
Parameters *struct {
Rfc1583Compatibility *string `json:"rfc1583-compatibility,omitempty"`
RouterId *net.IP `json:"router-id,omitempty"`
AbrType *string `json:"abr-type,omitempty"`
OpaqueLsa *string `json:"opaque-lsa,omitempty"`
} `json:"parameters,omitempty"`
PassiveInterface *string `json:"passive-interface,omitempty"`
Redistribute *struct {
Rip *struct {
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"rip,omitempty"`
Connected *struct {
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"connected,omitempty"`
Static *struct {
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"static,omitempty"`
Bgp *struct {
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"bgp,omitempty"`
Kernel *struct {
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"kernel,omitempty"`
} `json:"redistribute,omitempty"`
MaxMetric *struct {
RouterLsa *struct {
OnStartup *int `json:"on-startup,omitempty"`
Administrative *string `json:"administrative,omitempty"`
OnShutdown *int `json:"on-shutdown,omitempty"`
} `json:"router-lsa,omitempty"`
} `json:"max-metric,omitempty"`
DefaultInformation *struct {
Originate *struct {
Always *string `json:"always,omitempty"`
RouteMap *string `json:"route-map,omitempty"`
MetricType *int `json:"metric-type,omitempty"`
Metric *int `json:"metric,omitempty"`
} `json:"originate,omitempty"`
} `json:"default-information,omitempty"`
} `json:"ospf,omitempty"`
}
func main() {
var config ConfigProtocols
fmt.Println(config)
}
What version of Go are you using (
go version)?Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env)?go envOutputWhat did you do?
I wrote script to generate a struct that matched the input/output from an API (EdgeOS). The resulting struct is rather large, the code example below is only a portion. Running
go buildfails.What did you expect to see?
I expected
go buildto complete.What did you see instead?
truncated
Thanks to @davecheney who recommended I open a new issue, and not simply tag onto #18920.
Go Playground cannot handle the code for sharing either. Here is a complete example :
Example Code