# 使用的是无线trace的旧格式
BEGIN {
pkt_route_sum=0;
pkt_cbr_sum=0;
}
{
action = $1;
pkttype = $7;
pktsize = $8;
}
# 考虑到aodv和dsr中中间节点转发的rrep,所以加入了f参数
{ if ( action == "s" || action == "f" ) {
if ( pkttype == "AODV" || pkttype == "DSR" || pkttype == "message") {
pkt_route_sum += pktsize ;
}
}
}
# 我只计算了正确接收到的数据包,被丢弃的没有算作有效数据
$0 ~/^r.* AGT.* cbr/ {
pkt_cbr_sum += pktsize ;
}
END {
# 单位为bytes
printf "DSDV cbr_bytes:%d, route_bytes:%d, routecosts:%.4f /n", pkt_cbr_sum, pkt_route_sum, (pkt_route_sum/pkt_cbr_sum);
}