log "bird.log" all; attribute int foo; protocol device {} protocol static { ipv6 { import filter { preference = 111; foo = 666; accept; }; }; route 2001:db8:0::/48 unreachable { bgp_path.prepend(65432); bgp_path.prepend(4200000000); }; route 2001:db8:1::/48 unreachable; route 2001:db8:2::/48 unreachable; route 2001:db8:3::/48 unreachable; route 2001:db8:4::/48 unreachable; route 2001:db8:5::/48 unreachable; route 2001:db8:6::/48 unreachable; route 2001:db8:7::/48 unreachable; route 2001:db8:8::/48 unreachable; route 2001:db8:9::/48 unreachable; route 2001:db8:a::/48 unreachable; route 2001:db8:b::/48 unreachable; route 2001:db8:c::/48 unreachable; route 2001:db8:d::/48 unreachable; route 2001:db8:e::/48 unreachable; route 2001:db8:f::/48 unreachable; } protocol static { ipv6 { import filter { preference = 222; foo = 666; bgp_med = 1; bgp_community = -empty-.add((65533,1)).add((65500,0xe)); accept; }; }; route 2001:db8:1::/48 unreachable; route 2001:db8:3::/48 unreachable; route 2001:db8:5::/48 unreachable; route 2001:db8:7::/48 unreachable; route 2001:db8:9::/48 unreachable; route 2001:db8:b::/48 unreachable; route 2001:db8:d::/48 unreachable; route 2001:db8:f::/48 unreachable; } protocol static { ipv6 { import filter { preference = 222; foo = 666; bgp_med = 2; bgp_community = -empty-.add((65533,2)).add((65500,0xd)); accept; }; }; route 2001:db8:2::/48 unreachable; route 2001:db8:3::/48 unreachable; route 2001:db8:6::/48 unreachable; route 2001:db8:7::/48 unreachable; route 2001:db8:a::/48 unreachable; route 2001:db8:b::/48 unreachable; route 2001:db8:e::/48 unreachable; route 2001:db8:f::/48 unreachable; } protocol static { ipv6 { import filter { preference = 222; foo = 666; bgp_med = 4; bgp_community = -empty-.add((65533,4)).add((65500,0xb)); accept; }; }; route 2001:db8:4::/48 unreachable; route 2001:db8:5::/48 unreachable; route 2001:db8:6::/48 unreachable; route 2001:db8:7::/48 unreachable; route 2001:db8:c::/48 unreachable; route 2001:db8:d::/48 unreachable; route 2001:db8:e::/48 unreachable; route 2001:db8:f::/48 unreachable; } protocol static { ipv6 { import filter { preference = 222; foo = 666; bgp_med = 8; bgp_community = -empty-.add((65533,8)).add((65500,0x7)); accept; }; }; route 2001:db8:8::/48 unreachable; route 2001:db8:9::/48 unreachable; route 2001:db8:a::/48 unreachable; route 2001:db8:b::/48 unreachable; route 2001:db8:c::/48 unreachable; route 2001:db8:d::/48 unreachable; route 2001:db8:e::/48 unreachable; route 2001:db8:f::/48 unreachable; } ipv6 table agr_result; protocol aggregator { table master6; peer table agr_result; export all; aggregate on net,(defined(bgp_med)), (1 + 3 + 5 + 7), preference, dest; merge by { print "Merging all these: ", routes; bgp_med = 0; for route r in routes do { if ! defined(r.bgp_med) then { unset(bgp_med); accept; } print r, " bgp_med: ", r.bgp_med; bgp_med = bgp_med + r.bgp_med; bgp_community = bgp_community.add(r.bgp_community); } accept; }; }