0001
0002
0003
0004
0005
0006 set -e
0007
0008 readonly mtu=1500
0009 readonly iphlen=20
0010 readonly udphlen=8
0011
0012 readonly vnet_hlen=10
0013 readonly eth_hlen=14
0014
0015 readonly mss="$((${mtu} - ${iphlen} - ${udphlen}))"
0016 readonly mss_exceeds="$((${mss} + 1))"
0017
0018 readonly max_mtu=65535
0019 readonly max_mss="$((${max_mtu} - ${iphlen} - ${udphlen}))"
0020 readonly max_mss_exceeds="$((${max_mss} + 1))"
0021
0022
0023
0024 echo "dgram"
0025 ./in_netns.sh ./psock_snd -d
0026
0027 echo "dgram bind"
0028 ./in_netns.sh ./psock_snd -d -b
0029
0030 echo "raw"
0031 ./in_netns.sh ./psock_snd
0032
0033 echo "raw bind"
0034 ./in_netns.sh ./psock_snd -b
0035
0036 echo "raw qdisc bypass"
0037 ./in_netns.sh ./psock_snd -q
0038
0039 echo "raw vlan"
0040 ./in_netns.sh ./psock_snd -V
0041
0042 echo "raw vnet hdr"
0043 ./in_netns.sh ./psock_snd -v
0044
0045 echo "raw csum_off"
0046 ./in_netns.sh ./psock_snd -v -c
0047
0048 echo "raw csum_off with bad offset (expected to fail)"
0049 (! ./in_netns.sh ./psock_snd -v -c -C)
0050
0051
0052
0053
0054 echo "raw min size"
0055 ./in_netns.sh ./psock_snd -l 0
0056
0057 echo "raw mtu size"
0058 ./in_netns.sh ./psock_snd -l "${mss}"
0059
0060 echo "raw mtu size + 1 (expected to fail)"
0061 (! ./in_netns.sh ./psock_snd -l "${mss_exceeds}")
0062
0063
0064
0065
0066
0067
0068 echo "raw vlan mtu size + 1 (expected to fail)"
0069 (! ./in_netns.sh ./psock_snd -V -l "${mss_exceeds}")
0070
0071 echo "dgram mtu size"
0072 ./in_netns.sh ./psock_snd -d -l "${mss}"
0073
0074 echo "dgram mtu size + 1 (expected to fail)"
0075 (! ./in_netns.sh ./psock_snd -d -l "${mss_exceeds}")
0076
0077 echo "raw truncate hlen (expected to fail: does not arrive)"
0078 (! ./in_netns.sh ./psock_snd -t "$((${vnet_hlen} + ${eth_hlen}))")
0079
0080 echo "raw truncate hlen - 1 (expected to fail: EINVAL)"
0081 (! ./in_netns.sh ./psock_snd -t "$((${vnet_hlen} + ${eth_hlen} - 1))")
0082
0083
0084
0085
0086 echo "raw gso min size"
0087 ./in_netns.sh ./psock_snd -v -c -g -l "${mss_exceeds}"
0088
0089 echo "raw gso max size"
0090 ./in_netns.sh ./psock_snd -v -c -g -l "${max_mss}"
0091
0092 echo "raw gso max size + 1 (expected to fail)"
0093 (! ./in_netns.sh ./psock_snd -v -c -g -l "${max_mss_exceeds}")
0094
0095 echo "OK. All tests passed"