/bin/sh <<'TB_TSO_TEST'
case "$(/sbin/ifconfig bridge0)" in
*'inet 192.168.77.2 '*) ;;
*) echo 'Stop: run this on M4.'; exit 1 ;;
esac
/sbin/ifconfig bridge0 | sed -n '1,3p'
tb_old=$(/usr/sbin/sysctl -n net.inet.tcp.tso) || exit 1
[ "$tb_old" = 1 ] || { echo "Stop: TCP TSO is already $tb_old; no change made."; exit 1; }
for tb_target in 10.12.165.142 172.21.0.1; do
tb_if=$(/sbin/route -n get "$tb_target" | awk '/interface:/{print $2}')
[ "$tb_if" = utun10 ] || { echo "Stop: $tb_target uses $tb_if."; exit 1; }
done
tb_connection() {
netstat -an -p tcp | awk '/194[.]186[.]63[.]/ && /ESTABLISHED/ {print $4, $5}'
}
tb_peer=$(tb_connection)
[ -n "$tb_peer" ] || { echo 'Stop: no corporate TCP connection.'; exit 1; }
sudo -v || exit 1
tb_restore() {
trap - EXIT
if [ "$(/usr/sbin/sysctl -n net.inet.tcp.tso)" = "$tb_old" ]; then
echo 'TCP TSO remains at its original value.'
elif sudo -n /usr/sbin/sysctl -w "net.inet.tcp.tso=$tb_old" &&
[ "$(/usr/sbin/sysctl -n net.inet.tcp.tso)" = "$tb_old" ]; then
echo "Verified: TCP TSO restored to $tb_old."
else
echo "Restore failed. Run: sudo /usr/sbin/sysctl -w net.inet.tcp.tso=$tb_old"
fi
}
trap tb_restore EXIT
trap 'exit 130' HUP INT TERM
echo 'BEFORE:'
date -u
netstat -an -p tcp | awk '/194[.]186[.]63[.]/ && /ESTABLISHED/ {print}'
sudo -n /usr/sbin/sysctl -w net.inet.tcp.tso=0 || exit 1
[ "$(/usr/sbin/sysctl -n net.inet.tcp.tso)" = 0 ] || exit 1
sleep 10
echo 'TEST WITH TCP TSO DISABLED:'
date -u
netstat -an -p tcp | awk '/194[.]186[.]63[.]/ && /ESTABLISHED/ {print}'
/usr/bin/nc -4 -n -z -v -G 6 -w 6 10.12.165.142 8443
/usr/bin/dig @172.21.0.1 jss.corp.mail.ru A +time=4 +tries=1 +notcp +ignore +noall +comments +answer
netstat -an -p tcp | awk '/194[.]186[.]63[.]/ && /ESTABLISHED/ {print}'
if [ "$(tb_connection)" = "$tb_peer" ]; then
echo 'Corporate TCP connection unchanged.'
else
echo 'Corporate connection changed; comparison is inconclusive.'
fi
echo 'Restoring original TCP TSO value now.'
TB_TSO_TEST