awk: hping: вывести разницу между icmp исходить / получать
У меня есть следующий вывод изhping
на OpenBSD:
# hping --icmp-ts www.openbsd.org
HPING www.openbsd.org (re0 129.128.5.194): icmp mode set, 28 headers + 0 data bytes
len=46 ip=129.128.5.194 ttl=237 id=23807 icmp_seq=0 rtt=155.3 ms
ICMP timestamp: Originate=22085077 Receive=22085171 Transmit=22085171
ICMP timestamp RTT tsrtt=156
len=46 ip=129.128.5.194 ttl=237 id=4150 icmp_seq=1 rtt=154.8 ms
ICMP timestamp: Originate=22086078 Receive=22086171 Transmit=22086171
ICMP timestamp RTT tsrtt=155
^C
--- www.openbsd.org hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 154.8/155.0/155.3 ms
Мне нужна дополнительная арифметикадля устранения неполадок асимметричных маршрутов, как доступно впатч в каком-то багрепорте, но я не хочу перекомпилировать программное обеспечение.
TL; DR, два новых поля рассчитываются какReceive − Originate
а такжеOriginate + tsrtt − Transmit
, чтобы получить что-то вроде следующего (без необходимости занимать 4 строки).
len=46 ip=129.128.5.194 ttl=237 id=23807 icmp_seq=0 rtt=155.3 ms
ICMP timestamp: Originate=22085077 Receive=22085171 Transmit=22085171
ICMP timestamp RTT tsrtt=156 src->dst=94 dst->src=62
Как мне сделать это сawk
? (Я в порядке с любым другим * BSD инструментом тоже.)