[Bro] &expire_func/&create_expire question
christian at whoop.org
Fri Nov 17 17:39:45 PST 2006
On Fri, 2006-11-17 at 16:43 -0800, Vern Paxson wrote:
> > Real time is out, since 1s hasn't yet passed. But network time has
> > advanced 91s before I see the callback!?
> Timer expiration is driven off of packet arrivals. Is there a lengthy
> lull in arriving packets that causes the 91 second delay?
Uh-oh. I've discovered that packets in that trace were not in
chronological order, sorry. So I switched to one that covers ~3 minutes,
definitely sorted and without substantial gaps, and now the delay is at
60s, when a burst of expirations is triggered.
I've uploaded the stdout output I get with that trace and the below code
at http://www.cl.cam.ac.uk/~cpk25/bro/expiration-log.txt.gz .
function expire(t: table[count] of count, idx:count): interval
print fmt("Expiring %d at %s", idx, network_time());
return 0 sec;
global state: table[count] of count &create_expire=1sec &expire_func=expire;
global idx: count = 0;
event new_packet(c: connection, p: pkt_hdr)
state[idx] = idx;
print fmt("%s", network_time());
More information about the Bro