1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #! /bin/sh
- # Copyright (c) 2015-2017 Oracle and/or its affiliates. All Rights Reserved.
- # Copyright (c) International Business Machines Corp., 2000
- #
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public License as
- # published by the Free Software Foundation; either version 2 of
- # the License, or (at your option) any later version.
- #
- # This program is distributed in the hope that it would be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write the Free Software Foundation,
- # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- #
- # TEST DESCRIPTION :
- # To determine the stability of the IP Multicast product
- # and to verify the accuracy and usability of IP Multicast
- # related publications associated with changes and/or
- # additions to command level interfaces for this implementations
- # of IP Multicast.
- #
- # Robbie Williamson (robbiew@us.ibm.com)
- TCID=mc_cmds
- TST_TOTAL=1
- TST_USE_LEGACY_API=1
- . tst_net.sh
- knob="net.ipv4.icmp_echo_ignore_broadcasts"
- knob_changed=
- setup()
- {
- val=$(sysctl -n $knob)
- if [ "$val" -ne 0 ]; then
- ROD sysctl -q ${knob}=0
- knob_changed=1
- fi
- tst_tmpdir
- }
- do_test()
- {
- local ip_fixed_version=170220
- ip addr show $(tst_iface) | grep -q 'MULTICAST' || \
- tst_brkm TFAIL "Multicast not listed for $(tst_iface)"
- ip maddr show $(tst_iface) | grep -q '224.0.0.1'
- if [ $? -ne 0 ]; then
- [ `ip -V | cut -d's' -f3` -lt $ip_fixed_version ] && \
- tst_resm TINFO "'ip maddr show $(tst_iface)' failed"\
- "(caused by old ip version, fixed in"\
- "$ip_fixed_version)" || \
- tst_resm TWARN "'ip maddr show $(tst_iface)' failed"
- tst_resm TINFO "parsing 'ip maddr show' command"
- ip maddr show | sed -ne "/\s$(tst_iface)/,/^[0-9]/p" | \
- grep -q 224.0.0.1 || \
- tst_brkm TFAIL "$(tst_iface) not joined 224.0.0.1"
- fi
- tst_resm TINFO "Ping all-host-groups over specified interface"
- ping -c2 -I $(tst_ipaddr) 224.0.0.1 > ping_out.log
- if [ $? -ne 0 ]; then
- tst_resm TINFO "Trying to ping with $(tst_iface)"\
- "with the -I option instead of IP address"
- ping -c2 -I $(tst_iface) 224.0.0.1 > ping_out.log || \
- tst_brkm TFAIL "No response from MC hosts to ping -c2 "\
- "-I $(tst_ipaddr) 224.0.0.1"
- fi
- grep -q $(tst_ipaddr) ping_out.log
- if [ $? -ne 0 ]; then
- cat ping_out.log
- tst_brkm TFAIL "Local host did not respond to ping -c2 "\
- "-I $(tst_iface) 224.0.0.1"
- fi
- tst_resm TPASS "Test Successful"
- tst_exit
- }
- do_cleanup()
- {
- [ "$knob_changed" ] && sysctl -q ${knob}=1
- tst_rmdir
- }
- setup
- TST_CLEANUP=do_cleanup
- do_test
|