template bgp dn42_bgp_up { graceful restart; local as DN42_ASN; ipv4 { table dn42v4; import filter { if is_dn42_prefix() && !dn42_is_self_net() then accept; reject; }; export filter { if is_dn42_prefix() && source ~ [RTS_STATIC, RTS_BGP] then accept; else reject; }; import limit 9000 action block; }; ipv6 { table dn42v6; import filter { if is_dn42_prefix() && !dn42_is_self_net_v6() then accept; reject; }; export filter { if is_dn42_prefix() && source ~ [RTS_STATIC, RTS_BGP] then accept; else reject; }; import limit 9000 action block; }; } template bgp dn42_ibgp { graceful restart; local as DN42_ASN; med metric; direct; ipv4 { table dn42v4; next hop self; gateway direct; import filter { if bgp_large_community ~ [(DN42_ASN, 1,*)] then reject; if !is_dn42_prefix() then reject; if dn42_is_self_net() then reject; accept; }; export filter { if bgp_large_community ~ [(DN42_ASN, 1,*)] then reject; if !is_dn42_prefix() then reject; if dn42_is_self_net() then reject; accept; }; }; ipv6 { table dn42v6; next hop self; gateway direct; import filter { if bgp_large_community ~ [(DN42_ASN, 1,*)] then reject; if !is_dn42_prefix() then reject; if dn42_is_self_net_v6() then reject; accept; }; export filter { if bgp_large_community ~ [(DN42_ASN, 1,*)] then reject; if !is_dn42_prefix() then reject; if dn42_is_self_net_v6() then reject; accept; }; }; }