| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524 |
- package dynamicrouting
- // BGPInstance represents global BGP settings (/routing bgp instance)
- type BGPInstance struct {
- Enabled bool `json:"enabled"`
- AS uint32 `json:"as"`
- RouterID string `json:"router_id"`
- HoldTime int `json:"hold_time"` // Default 180
- KeepaliveTime int `json:"keepalive_time"` // Default 60
- RedistributeConnected bool `json:"redistribute_connected"`
- RedistributeStatic bool `json:"redistribute_static"`
- RedistributeOSPF bool `json:"redistribute_ospf"`
- Running bool `json:"running"`
- }
- // BGPPeer represents a BGP peer connection (/routing bgp connection / peer)
- type BGPPeer struct {
- ID string `json:"id"`
- Name string `json:"name"`
- Enabled bool `json:"enabled"`
- Comment string `json:"comment,omitempty"`
- Instance string `json:"instance,omitempty"`
- Template string `json:"template,omitempty"`
- LocalAS uint32 `json:"local_as,omitempty"` // Multi-Instance Local AS (if 0, uses global AS)
- RouterID string `json:"router_id,omitempty"`
- AFI string `json:"afi,omitempty"` // "ip", "ipv6"
- RemoteAddress string `json:"remote_address"`
- RemotePort int `json:"remote_port,omitempty"`
- RemoteAS uint32 `json:"remote_as"`
- RemoteAllowAS string `json:"remote_allow_as,omitempty"`
- LocalAddress string `json:"local_address,omitempty"`
- LocalPort int `json:"local_port,omitempty"`
- LocalRole string `json:"local_role,omitempty"` // ebgp, ibgp
- Password string `json:"password,omitempty"` // TCP MD5 Key
- Multihop bool `json:"multihop"`
- TxTTL int `json:"tx_ttl,omitempty"`
- RxMinTTL int `json:"rx_min_ttl,omitempty"`
- Connect bool `json:"connect"`
- Listen bool `json:"listen"`
- HoldTime int `json:"hold_time,omitempty"`
- KeepaliveTime int `json:"keepalive_time,omitempty"`
- UseBFD bool `json:"use_bfd,omitempty"`
- RoutingTable string `json:"routing_table,omitempty"`
- VRF string `json:"vrf,omitempty"`
- NoClientReflect bool `json:"no_client_reflect,omitempty"`
- RedistConnected bool `json:"redist_connected"`
- RedistStatic bool `json:"redist_static"`
- RedistOSPF bool `json:"redist_ospf"`
- RedistBGP bool `json:"redist_bgp"`
- RedistRIP bool `json:"redist_rip,omitempty"`
- RedistVPN bool `json:"redist_vpn,omitempty"`
- RedistDHCP bool `json:"redist_dhcp,omitempty"`
- RedistFantasy bool `json:"redist_fantasy,omitempty"`
- RedistModem bool `json:"redist_modem,omitempty"`
- RedistBgpMplsVpn bool `json:"redist_bgp_mpls_vpn,omitempty"`
- RedistSlaac bool `json:"redist_slaac,omitempty"`
- DefaultOriginate bool `json:"default_originate"`
- NetworkBlackhole bool `json:"network_blackhole,omitempty"`
- NoEarlyCut bool `json:"no_early_cut,omitempty"`
- KeepSentAttrs bool `json:"keep_sent_attrs,omitempty"`
- InputAffinity string `json:"input_affinity,omitempty"`
- OutputAffinity string `json:"output_affinity,omitempty"`
- NexthopChoice string `json:"nexthop_choice,omitempty"` // default, force-self
- NexthopSelf bool `json:"nexthop_self"`
- DefaultPrepend int `json:"default_prepend,omitempty"`
- AllowASIn int `json:"allow_as_in,omitempty"`
- RemovePrivateAS bool `json:"remove_private_as"`
- ASOverride bool `json:"as_override,omitempty"`
- IgnoreASPathLen bool `json:"ignore_as_path_len,omitempty"`
- InFilter string `json:"in_filter,omitempty"` // Routing Filter chain for incoming routes
- InAcceptNLRI string `json:"in_accept_nlri,omitempty"`
- InAcceptCommunities string `json:"in_accept_communities,omitempty"`
- InAcceptExtCommunities string `json:"in_accept_ext_communities,omitempty"`
- InAcceptLargeCommunities string `json:"in_accept_large_communities,omitempty"`
- InFilterCommunities string `json:"in_filter_communities,omitempty"`
- InFilterExtCommunities string `json:"in_filter_ext_communities,omitempty"`
- InFilterLargeCommunities string `json:"in_filter_large_communities,omitempty"`
- InFilterUnknown bool `json:"in_filter_unknown,omitempty"`
- OutFilter string `json:"out_filter,omitempty"` // Routing Filter chain for outgoing routes
- OutSelectionPolicy string `json:"out_selection_policy,omitempty"`
- OutputNetwork string `json:"output_network,omitempty"`
- OutputNetworks []string `json:"output_networks,omitempty"` // Dynamic [+] / [-] output networks
- Disabled bool `json:"disabled"`
- Passive bool `json:"passive"`
- // Runtime telemetry
- State string `json:"state,omitempty"` // Established, Active, Connect, Idle
- Uptime string `json:"uptime,omitempty"`
- PrefixReceived int `json:"prefix_received"`
- PrefixSent int `json:"prefix_sent"`
- }
- // BGPNetwork represents an advertised network (/routing bgp network)
- type BGPNetwork struct {
- ID string `json:"id"`
- Network string `json:"network"` // CIDR, e.g. 10.200.0.0/24
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // BGPRoute represents an active BGP route
- type BGPRoute struct {
- Prefix string `json:"prefix"`
- NextHop string `json:"next_hop"`
- Metric int `json:"metric"`
- Weight int `json:"weight"`
- Path string `json:"path"`
- Origin string `json:"origin"`
- Best bool `json:"best"`
- }
- // OSPFInstance represents an OSPF instance (/routing ospf instance)
- type OSPFInstance struct {
- ID string `json:"id"`
- Name string `json:"name"` // Default "Default"
- Version int `json:"version"` // 2 or 3 (default 2)
- VRF string `json:"vrf"` // Default "main"
- RouterID string `json:"router_id"` // e.g. "10.42.62.254"
- RoutingTable string `json:"routing_table,omitempty"`// Default "main"
- Enabled bool `json:"enabled"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- RedistributeConnected bool `json:"redistribute_connected"`
- RedistributeStatic bool `json:"redistribute_static"`
- RedistributeBGP bool `json:"redistribute_bgp"`
- RedistributeDefault bool `json:"redistribute_default"` // MikroTik redistribute-default
- OriginateDefault string `json:"originate_default,omitempty"` // "never", "if-installed", "always"
- DefaultMetric int `json:"default_metric"`
- Running bool `json:"running"`
- }
- // OSPFArea represents an OSPF area (/routing ospf area)
- type OSPFArea struct {
- ID string `json:"id"`
- Name string `json:"name"` // Default "Default"
- Instance string `json:"instance,omitempty"` // Default "Default"
- AreaID string `json:"area_id"` // e.g. "0.0.0.0"
- AreaType string `json:"area_type"` // default, stub, nssa
- DefaultCost int `json:"default_cost,omitempty"`
- NoSummaries bool `json:"no_summaries,omitempty"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // OSPFAreaRange represents an area range (/routing ospf area range)
- type OSPFAreaRange struct {
- ID string `json:"id"`
- Area string `json:"area"` // Area name or ID
- Prefix string `json:"prefix"` // CIDR e.g. "10.42.0.0/16"
- Cost int `json:"cost"`
- Advertise bool `json:"advertise"` // default true
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // OSPFInterface represents an OSPF interface template (/routing ospf interface-template)
- type OSPFInterface struct {
- ID string `json:"id"`
- Interfaces string `json:"interfaces,omitempty"` // ether1, wlan1, all...
- Area string `json:"area"` // Area ID or name e.g. "Default" / "0.0.0.0"
- Networks string `json:"networks,omitempty"` // CIDR e.g. "10.42.36.244/30"
- NetworkType string `json:"network_type"` // broadcast, ptp, nbma, point-to-multipoint
- Cost int `json:"cost"` // Metric, default 1
- Priority int `json:"priority"` // Default 128
- HelloInterval int `json:"hello_interval"` // Default 10
- DeadInterval int `json:"dead_interval"` // Default 40
- Passive bool `json:"passive"`
- Auth string `json:"auth,omitempty"` // none, simple, md5
- AuthKey string `json:"auth_key,omitempty"`
- UseBFD bool `json:"use_bfd,omitempty"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- // Backward compatibility aliases
- Network string `json:"network,omitempty"`
- Interface string `json:"interface,omitempty"`
- AuthType string `json:"auth_type,omitempty"`
- }
- // OSPFInterfaceLive represents dynamic live OSPF interface state (/routing ospf interface)
- type OSPFInterfaceLive struct {
- Flags string `json:"flags"` // "D" (dynamic)
- Interface string `json:"interface"` // e.g. "eth0"
- Address string `json:"address"` // e.g. "192.168.131.0/24"
- Area string `json:"area"` // e.g. "Default" or "0.0.0.0"
- InstanceID int `json:"instance_id"` // 0
- State string `json:"state"` // dr, backup, waiting, passive, ptp
- Cost int `json:"cost"`
- Priority int `json:"priority"`
- }
- // OSPFStaticNeighbor represents a static OSPF neighbor (/routing ospf static-neighbor)
- type OSPFStaticNeighbor struct {
- ID string `json:"id"`
- Address string `json:"address"`
- Area string `json:"area"`
- PollInterval int `json:"poll_interval"`
- Cost int `json:"cost"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // OSPFNeighbor represents a live OSPF neighbor (/routing ospf neighbor)
- type OSPFNeighbor struct {
- Flags string `json:"flags"` // "D" (dynamic)
- Comment string `json:"comment,omitempty"`
- Instance string `json:"instance"` // "Default"
- Area string `json:"area"` // "Default"
- Address string `json:"address"` // "10.42.62.249"
- State string `json:"state"` // "Full"
- StateChanges int `json:"state_changes"` // e.g. 6
- NeighborID string `json:"neighbor_id,omitempty"`
- Interface string `json:"interface,omitempty"`
- DeadTimer string `json:"dead_timer,omitempty"`
- Priority int `json:"priority,omitempty"`
- }
- // OSPFLSA represents an LSA record in the Link-State Database (/routing ospf lsa)
- type OSPFLSA struct {
- Flags string `json:"flags"` // "D", "SD"
- Instance string `json:"instance"` // "Default"
- Area string `json:"area"` // "Default"
- Type string `json:"type"` // "router", "network", "as-external", "summary-net", "summary-asbr"
- Originator string `json:"originator"` // Router ID
- ID string `json:"id"` // LS ID
- Link string `json:"link"`
- LinkIndex int `json:"link_index"`
- Sequence string `json:"sequence"` // e.g. "8000006e"
- Age int `json:"age"` // seconds
- }
- // OSPFRoute represents an active OSPF route
- type OSPFRoute struct {
- Prefix string `json:"prefix"`
- RouteType string `json:"route_type"` // Intra-Area, Inter-Area, External
- Cost int `json:"cost"`
- Area string `json:"area"`
- NextHop string `json:"next_hop"`
- Interface string `json:"interface"`
- }
- // RoutingFilterRule represents a route filter rule (/routing filter rule)
- type RoutingFilterRule struct {
- ID string `json:"id"`
- Chain string `json:"chain"` // e.g. "bgp-in", "bgp-out", "isp-in"
- RuleOrder int `json:"rule_order"` // e.g. 10, 20, 30... Sequence number
- Rule string `json:"rule"` // RouterOS v7 rule script e.g. "if (dst in 10.0.0.0/8) { set bgp-local-pref 150; accept; }"
- Action string `json:"action"` // "accept" (permit), "discard" (deny), "reject", "passthrough"
- Prefix string `json:"prefix,omitempty"` // CIDR e.g. "10.0.0.0/8" or "0.0.0.0/0"
- PrefixLen string `json:"prefix_len,omitempty"` // e.g. "24-32", "ge 24 le 32", "24"
- MatchProtocol string `json:"match_protocol,omitempty"` // "any", "bgp", "ospf", "connected", "static"
- MatchASPath string `json:"match_as_path,omitempty"` // regex e.g. "^65000_"
- MatchCommunity string `json:"match_community,omitempty"`// e.g. "65001:100"
- SetLocalPref int `json:"set_local_pref,omitempty"` // BGP Local Preference
- SetMetric int `json:"set_metric,omitempty"` // BGP MED / OSPF Metric
- SetASPrepend int `json:"set_as_prepend,omitempty"` // AS Path prepend count
- SetCommunity string `json:"set_community,omitempty"` // Set BGP community
- SetNextHop string `json:"set_next_hop,omitempty"` // Custom Next Hop IP
- SetDistance int `json:"set_distance,omitempty"` // Administrative Distance
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // RoutingFilterSelectRule represents a deprecated route selection rule (/routing filter select-rule)
- type RoutingFilterSelectRule struct {
- ID string `json:"id"`
- Chain string `json:"chain"`
- RuleOrder int `json:"rule_order"`
- Rule string `json:"rule"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // RoutingFilterCommunityList represents a named community set (/routing filter community-list)
- type RoutingFilterCommunityList struct {
- ID string `json:"id"`
- Name string `json:"name"`
- Communities []string `json:"communities"`
- Regexp string `json:"regexp,omitempty"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // RoutingFilterASList represents a named AS number list (/routing filter num-list)
- type RoutingFilterASList struct {
- ID string `json:"id"`
- Name string `json:"name"`
- Range string `json:"range"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // RIPInstance represents a RIP routing instance (/routing rip instance)
- type RIPInstance struct {
- ID string `json:"id"`
- Name string `json:"name"` // e.g. "default"
- Version int `json:"version"` // 2 for IPv4, 1 for RIPng IPv6 (default 2)
- VRF string `json:"vrf,omitempty"` // default "main"
- RoutingTable string `json:"routing_table,omitempty"`// default "main"
- Enabled bool `json:"enabled"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- RedistributeConnected bool `json:"redistribute_connected"`
- RedistributeStatic bool `json:"redistribute_static"`
- RedistributeOSPF bool `json:"redistribute_ospf"`
- RedistributeBGP bool `json:"redistribute_bgp"`
- RedistributeDefault bool `json:"redistribute_default"`
- DefaultMetric int `json:"default_metric"` // default 1
- UpdateTime int `json:"update_time"` // default 30
- TimeoutTime int `json:"timeout_time"` // default 180
- GarbageTime int `json:"garbage_time"` // default 120
- Running bool `json:"running"`
- }
- // RIPInterface represents a RIP interface template (/routing rip interface)
- type RIPInterface struct {
- ID string `json:"id"`
- Instance string `json:"instance,omitempty"`
- Interface string `json:"interface"` // e.g. "eth0" or "*"
- Metric int `json:"metric"` // Metric/cost added (default 1)
- Mode string `json:"mode,omitempty"` // "multicast", "broadcast" (default multicast)
- Passive bool `json:"passive"`
- UseBFD bool `json:"use_bfd,omitempty"`
- Auth string `json:"auth,omitempty"` // "none", "simple", "md5"
- AuthKey string `json:"auth_key,omitempty"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // RIPNeighbor represents an explicit RIP neighbor (/routing rip neighbor)
- type RIPNeighbor struct {
- ID string `json:"id"`
- Instance string `json:"instance,omitempty"`
- Address string `json:"address"` // Neighbor IP
- Interface string `json:"interface,omitempty"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // RIPNeighborLive represents a live RIP neighbor detected by BIRD
- type RIPNeighborLive struct {
- Address string `json:"address"`
- Interface string `json:"interface"`
- Uptime string `json:"uptime"`
- LastSeen string `json:"last_seen"`
- }
- // RIPRoute represents an active RIP route learned or advertised
- type RIPRoute struct {
- Prefix string `json:"prefix"`
- NextHop string `json:"next_hop"`
- Metric int `json:"metric"`
- Interface string `json:"interface"`
- Uptime string `json:"uptime"`
- }
- // BFDInstance represents global BFD settings (/routing bfd instance)
- type BFDInstance struct {
- Enabled bool `json:"enabled"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- Running bool `json:"running"`
- }
- // BFDInterface represents a BFD interface template (/routing bfd interface)
- type BFDInterface struct {
- ID string `json:"id"`
- Interface string `json:"interface"` // e.g. "eth0" or "*"
- MinRxInterval int `json:"min_rx_interval"` // ms, default 100
- MinTxInterval int `json:"min_tx_interval"` // ms, default 100
- IdleTxInterval int `json:"idle_tx_interval,omitempty"`// ms, default 1000
- Multiplier int `json:"multiplier"` // default 3
- Passive bool `json:"passive"`
- Auth string `json:"auth,omitempty"` // "none", "simple", "meticulous keyed sha1"
- AuthKey string `json:"auth_key,omitempty"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // BFDNeighbor represents an explicit BFD neighbor / peer (/routing bfd peer)
- type BFDNeighbor struct {
- ID string `json:"id"`
- Address string `json:"address"`
- Interface string `json:"interface,omitempty"`
- Multihop bool `json:"multihop"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // BFDSession represents a live BFD session (/routing bfd session)
- type BFDSession struct {
- IP string `json:"ip"`
- Interface string `json:"interface"`
- State string `json:"state"` // "Up", "Down", "Init", "AdminDown"
- Since string `json:"since"`
- Interval string `json:"interval"`
- Timeout string `json:"timeout"`
- }
- // BabelInstance represents a Babel instance (/routing babel instance)
- type BabelInstance struct {
- ID string `json:"id"`
- Name string `json:"name"` // "default"
- RouterID string `json:"router_id,omitempty"`
- VRF string `json:"vrf,omitempty"`
- RoutingTable string `json:"routing_table,omitempty"`
- Enabled bool `json:"enabled"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- RedistributeConnected bool `json:"redistribute_connected"`
- RedistributeStatic bool `json:"redistribute_static"`
- RedistributeOSPF bool `json:"redistribute_ospf"`
- RedistributeBGP bool `json:"redistribute_bgp"`
- RedistributeDefault bool `json:"redistribute_default"`
- DefaultMetric int `json:"default_metric"`
- Running bool `json:"running"`
- }
- // BabelInterface represents a Babel interface template (/routing babel interface)
- type BabelInterface struct {
- ID string `json:"id"`
- Instance string `json:"instance,omitempty"`
- Interface string `json:"interface"` // "eth0" or "*"
- Type string `json:"type,omitempty"` // "wired", "wireless" (default "wired")
- RxCost int `json:"rxcost,omitempty"` // default 10 or 96
- HelloInterval int `json:"hello_interval,omitempty"` // default 4 s
- UpdateInterval int `json:"update_interval,omitempty"` // default 16 s
- Auth string `json:"auth,omitempty"` // "none", "mac"
- AuthKey string `json:"auth_key,omitempty"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // BabelNeighbor represents a live Babel neighbor (/routing babel neighbor)
- type BabelNeighbor struct {
- IP string `json:"ip"`
- Interface string `json:"interface"`
- Metric int `json:"metric"`
- Cost int `json:"cost"`
- Uptime string `json:"uptime"`
- }
- // BabelRoute represents an active Babel route (/routing babel route)
- type BabelRoute struct {
- Prefix string `json:"prefix"`
- NextHop string `json:"next_hop"`
- Metric int `json:"metric"`
- Interface string `json:"interface"`
- }
- // RAdvInstance represents an IPv6 Router Advertisement instance (/routing radv instance)
- type RAdvInstance struct {
- ID string `json:"id"`
- Name string `json:"name"` // "default"
- Enabled bool `json:"enabled"`
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- Running bool `json:"running"`
- }
- // RAdvInterface represents a RAdv interface (/routing radv interface)
- type RAdvInterface struct {
- ID string `json:"id"`
- Instance string `json:"instance,omitempty"`
- Interface string `json:"interface"`
- MinRAInterval int `json:"min_ra_interval,omitempty"` // default 200 s
- MaxRAInterval int `json:"max_ra_interval,omitempty"` // default 600 s
- DefaultLifetime int `json:"default_lifetime,omitempty"` // default 1800 s
- HopLimit int `json:"hop_limit,omitempty"` // default 64
- Prefixes []string `json:"prefixes,omitempty"` // IPv6 prefixes e.g. ["2001:db8::/64"]
- RDNSS []string `json:"rdnss,omitempty"` // IPv6 DNS servers e.g. ["2001:4860:4860::8888"]
- Disabled bool `json:"disabled"`
- Comment string `json:"comment,omitempty"`
- }
- // DynamicRoutingSummary aggregates status for dashboard & badges
- type DynamicRoutingSummary struct {
- BGPEnabled bool `json:"bgp_enabled"`
- BGPRunning bool `json:"bgp_running"`
- BGPPeerCount int `json:"bgp_peer_count"`
- BGPEstablishedCount int `json:"bgp_established_count"`
- OSPFEnabled bool `json:"ospf_enabled"`
- OSPFRunning bool `json:"ospf_running"`
- OSPFNeighborCount int `json:"ospf_neighbor_count"`
- OSPFAdjacentCount int `json:"ospf_adjacent_count"`
- RIPEnabled bool `json:"rip_enabled"`
- RIPRunning bool `json:"rip_running"`
- RIPNeighborCount int `json:"rip_neighbor_count"`
- BFDEnabled bool `json:"bfd_enabled"`
- BFDRunning bool `json:"bfd_running"`
- BFDSessionCount int `json:"bfd_session_count"`
- BabelEnabled bool `json:"babel_enabled"`
- BabelRunning bool `json:"babel_running"`
- BabelNeighborCount int `json:"babel_neighbor_count"`
- RAdvEnabled bool `json:"radv_enabled"`
- RAdvRunning bool `json:"radv_running"`
- RoutingFilterCount int `json:"routing_filter_count"`
- }
- // DynamicConfig stores all dynamic routing data on disk
- type DynamicConfig struct {
- BGPInstance BGPInstance `json:"bgp_instance"`
- BGPPeers []BGPPeer `json:"bgp_peers"`
- BGPNetworks []BGPNetwork `json:"bgp_networks"`
- OSPFInstances []OSPFInstance `json:"ospf_instances"`
- OSPFInstance OSPFInstance `json:"ospf_instance"` // Backward compatibility
- OSPFAreas []OSPFArea `json:"ospf_areas"`
- OSPFAreaRanges []OSPFAreaRange `json:"ospf_area_ranges"`
- OSPFInterfaces []OSPFInterface `json:"ospf_interfaces"`
- OSPFStaticNbrs []OSPFStaticNeighbor `json:"ospf_static_nbrs"`
- RIPInstances []RIPInstance `json:"rip_instances"`
- RIPInterfaces []RIPInterface `json:"rip_interfaces"`
- RIPNeighbors []RIPNeighbor `json:"rip_neighbors"`
- BFDInstance BFDInstance `json:"bfd_instance"`
- BFDInterfaces []BFDInterface `json:"bfd_interfaces"`
- BFDNeighbors []BFDNeighbor `json:"bfd_neighbors"`
- BabelInstances []BabelInstance `json:"babel_instances"`
- BabelInterfaces []BabelInterface `json:"babel_interfaces"`
- RAdvInstances []RAdvInstance `json:"radv_instances"`
- RAdvInterfaces []RAdvInterface `json:"radv_interfaces"`
- RoutingFilters []RoutingFilterRule `json:"routing_filters"`
- RoutingSelectRules []RoutingFilterSelectRule `json:"routing_select_rules,omitempty"` // Deprecated: unused in BIRD 2
- RoutingCommunityLists []RoutingFilterCommunityList `json:"routing_community_lists"`
- RoutingASLists []RoutingFilterASList `json:"routing_as_lists"`
- }
|