{
/* rte.flags / rte.pflags are not checked, as they are internal to rtable */
return
- (
+ (x == y) || (
(x->attrs == y->attrs) ||
((!x->attrs->cached || !y->attrs->cached) && rta_same(x->attrs, y->attrs))
) &&
if (!AGGREGATOR_CFG->aggr_on_net)
cf_error("aggregate on must be always include 'net'.");
+ struct f_inst *rot = NULL;
+ while ($4.begin)
+ {
+ struct f_inst *tmp = $4.begin->next;
+ $4.begin->next = rot;
+ rot = $4.begin;
+ $4.begin = tmp;
+ }
+
AGGREGATOR_CFG->aggr_on_count = count;
- AGGREGATOR_CFG->aggr_on = f_linearize($4.begin, count);
+ AGGREGATOR_CFG->aggr_on = f_linearize(rot, count);
struct f_line *premerge = f_linearize($4.end, 0);
premerge->args = count;
log "bird.log" all;
+attribute int foo;
+
protocol device {}
protocol static {
- ipv6;
+ 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;
protocol static {
ipv6 {
import filter {
+ preference = 222;
+ foo = 666;
bgp_med = 1;
bgp_community = -empty-.add((65533,1)).add((65500,0xe));
accept;
protocol static {
ipv6 {
import filter {
+ preference = 222;
+ foo = 666;
bgp_med = 2;
bgp_community = -empty-.add((65533,2)).add((65500,0xd));
accept;
protocol static {
ipv6 {
import filter {
+ preference = 222;
+ foo = 666;
bgp_med = 4;
bgp_community = -empty-.add((65533,4)).add((65500,0xb));
accept;
protocol static {
ipv6 {
import filter {
+ preference = 222;
+ foo = 666;
bgp_med = 8;
bgp_community = -empty-.add((65533,8)).add((65500,0x7));
accept;