Merge remote-tracking branch 'origin/master' into topic/johanna/netcontrol-improvements

This commit is contained in:
Johanna Amann 2016-03-24 15:07:38 -07:00
commit ee4abb5db2
23 changed files with 382 additions and 35 deletions

View file

@ -0,0 +1,20 @@
{
10.0.0.0/8,
10.2.0.2/31,
10.2.0.0/16
}
{
[10.0.0.0/8] = a,
[10.2.0.2/31] = c,
[10.2.0.0/16] = b
}
{
[10.0.0.0/8] = a,
[10.3.0.0/16] = e
}
{
}
{
}

View file

@ -0,0 +1 @@
error in /Users/johanna/bro/master/testing/btest/.tmp/language.expire_multiple-2/expire_multiple.test, line 2: set/table can only have one of &read_expire, &write_expire, &create_expire (&write_expire=1.0 sec, &create_expire=3.0 secs)

View file

@ -0,0 +1 @@
error in /Users/johanna/bro/master/testing/btest/.tmp/language.expire_multiple-3/expire_multiple.test, line 2: set/table can only have one of &read_expire, &write_expire, &create_expire (&write_expire=1.0 sec, &read_expire=3.0 secs)

View file

@ -0,0 +1 @@
error in /Users/johanna/bro/master/testing/btest/.tmp/language.expire_multiple/expire_multiple.test, line 4: set/table can only have one of &read_expire, &write_expire, &create_expire (&create_expire=1.0 sec, &read_expire=1.0 sec)

View file

@ -0,0 +1,27 @@
All:
0 --> zero
2 --> two
4 --> four
1 --> one
3 --> three
192.168.3.0/24 --> three
192.168.0.0/16 --> zero
192.168.4.0/24 --> four
192.168.1.0/24 --> one
192.168.2.0/24 --> two
Time: 0 secs
Accessed table nums: two; three
Accessed table nets: two; three, zero
Time: 7.0 secs 518.0 msecs 828.0 usecs
Expired Num: 0 --> zero at 8.0 secs 835.0 msecs 30.0 usecs
Expired Num: 4 --> four at 8.0 secs 835.0 msecs 30.0 usecs
Expired Num: 1 --> one at 8.0 secs 835.0 msecs 30.0 usecs
Expired Subnet: 192.168.4.0/24 --> four at 8.0 secs 835.0 msecs 30.0 usecs
Expired Subnet: 192.168.1.0/24 --> one at 8.0 secs 835.0 msecs 30.0 usecs
Expired Num: 2 --> two at 15.0 secs 150.0 msecs 681.0 usecs
Expired Num: 3 --> three at 15.0 secs 150.0 msecs 681.0 usecs
Expired Subnet: 192.168.3.0/24 --> three at 15.0 secs 150.0 msecs 681.0 usecs
Expired Subnet: 192.168.0.0/16 --> zero at 15.0 secs 150.0 msecs 681.0 usecs
Expired Subnet: 192.168.2.0/24 --> two at 15.0 secs 150.0 msecs 681.0 usecs

View file

@ -0,0 +1,49 @@
# @TEST-EXEC: bro -b %INPUT >output
# @TEST-EXEC: btest-diff output
global testa: set[subnet] = {
10.0.0.0/8,
10.2.0.0/16,
10.2.0.2/31,
10.1.0.0/16,
10.3.0.0/16,
5.0.0.0/8,
5.5.0.0/25,
5.2.0.0/32,
7.2.0.0/32,
[2607:f8b0:4008:807::200e]/64,
[2607:f8b0:4007:807::200e]/64,
[2607:f8b0:4007:807::200e]/128
};
global testb: table[subnet] of string = {
[10.0.0.0/8] = "a",
[10.2.0.0/16] = "b",
[10.2.0.2/31] = "c",
[10.1.0.0/16] = "d",
[10.3.0.0/16] = "e",
[5.0.0.0/8] = "f",
[5.5.0.0/25] = "g",
[5.2.0.0/32] = "h",
[7.2.0.0/32] = "i",
[[2607:f8b0:4008:807::200e]/64] = "j",
[[2607:f8b0:4007:807::200e]/64] = "k",
[[2607:f8b0:4007:807::200e]/128] = "l"
};
event bro_init()
{
local c = filter_subnet_table(10.2.0.2/32, testa);
print c;
c = filter_subnet_table(10.2.0.2/32, testb);
print c;
c = filter_subnet_table(10.3.0.2/32, testb);
print c;
c = filter_subnet_table(1.0.0.0/8, testb);
print c;
local unspecified: table[subnet] of string = table();
c = filter_subnet_table(10.2.0.2/32, unspecified);
print c;
}

View file

@ -0,0 +1,12 @@
# @TEST-EXEC-FAIL: bro -b %INPUT >output 2>&1
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff output
global s: set[string] &create_expire=1secs &read_expire=1secs;
# @TEST-START-NEXT:
global s: set[string] &write_expire=1secs &create_expire=3secs;
# @TEST-START-NEXT:
global s: set[string] &write_expire=1secs &read_expire=3secs;

View file

@ -0,0 +1,96 @@
# @TEST-EXEC: bro -C -r $TRACES/var-services-std-ports.trace %INPUT >output
# @TEST-EXEC: btest-diff output
redef table_expire_interval = 1sec;
global start_time: time;
function time_past(): interval
{
return network_time() - start_time;
}
function expire_nums(tbl: table[count] of string, idx: count): interval
{
print fmt("Expired Num: %s --> %s at %s", idx, tbl[idx], time_past());
return 0sec;
}
function expire_nets(tbl: table[subnet] of string, idx: subnet): interval
{
print fmt("Expired Subnet: %s --> %s at %s", idx, tbl[idx], time_past());
return 0sec;
}
global nums: table[count] of string &read_expire=8sec &expire_func=expire_nums;
global nets: table[subnet] of string &read_expire=8sec &expire_func=expire_nets;
global step: count;
### Test ###
function execute_test()
{
local num_a = nums[2];
local num_b = nums[3];
local net_a = nets[192.168.2.0/24];
#local net_b = nets[192.168.3.0/24];
local nets_b = "";
local nets_b_tbl: table[subnet] of string;
nets_b_tbl = filter_subnet_table(192.168.3.0/24, nets);
for ( idx in nets_b_tbl )
nets_b += cat(", ", nets_b_tbl[idx]);
nets_b = nets_b[2:];
# writing resets expire as expected
#nets[192.168.2.0/24] = "accessed";
#nets[192.168.3.0/24] = "accessed";
print fmt("Accessed table nums: %s; %s", num_a, num_b);
print fmt("Accessed table nets: %s; %s", net_a, nets_b);
print fmt("Time: %s", time_past());
print "";
}
### Events ###
event bro_init()
{
step = 0;
nums[0] = "zero";
nums[1] = "one";
nums[2] = "two";
nums[3] = "three";
nums[4] = "four";
nets[192.168.0.0/16] = "zero";
nets[192.168.1.0/24] = "one";
nets[192.168.2.0/24] = "two";
nets[192.168.3.0/24] = "three";
nets[192.168.4.0/24] = "four";
}
event new_packet(c: connection, p: pkt_hdr)
{
if ( step == 0 )
{
++step;
start_time = network_time();
print "All:";
for ( num in nums )
print fmt("%s --> %s", num, nums[num]);
for ( net in nets )
print fmt("%s --> %s", net, nets[net]);
print fmt("Time: %s", time_past());
print "";
}
if ( (time_past() > 7sec) && (step == 1) )
{
++step;
execute_test();
}
}