dss.tst revision 3f54fd611f536639ec30dd53c48e5ec1897cc7d9
# tests for the dss bgp method
TITLE + bgp
export TZ=EST5EDT
VIEW data
TEST 01 'cisco format'
EXEC -x bgp -c - $data/cisco.dat
OUTPUT - $'9941/9941'
EXEC -q -x bgp -c 'path=~"701$"' $data/cisco.dat
OUTPUT - $'148/9941'
EXEC -q -x bgp -c - $data/cisco.dat
OUTPUT - $'9941/9941'
EXEC -q -x bgp -c 'hop=="192.121.154.25"' $data/cisco.dat
OUTPUT - $'709/9941'
EXEC -q -x bgp -c 'hop!="192.121.154.25"' $data/cisco.dat
OUTPUT - $'9232/9941'
EXEC -q -x bgp - $data/cisco-split.dat
OUTPUT - $'Status codes: s suppressed, d damped, h history, * valid, > best, i internal, r rib-failure, S stale
Origin codes: i IGP, e EGP, ? incomplete
Network Next Hop Metric LocPrf Weight Path
*>i3.0.0.0/8 12.123.205.79 100 0 80 i
* i 12.123.205.79 100 0 80 i
*> 4.0.0.0/8 4.24.224.53 82 0 1 ?
*> 4.24.224.52/30 0.0.0.0 32768 i
*>i4.25.111.8/30 12.123.29.245 100 0 i
* i 12.123.29.245 100 0 i
*> 6.0.0.0/20 208.51.6.25 82 0 3549 i
*>i6.1.0.0/16 192.205.31.34 80 0 668 7170 1455 i
* i 192.205.31.34 80 0 668 7170 1455 i
* i152.158.208.196/30
12.123.29.235 10 100 0 2687 ?
*>i 12.123.29.235 10 100 0 2687 ?
* i152.158.208.244/30
12.123.29.235 10 100 0 2687 ?
*>i 12.123.29.235 10 100 0 2687 ?
*>i12.24.174.125/32 12.127.5.250 100 0 ?
*>i12.224.174.125/32
12.127.5.250 100 0 ?
*>i112.224.174.125/32
12.127.5.250 100 0 ?'
EXEC -q -x bgp -a 'hop=="12.127.5.250"' $data/cisco-split.dat
OUTPUT - $'*>i12.24.174.125/32 12.127.5.250 100 0 ?
*>i12.224.174.125/32
12.127.5.250 100 0 ?
*>i112.224.174.125/32
12.127.5.250 100 0 ?'
TEST 02 'mrt format'
EXEC -x bgp -c - $data/mrt.dat
OUTPUT - $'19649/19649'
EXEC -q -x bgp -c 'path=~"701$"' $data/mrt.dat
OUTPUT - $'446/19649'
ERROR -
EXEC -q -x bgp -c - $data/mrt.dat
OUTPUT - $'19649/19649'
EXEC -q -x bgp -c 'hop=="202.12.28.190"' $data/mrt.dat
OUTPUT - $'1159/19649'
EXEC -q -x bgp -c 'hop!="202.12.28.190"' $data/mrt.dat
OUTPUT - $'18490/19649'
EXEC -q -x bgp -p '%-16(prefix)s %(path)s' 'path=~"1 701$"' $data/mrt.dat
OUTPUT - $'198.153.142.0/24 4777,2497,1,701
198.71.67.0/24 4777,2497,1,701
198.71.67.0/24 9177,6730,1,701
147.81.0.0/16 4777,2497,1,701'
EXEC -q -x bgp -p '%-16(prefix)s %(path)s %(src_as)s %(src_as)d %(src_as)u' 'prefix=="147.81.0.0/16"&&path=~"4777 - 1"' $data/mrt.dat
OUTPUT - $'147.81.0.0/16 4777,2497,1,701 4777 4777 4777'
EXEC -x bgp -p '%(path)s' 'path=~"26788$"' $data/ripe-08.dat
OUTPUT - $'6066,701,6327,19752,{26788}
6066,6395,19752,26788
6066,6395,19752,{14456,26230,26788,26872,27168}
6066,701,6327,19752,{26788}
6066,6395,19752,26788
6066,6395,19752,{14456,26230,26788,26872,27168}
6066,6395,19752,26788
6066,6395,19752,26788
6066,6395,19752,26788
6066,6395,19752,26788
6066,6395,19752,26788
6066,701,6347,12059,26788,26788,26788,26788'
EXEC -x bgp -p '%(path)s' 'path=~"19752,26788$"' $data/ripe-08.dat
OUTPUT - $'6066,701,6327,19752,{26788}
6066,6395,19752,26788
6066,6395,19752,{14456,26230,26788,26872,27168}
6066,701,6327,19752,{26788}
6066,6395,19752,26788
6066,6395,19752,{14456,26230,26788,26872,27168}
6066,6395,19752,26788
6066,6395,19752,26788
6066,6395,19752,26788
6066,6395,19752,26788
6066,6395,19752,26788'
EXEC -x bgp -p '%(path)s' 'path=~"26872 27168$"' $data/ripe-08.dat
OUTPUT -
TEST 03 'value maps, route_btoa style'
EXEC -q -I$data -x dss:bgp-map -p $'TIME: %(time:%m/%d/%y %H:%M:%S)s\nTYPE: %(type)s\nFROM: %(src_addr)s %(src_as)s\nTO: %(dst_addr)s AS%(dst_as)d\nORIGIN: %(origin)s\nMULTI_EXIT_DISC: %(med)d\nAGGREGATOR: %(agg_addr)s AS%(agg_as)d\nASPATH: %(path:s | )s\nNEXT_HOP: %(hop)s\nCOMMUNITY: %(community:u )s\nANNOUNCE: %(prefix)s\n' 'path=~"1 701$"' $data/mrt.dat
OUTPUT - $'TIME: 08/16/01 10:41:19
TYPE: announce
FROM: 202.12.28.190 Asia Pacific Network Information Centre
TO: 193.0.0.1 AS12654
ORIGIN: IGP
MULTI_EXIT_DISC: 0
AGGREGATOR: 0.0.0.0 AS0
ASPATH: Asia Pacific Network Information Centre | IIJ | BBN Planet | UUNET Technologies, Inc.
NEXT_HOP: 202.12.28.190
COMMUNITY:
ANNOUNCE: 198.153.142.0/24
TIME: 08/16/01 10:43:16
TYPE: announce
FROM: 202.12.28.190 Asia Pacific Network Information Centre
TO: 193.0.0.1 AS12654
ORIGIN: IGP
MULTI_EXIT_DISC: 0
AGGREGATOR: 0.0.0.0 AS0
ASPATH: Asia Pacific Network Information Centre | IIJ | BBN Planet | UUNET Technologies, Inc.
NEXT_HOP: 202.12.28.190
COMMUNITY:
ANNOUNCE: 198.71.67.0/24
TIME: 08/16/01 10:43:56
TYPE: announce
FROM: 212.47.190.1 Nextra (Schweiz) AG
TO: 193.0.0.1 AS12654
ORIGIN: IGP
MULTI_EXIT_DISC: 0
AGGREGATOR: 0.0.0.0 AS0
ASPATH: Nextra (Schweiz) AG | sunrise (TDC Switzerland AG) | BBN Planet | UUNET Technologies, Inc.
NEXT_HOP: 212.47.190.1
COMMUNITY:
ANNOUNCE: 198.71.67.0/24
TIME: 08/16/01 10:55:58
TYPE: announce
FROM: 202.12.28.190 Asia Pacific Network Information Centre
TO: 193.0.0.1 AS12654
ORIGIN: IGP
MULTI_EXIT_DISC: 0
AGGREGATOR: 0.0.0.0 AS0
ASPATH: Asia Pacific Network Information Centre | IIJ | BBN Planet | UUNET Technologies, Inc.
NEXT_HOP: 202.12.28.190
COMMUNITY:
ANNOUNCE: 147.81.0.0/16
'
EXEC -q -I$data -x bgp-map -p $'TIME: %(time:%m/%d/%y %H:%M:%S)s\nTYPE: %(type)s\nFROM: %(src_addr)s %(src_as)s\nTO: %(dst_addr)s AS%(dst_as)d\nORIGIN: %(origin)s\nMULTI_EXIT_DISC: %(med)d\nAGGREGATOR: %(agg_addr)s AS%(agg_as)d\nASPATH: %(path:s | )s\nNEXT_HOP: %(hop)s\nCOMMUNITY: %(community:u )s\nANNOUNCE: %(prefix)s\n' 'path=~"1 701$"' $data/mrt.dat
TEST 04 'path regex syntax'
EXEC -q -x bgp 'path=~"[]"' $data/cisco.dat
OUTPUT - $'Status codes: s suppressed, d damped, h history, * valid, > best, i internal, r rib-failure, S stale
Origin codes: i IGP, e EGP, ? incomplete
Network Next Hop Metric LocPrf Weight Path'
ERROR - $'dss::scan: []<<<: invalid regular expression'
EXIT 1
EXEC -q -x bgp 'path=~"[!]"' $data/cisco.dat
ERROR - $'dss::scan: [!]<<<: invalid regular expression'
EXEC -q -x bgp 'path=~/[^]/' $data/cisco.dat
ERROR - $'dss::scan: [^]<<<: invalid regular expression'
TEST 05 'path regex matching'
EXEC -q -x bgp -p '%(path)s' 'path=~"^1755* 6461"' $data/cisco.dat
OUTPUT - $'1755,6461,3786,3786,3786
1755,6461,3786,3786,3786'
EXEC -q -x bgp -p '%(path)s' 'path=~"^1755+ 6461"' $data/cisco.dat
TEST 06 'expression syntax'
EXEC -q -x bgp -c "type=='A'" $data/mrt.dat
OUTPUT - $'16740/19649'
EXEC -q -x bgp -c "'A'==type" $data/mrt.dat
EXEC -q -x bgp "(type=='A')|{count}" $data/mrt.dat
EXEC -q -x bgp -c "type=='K'" $data/mrt.dat
OUTPUT - $'61/19649'
EXEC -q -x bgp "(type=='K')|{count}" $data/mrt.dat
EXEC -q -x bgp -c "type=='N'" $data/mrt.dat
OUTPUT - $'0/19649'
EXEC -q -x bgp "(type=='N')|{count}" $data/mrt.dat
EXEC -q -x bgp -c "type=='O'" $data/mrt.dat
EXEC -q -x bgp "(type=='O')|{count}" $data/mrt.dat
EXEC -q -x bgp -c "type=='S'" $data/mrt.dat
OUTPUT - $'36/19649'
EXEC -q -x bgp "(type=='S')|{count}" $data/mrt.dat
EXEC -q -x bgp -c "type=='T'" $data/mrt.dat
OUTPUT - $'0/19649'
EXEC -q -x bgp "(type=='T')|{count}" $data/mrt.dat
EXEC -q -x bgp -c "type=='W'" $data/mrt.dat
OUTPUT - $'2812/19649'
EXEC -q -x bgp "(type=='W')|{count}" $data/mrt.dat
EXEC -q -x bgp -c "type!='A'" $data/mrt.dat
OUTPUT - $'2909/19649'
EXEC -q -x bgp "(type!='A')|{count}" $data/mrt.dat
TEST 07 'ipma router dump summaries'
EXEC -x bgp -c - $data/ipma.dat
OUTPUT - $'6730/6730'
EXEC -x bgp -c - $data/ipma-txt.dat
OUTPUT - $'6730/6730'
EXEC -x bgp -c - $data/ipma-tab.dat
OUTPUT - $'1433/1433'
EXEC -x bgp -c - $data/ipma-lcl.dat
OUTPUT - $'219/219'
TEST 08 'misc fields'
EXEC -q -x bgp "(community_len>26)|{print '%(path_len)u|%(community_len)u|%(community)s'}" $data/mrt.dat
OUTPUT - $'4|28|1299:1000,1755:30,1755:1000,1755:2001,1755:2101,1755:2103,1755:2104,1755:2106,1755:2109,1755:2110,1755:2111,1833:1000,3301:1000,13129:3010
5|30|1299:50,1299:1000,1755:20,1755:1000,1755:2001,1755:2101,1755:2103,1755:2104,1755:2106,1755:2109,1755:2110,1755:2111,1833:50,1833:1000,13129:3010
5|30|1299:50,1299:1000,1755:30,1755:1000,1755:2001,1755:2101,1755:2103,1755:2104,1755:2106,1755:2109,1755:2110,1755:2111,1833:50,1833:1000,13129:3010'
EXEC -q -x bgp "<mrt.exp" $data/mrt.dat
INPUT mrt.exp $'(community_len>26)|{print "%(path_len)u|%(community_len)u|%(community)s"}'
EXEC -q -x bgp '(community_len>26)|{print "%(prefix:%2$d|%1$08x)s"}' $data/mrt.dat
OUTPUT - $'24|a0080a00
19|c3b68000
19|c3b68000'
TEST 09 'expression values'
EXEC -q -x bgp '{print "%(hop)08x %(hop)s"}' $data/cisco-split.dat
OUTPUT - $'0c7bcd4f 12.123.205.79
0c7bcd4f 12.123.205.79
0418e035 4.24.224.53
00000000 0.0.0.0
0c7b1df5 12.123.29.245
0c7b1df5 12.123.29.245
d0330619 208.51.6.25
c0cd1f22 192.205.31.34
c0cd1f22 192.205.31.34
0c7b1deb 12.123.29.235
0c7b1deb 12.123.29.235
0c7b1deb 12.123.29.235
0c7b1deb 12.123.29.235
0c7f05fa 12.127.5.250
0c7f05fa 12.127.5.250
0c7f05fa 12.127.5.250'
EXEC -x bgp '(prefix=="9.2.0.0/16")|{print "%(prefix)s %(path)s"}' $data/cisco.dat
OUTPUT - $'9.2.0.0/16 1755,701
9.2.0.0/16 3333,5378,6660,{701,11}
9.2.0.0/16 2914,{701,11,22}
9.2.0.0/16 1,{701,11,22,33}
9.2.0.0/16 3557,6461,{701,11,22,33,44}
9.2.0.0/16 3557,6461,{701,11,22,33,44,55}
9.2.0.0/16 2914,{701,11,22,33,44,55,66}
9.2.0.0/16 8517,9000,2548,{701,11,22,33,44,55,66,77}
9.2.0.0/16 10764,1,{701,11,22,33,44,55,66,77,88}
9.2.0.0/16 715,{701,11,22,33,44,55,66,77,88,99}
9.2.0.0/16 3561,701
9.2.0.0/16 2551,701
9.2.0.0/16 2828,701
9.2.0.0/16 7018,701
9.2.0.0/16 2497,701'
TEST 10 'string OP prefix and generic vs explicit prefix type'
EXEC -q -x bgp '(prefixv4 =~ "65.168.0.0/20")|{count}' $data/mrt.dat
OUTPUT - $'26/19649'
EXEC -q -x bgp '(prefix =~ "65.168.0.0/20")|{count}' $data/mrt.dat
EXEC -q -x bgp '("65.168.0.0/20" =~ prefixv4)|{count}' $data/mrt.dat
OUTPUT - $'123/19649'
####### EXEC -q -x bgp '("65.168.0.0/20" =~ prefix)|{count}' $data/mrt.dat
EXEC -q -x bgp '(prefix != "0.0.0.0/0" && "65.168.0.0/20" =~ prefixv4)|{count}' $data/mrt.dat
OUTPUT - $'26/19649'
####### EXEC -q -x bgp '(prefix != "0.0.0.0/0" && "65.168.0.0/20" =~ prefix)|{count}' $data/mrt.dat
TEST 11 'message group index and indicator'
EXEC -q -x bgp '(src_addr=="195.211.29.254")|{print "%4(message)d %(MESSAGE)d %(type)c %(src_addr)s"}' $data/mrt.dat
OUTPUT - $' 241 1 S 195.211.29.254
915 1 S 195.211.29.254
2179 1 S 195.211.29.254
2727 1 S 195.211.29.254
3801 1 S 195.211.29.254
4502 0 S 195.211.29.254
5532 0 S 195.211.29.254
6062 0 S 195.211.29.254
6932 0 S 195.211.29.254
7473 1 S 195.211.29.254'
TEST 12 "Tim Griffin's bgpdump format"
EXEC -q -x bgp "
(src_addr=='212.47.190.1'&&time<=997972890)?{}:{return};
(!PART&&(type=='A'||type=='W'))?
{print 'H|BGP4MP|%(time)d|%(src_addr)s|%(src_as)d|%(path:u )s|%(origin)s|%(hop)s|%(local)d|%(med)d|%(community:u )s|%(atomic)d|%(agg_addr)s|%(agg_as)d|%(originator)s|%(cluster:.)s'}:
{};
(type=='A'||type=='W')?
{print '%(type)c|%(prefix)s'}:
(type=='S')?
{print '%(type)c|%(src_addr)s|%(src_as)d|%(old_state)s|%(new_state)s'}:
{print '%(type)c|%(src_addr)s|%(src_as)d'}
" $data/mrt.dat
OUTPUT - $'H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 6506|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|204.238.232.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 15034 6429 6429 6429|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|199.186.25.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 9057 13126 9154 12829|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|80.80.128.0/20
A|213.137.33.0/24
A|213.137.34.0/23
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 5549 5549 5378 5551 5713 8094|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|143.160.4.0/22
A|143.160.8.0/22
A|143.160.16.0/22
A|143.160.24.0/22
A|143.160.28.0/22
A|143.160.32.0/22
A|143.160.64.0/22
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 6461 715|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|131.161.200.0/22
A|131.161.200.0/21
A|131.161.208.0/20
A|131.161.217.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 14788|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|63.89.29.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 7046|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|198.71.64.0/24
A|198.71.65.0/24
A|198.71.66.0/24
A|198.71.68.0/24
A|198.71.69.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 5669 8495|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|141.187.0.0/16
A|195.34.160.0/19
H|BGP4MP|997972878|212.47.190.1|9177|9177 6730 3561 701 10455|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|135.118.6.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 1239 3549 11042 8876 8831|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|62.108.64.0/22
A|62.108.68.0/22
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 1239 5676|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|156.70.0.0/16
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 1239 3549 11042 8876 15406|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|193.255.106.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|65.126.138.0/23
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 15290 2169|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|204.104.132.0/24
A|204.104.133.0/24
A|204.104.134.0/24
A|204.104.135.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 6730 3561 701|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|198.71.67.0/24
A|198.153.142.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 6730 3549 1239 568 721 5972 1778|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|159.133.0.0/16
A|164.65.0.0/16
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 1239 3549 11042 8876 20871|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|80.71.128.0/20
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 1239 3549 11042 8876 8456|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|193.140.192.0/20
A|193.140.208.0/21
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 209|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|209.211.0.0/22
H|BGP4MP|997972878|212.47.190.1|9177|9177 6730 701 1767|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|165.139.0.0/20
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 8297 17426|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|203.115.120.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 6429 19338 19338 19338 19632|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|64.76.152.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 9057 3356 19786 17443 17426|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|203.115.100.0/22
K|212.47.190.1|9177
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 1239 701|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|198.71.67.0/24
A|198.153.142.0/24
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 2874|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|160.8.0.0/16
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 1239 701 5713 8094|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|143.160.4.0/22
A|143.160.8.0/22
A|143.160.16.0/22
A|143.160.24.0/22
A|143.160.28.0/22
A|143.160.32.0/22
A|143.160.64.0/22
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 1299 12476 12476 12992|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|193.218.115.0/24
H|BGP4MP|997972890|212.47.190.1|9177|9177 6730 6453 1239 6461 715|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|131.161.200.0/22
A|131.161.200.0/21
A|131.161.208.0/20
A|131.161.217.0/24
H|BGP4MP|997972890|212.47.190.1|9177|9177 6730 5400 5727 7018 3549 11042 8876 20871|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|80.71.128.0/20
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 3561 3561 3967 6354|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|64.89.33.0/24
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 1299 12476 12476|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|212.76.32.0/19
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 5511 8866 8866 8795 9154 9154 9154 9154 9154 9154 9154 9154|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|213.137.32.0/24
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 5511 8866 8866 8795 8795 8795 8795 12829 12829 12829 12829 12829 12829 12829 12829 12829|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|80.80.128.0/20
A|213.137.33.0/24
A|213.137.34.0/23
H|BGP4MP|997972890|212.47.190.1|9177|9177 6730 5400 5727 7018 3549 11042 8876 8456|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|193.140.192.0/20
A|193.140.208.0/21
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 1299 12476 12476 15930|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|193.41.120.0/22
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 3561 3561 701 10455|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|135.118.6.0/24
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 1755 8246 20486|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|193.178.213.0/24
H|BGP4MP|997972890|212.47.190.1|9177|9177 8210 1755 286 209 13663 11836|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|216.231.135.0/24
H|BGP4MP|997972890|212.47.190.1|9177|9177 6730 5400 5727 7018 3549 11042 8876 8831|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|62.108.64.0/22
A|62.108.68.0/22
H|BGP4MP|997972890|212.47.190.1|9177|9177 6730 5400 5727 7018 3549 11042 8876 15406|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|193.255.106.0/24'
EXEC -q -x bgp "
(src_addr=='212.47.190.1'&&time<=997972890)?{}:{return};
(path=~'701')?{}:{return terminate};
(!PART&&(type=='A'||type=='W'))?
{print 'H|BGP4MP|%(time)d|%(src_addr)s|%(src_as)d|%(path:u )s|%(origin)s|%(hop)s|%(local)d|%(med)d|%(community:u )s|%(atomic)d|%(agg_addr)s|%(agg_as)d|%(originator)s|%(cluster:.)s'}:
{};
(type=='A'||type=='W')?
{print '%(type)c|%(prefix)s'}:
(type=='S')?
{print '%(type)c|%(src_addr)s|%(src_as)d|%(old_state)s|%(new_state)s'}:
{print '%(type)c|%(src_addr)s|%(src_as)d'}
" $data/mrt.dat
OUTPUT - $'H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 6506|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|204.238.232.0/24
H|BGP4MP|997972878|212.47.190.1|9177|9177 8210 701 15034 6429 6429 6429|105|212.47.190.1|0|0||0|0.0.0.0|0|0.0.0.0|
A|199.186.25.0/24'
EXIT 1
TEST 13 "ipv6 bgp rib and update data from http://archive.routeviews.org"
EXEC -I$data -x bgp '(prefixv6=~"2001:400::/26")|{print "%(type)c %-24(prefix)s %-24(hop)s %(path)s"}' updates.20080601.0000.bz2
OUTPUT - $'A 2001:400::/32 2001:918:0:8::1 3303,6939,293
A 2001:418::/32 2001:918:0:8::1 3303,2914
A 2001:418:3F6::/48 2001:918:0:8::1 3303,2914
A 2001:420::/32 2001:918:0:8::1 3303,6453,109
A 2001:420::/35 2001:918:0:8::1 3303,6453,109
A 2001:428::/32 2001:918:0:8::1 3303,6939,209
W 2001:418:3F6::/48 0.0.0.0
A 2001:418::/32 2001:918:0:8::1 3303,6175,2914
A 2001:400::/32 2001:918:0:8::1 3303,6175,293
A 2001:420::/32 2001:918:0:8::1 3303,6175,109
A 2001:420::/35 2001:918:0:8::1 3303,6175,109
A 2001:428::/32 2001:918:0:8::1 3303,6175,2497,209
A 2001:400::/32 2001:918:0:8::1 3303,6939,293
A 2001:418::/32 2001:918:0:8::1 3303,2914
A 2001:418:3F6::/48 2001:918:0:8::1 3303,2914
A 2001:420::/32 2001:918:0:8::1 3303,6453,109
A 2001:420::/35 2001:918:0:8::1 3303,6453,109
A 2001:428::/32 2001:918:0:8::1 3303,6939,209
W 2001:418:3F6::/48 0.0.0.0
A 2001:418::/32 2001:918:0:8::1 3303,6175,2914
A 2001:400::/32 2001:918:0:8::1 3303,6175,293
A 2001:420::/32 2001:918:0:8::1 3303,6175,109
A 2001:420::/35 2001:918:0:8::1 3303,6175,109
A 2001:428::/32 2001:918:0:8::1 3303,6175,2497,209
A 2001:400::/32 2001:918:0:8::1 3303,6939,293
A 2001:418::/32 2001:918:0:8::1 3303,2914
A 2001:418:3F6::/48 2001:918:0:8::1 3303,2914
A 2001:420::/32 2001:918:0:8::1 3303,6453,109
A 2001:420::/35 2001:918:0:8::1 3303,6453,109
A 2001:428::/32 2001:918:0:8::1 3303,6939,209
W 2001:418:3F6::/48 0.0.0.0
A 2001:418::/32 2001:918:0:8::1 3303,6175,2914
A 2001:400::/32 2001:918:0:8::1 3303,6175,293
A 2001:420::/32 2001:918:0:8::1 3303,6175,109
A 2001:420::/35 2001:918:0:8::1 3303,6175,109
A 2001:428::/32 2001:918:0:8::1 3303,6175,2497,209
A 2001:400::/32 2001:918:0:8::1 3303,6939,293
A 2001:418::/32 2001:918:0:8::1 3303,2914
A 2001:418:3F6::/48 2001:918:0:8::1 3303,2914
A 2001:420::/32 2001:918:0:8::1 3303,6453,109
A 2001:420::/35 2001:918:0:8::1 3303,6453,109
A 2001:428::/32 2001:918:0:8::1 3303,6939,209
W 2001:418:3F6::/48 0.0.0.0
A 2001:418::/32 2001:918:0:8::1 3303,6175,2914
A 2001:428::/32 2001:918:0:8::1 3303,6175,2497,209
A 2001:420::/32 2001:918:0:8::1 3303,6175,109
A 2001:420::/35 2001:918:0:8::1 3303,6175,109
A 2001:400::/32 2001:918:0:8::1 3303,6175,293'
EXEC -I$data -x bgp '(prefixv6=~"2001:700::/28")|{print "%(type)c %-24(prefix)s %-24(hop)s %(path)s"}' rib.20080601.0108.bz2
OUTPUT - $'T 2001:700::/32 0.0.0.0 18084,6175,2603,224
T 2001:700::/32 0.0.0.0 3303,6175,2603,224
T 2001:700::/32 0.0.0.0 3257,1299,2603,224
T 2001:700::/32 0.0.0.0 2497,1273,1299,2603,224
T 2001:700::/32 0.0.0.0 30071,41692,2603,224
T 2001:700::/32 0.0.0.0 30071,41692,2603,224
T 2001:700::/32 0.0.0.0 33437,6939,2603,224
T 2001:700::/32 0.0.0.0 30071,41692,2603,224
T 2001:700::/32 0.0.0.0 13237,2603,224
T 2001:700::/32 0.0.0.0 2914,2603,224
T 2001:700::/32 0.0.0.0 2914,2603,224
T 2001:700::/32 0.0.0.0 7781,6175,2603,224
T 2001:700::/32 0.0.0.0 6939,2603,224
T 2001:700::/32 0.0.0.0 7660,24287,24489,20965,2603,224
T 2001:700::/32 0.0.0.0 3292,2603,224
T 2001:700::/32 0.0.0.0 7018,3356,20965,2603,224
T 2001:708::/32 0.0.0.0 18084,6175,2603,1741
T 2001:708::/32 0.0.0.0 3303,6175,2603,1741
T 2001:708::/32 0.0.0.0 3257,1299,2603,1741
T 2001:708::/32 0.0.0.0 2497,1273,1299,2603,1741
T 2001:708::/32 0.0.0.0 30071,41692,2603,1741
T 2001:708::/32 0.0.0.0 30071,41692,2603,1741
T 2001:708::/32 0.0.0.0 33437,6939,2603,1741
T 2001:708::/32 0.0.0.0 30071,41692,2603,1741
T 2001:708::/32 0.0.0.0 13237,2603,1741
T 2001:708::/32 0.0.0.0 2914,2603,1741
T 2001:708::/32 0.0.0.0 2914,2603,1741
T 2001:708::/32 0.0.0.0 7781,6175,2603,1741
T 2001:708::/32 0.0.0.0 6939,2603,1741
T 2001:708::/32 0.0.0.0 7660,24287,24489,20965,2603,1741
T 2001:708::/32 0.0.0.0 7018,6175,2603,1741'
EXEC -I$data -x bgp '{print "%(prefix)s %(path)s"}' rib.20090316.2200.dat
OUTPUT - $'339:752F:14::/48 7781,6453,6175,1257,1880
339:752F:14::/48 33437,30071,1257,1880
339:752F:14::/48 7018,6175,1257,1880
2001::/32 7781,30071,12637
2001::/32 33437,2914,7019
2001::/32 2497,1273,8767,29259
2001::/32 18084,3549,12637
2001::/32 27664,12956,6762,1257
2001::/32 13237,8767,29259
2001::/32 6939,12859
2001::/32 209,2914,7019
2001::/32 2914,7019
2001::/32 7018,6453,39556
2001::/32 7660,22388,11537,59
2001::/32 209,6939,12859
2001::/32 2914,7019
2001::/32 209,2914,7019
2001:200::/32 7781,6453,2914,2500
2001:200::/32 33437,2914,2500
2001:200::/32 2497,2500
2001:200::/32 18084,6939,2500
2001:200::/32 27664,12956,6939,2500
2001:200::/32 6939,2500
2001:200::/32 13237,2914,2500
2001:200::/32 209,2914,2500
2001:200::/32 2914,2500
2001:200::/32 7018,2914,2500
2001:200::/32 7660,2500
2001:200::/32 209,6939,2500
2001:200::/32 2914,2500
2001:200::/32 209,2914,2500'
TEST 14 "generic anonymized parser exercises"
EXEC -x bgp '{print --all}' $data/a01.mrt
SAME OUTPUT $data/a01.out
EXEC -x bgp '{print --all}' $data/a02.mrt
SAME OUTPUT $data/a02.out
EXEC -x bgp '{print --all}' $data/a03.mrt
SAME OUTPUT $data/a03.out
EXEC -x bgp '{print --all}' $data/a04.mrt
SAME OUTPUT $data/a04.out
EXEC -x bgp '{print --all}' $data/a05.mrt
SAME OUTPUT $data/a05.out
EXEC -x bgp '{print --all}' $data/a06.mrt
SAME OUTPUT $data/a06.out
EXEC -x bgp '{print --all}' $data/a07.mrt
SAME OUTPUT $data/a07.out
EXEC -x bgp '{print --all}' $data/a08.mrt
SAME OUTPUT $data/a08.out
TEST 15 "feature specific parser exercises"
EXEC -x bgp '(path =~ "26677 $")|{print "%(typeof(path))s %(sizeof(path))u %(path)s"}' $data/rib.20080601.0108.bz2
OUTPUT - $'as16path_t 7 18084,2500,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 9 3303,6175,2497,2500,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 8 3257,2497,2500,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 7 2497,2500,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 9 30071,6175,2497,2500,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 9 30071,6175,2497,2500,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 8 33437,6939,2516,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 9 30071,6175,2497,2500,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 6 2914,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 6 2914,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 9 7781,6175,2497,2500,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 7 6939,2516,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 5 7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 7 3292,2914,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}
as16path_t 10 7018,30071,6175,2497,2500,7660,22388,11537,6509,{271,2884,7860,8111,15296,26677}'
EXEC -x bgp '{print "%(typeof(path))s %(sizeof(path))u %(path)s"}' $data/f01.mrt
SAME OUTPUT $data/f01.out