{
    "address_types": [
        "ipv4",
        "ipv6"
    ],
    "ipv4base": "10.0.0.0",
    "ipv4mask": 24,
    "ipv6base": "fd00::",
    "ipv6mask": 64,
    "link_ip_start": {
        "ipv4": "10.0.0.0",
        "v4mask": 24,
        "ipv6": "fd00::",
        "v6mask": 64
    },
    "lo_prefix": {
        "ipv4": "1.0.",
        "v4mask": 32,
        "ipv6": "2001:DB8:F::",
        "v6mask": 128
    },
    "routers": {
        "r1": {
            "links": {
                "lo": {
                    "ipv4": "auto",
                    "ipv6": "auto",
                    "type": "loopback"
                },
                "r2-link1": {
                    "ipv4": "auto",
                    "ipv6": "auto"
                }
            },
            "bgp": {
                "local_as": "100",
                "address_family": {
                    "ipv4": {
                        "unicast": {
                            "neighbor": {
                                "r2": {
                                    "dest_link": {
                                        "r1-link1": {}
                                    }
                                }
                            }
                        }
                    },
                    "ipv6": {
                        "unicast": {
                            "neighbor": {
                                "r2": {
                                    "dest_link": {
                                        "r1-link1": {}
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "r2": {
            "links": {
                "lo": {
                    "ipv4": "auto",
                    "ipv6": "auto",
                    "type": "loopback"
                },
                "r1-link1": {
                    "ipv4": "auto",
                    "ipv6": "auto"
                },
                "r3-link1": {
                    "ipv4": "auto",
                    "ipv6": "auto"
                },
                "r3-link2": {
                    "ipv4": "auto",
                    "ipv6": "auto"
                }
            },
            "bgp": {
                "local_as": "100",
                "address_family": {
                    "ipv4": {
                        "unicast": {
                            "neighbor": {
                                "r1": {
                                    "dest_link": {
                                        "r2-link1": {}
                                    }
                                },
                                "r3": {
                                    "dest_link": {
                                        "r2-link1": {
                                            "keepalivetimer": 60,
                                            "holddowntimer": 180,
                                            "next_hop_self": true
                                        },
                                        "r2-link2": {
                                            "keepalivetimer": 60,
                                            "holddowntimer": 180,
                                            "next_hop_self": true
                                        }
                                    }
                                }
                            },
                            "redistribute": [
                                {
                                    "redist_type": "static"
                                }
                            ]
                        }
                    },
                    "ipv6": {
                        "unicast": {
                            "neighbor": {
                                "r1": {
                                    "dest_link": {
                                        "r2-link1": {}
                                    }
                                },
                                "r3": {
                                    "dest_link": {
                                        "r2-link1": {
                                            "keepalivetimer": 60,
                                            "holddowntimer": 180,
                                            "next_hop_self": true
                                        },
                                        "r2-link2": {
                                            "keepalivetimer": 60,
                                            "holddowntimer": 180,
                                            "next_hop_self": true
                                        }
                                    }
                                }
                            },
                            "redistribute": [
                                {
                                    "redist_type": "static"
                                }
                            ]
                        }
                    }
                }
            }
        },
        "r3": {
            "links": {
                "lo": {
                    "ipv4": "auto",
                    "ipv6": "auto",
                    "type": "loopback"
                },
                "r2-link1": {
                    "ipv4": "auto",
                    "ipv6": "auto"
                },
                "r2-link2": {
                    "ipv4": "auto",
                    "ipv6": "auto"
                }
            },
            "route_maps": {
                "rmap_global": [{
                    "action": "permit",
                    "set": {
                        "ipv6": {
                            "nexthop": "prefer-global"
                        }
                    }
                }]
            },
            "bgp": {
                "local_as": "100",
                "address_family": {
                    "ipv4": {
                        "unicast": {
                            "maximum_paths": {
                                "ibgp": 2
                            },
                            "neighbor": {
                                "r2": {
                                    "dest_link": {
                                        "r3-link1": {
                                            "keepalivetimer": 60,
                                            "holddowntimer": 180
                                        },
                                        "r3-link2": {
                                            "keepalivetimer": 60,
                                            "holddowntimer": 180
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "ipv6": {
                        "unicast": {
                            "maximum_paths": {
                                "ibgp": 2
                            },
                            "neighbor": {
                                "r2": {
                                    "dest_link": {
                                        "r3-link1": {
                                            "keepalivetimer": 60,
                                            "holddowntimer": 180,
                                            "route_maps": [{
                                                "name": "rmap_global",
                                                "direction": "in"
                                            }]
                                        },
                                        "r3-link2": {
                                            "keepalivetimer": 60,
                                            "holddowntimer": 180,
                                            "route_maps": [{
                                                "name": "rmap_global",
                                                "direction": "in"
                                            }]
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
