16f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj#! /bin/sh 24b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev# Copyright (c) 2014-2016 Oracle and/or its affiliates. All Rights Reserved. 327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# Copyright (c) International Business Machines Corp., 2001 48c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj# 527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# This program is free software; you can redistribute it and/or 627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# modify it under the terms of the GNU General Public License as 727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# published by the Free Software Foundation; either version 2 of 827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# the License, or (at your option) any later version. 98c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj# 1027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# This program is distributed in the hope that it would be useful, 1127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# but WITHOUT ANY WARRANTY; without even the implied warranty of 1227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# GNU General Public License for more details. 148c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj# 1527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# You should have received a copy of the GNU General Public License 1627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# along with this program; if not, write the Free Software Foundation, 1727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 188c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj# 1927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# Description: Test basic functionality of ip command in route2 package 208c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj# 2127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev# Author: Manoj Iyer, manjo@mail.utexas.edu 228c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 2327a2b07927037cfd105c06232c32debc4cf80ef5Alexey KodanevTST_CLEANUP=cleanup 2427a2b07927037cfd105c06232c32debc4cf80ef5Alexey KodanevTST_TOTAL=6 2527a2b07927037cfd105c06232c32debc4cf80ef5Alexey KodanevTCID="ip_tests" 2627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 2727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev. test_net.sh 288c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 294b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanevrm_dummy= 304b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev 318c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanojinit() 328c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj{ 3327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "inititalizing tests" 3427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_require_root 3527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_tmpdir 364b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev tst_check_cmds cat awk ip diff 378c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 384b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev iface=ltp_dummy 394b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev lsmod | grep -q dummy || rm_dummy=1 408c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 414b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ROD ip li add $iface type dummy 428c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 434b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip4_addr=${IPV4_NET16_UNUSED}.6.6 444b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ROD ip a add ${ip4_addr}/24 dev $iface 458c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 4627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev cat > tst_ip02.exp <<-EOF 477062fc4217b0a9f7d4a3efa82994d4b0dacdd39eiyermanoj 1: 487062fc4217b0a9f7d4a3efa82994d4b0dacdd39eiyermanoj link/loopback 497062fc4217b0a9f7d4a3efa82994d4b0dacdd39eiyermanoj 2: 507062fc4217b0a9f7d4a3efa82994d4b0dacdd39eiyermanoj link/ether 517062fc4217b0a9f7d4a3efa82994d4b0dacdd39eiyermanoj 3: 527062fc4217b0a9f7d4a3efa82994d4b0dacdd39eiyermanoj link/ether 537062fc4217b0a9f7d4a3efa82994d4b0dacdd39eiyermanoj EOF 547062fc4217b0a9f7d4a3efa82994d4b0dacdd39eiyermanoj 5527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 5627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_brkm TBROK "can't create expected output for test02" 5727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 588c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj} 598c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 608c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanojcleanup() 618c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj{ 6227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_rmdir 638c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 644b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev [ -n "$iface" -a -d /sys/class/net/$iface ] && ip li del $iface 654b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev 664b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev [ "$rm_dummy" ] && modprobe -r dummy 678c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 6827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev # test #5 694b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip route show | grep $ip4_addr && ip route del $ip4_addr 7027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev} 718c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 728c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanojtest01() 738c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj{ 7427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "test 'ip link set' command" 754b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev tst_resm TINFO "changing mtu size of $iface device" 7627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 7727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev MTUSZ_BAK=$(cat /sys/class/net/${iface}/mtu) 784b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip link set ${iface} mtu 1281 7927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 8027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "ip command failed" 8127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 8227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 8327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 8427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev MTUSZ=$(cat /sys/class/net/${iface}/mtu) 854b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev if [ $MTUSZ -eq 1281 ]; then 8627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TPASS "successfully changed mtu size" 874b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip link set $iface mtu $MTUSZ_BAK 888c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj else 894b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev tst_resm TFAIL "MTU value set to $MTUSZ, but expected 1281" 908c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj fi 918c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj} 928c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 936b2e0cb89613d6b5d303b62b632538fe2f4338eaiyermanojtest02() 948c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj{ 9527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "test 'ip link show' command (list device attributes)" 968c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 974b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip link show $iface | grep $iface > /dev/null 9827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 994b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev tst_resm TFAIL "'ip link show $iface' command failed" 10027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 10127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 10227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 1034b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev tst_resm TPASS "$iface correctly listed" 10427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev} 1058c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 10627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanevtest03() 10727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev{ 1084b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev tst_resm TINFO "test 'ip addr' command with loopback dev" 10927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "add a new protocol address to the device" 11081db222e9bca1f0b2756fea73670b9c1f48caa11iyermanoj 11127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev ip addr add 127.6.6.6/24 dev lo 11227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 11327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "'ip addr add' command failed" 11427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 11581db222e9bca1f0b2756fea73670b9c1f48caa11iyermanoj fi 11681db222e9bca1f0b2756fea73670b9c1f48caa11iyermanoj 11727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "show protocol address" 11827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev ip addr show dev lo | grep 127.6.6.6 > /dev/null 11927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 12027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "'ip addr show' command failed" 12127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 12281db222e9bca1f0b2756fea73670b9c1f48caa11iyermanoj fi 12381db222e9bca1f0b2756fea73670b9c1f48caa11iyermanoj 12427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "delete protocol address" 12527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev ip addr del 127.6.6.6/24 dev lo 12627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 12727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "'ip addr del' command failed" 12827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 12927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 13081db222e9bca1f0b2756fea73670b9c1f48caa11iyermanoj 13127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev ip addr show dev lo | grep 127.6.6.6 > /dev/null 13227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -eq 0 ]; then 13327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "ip addr del command failed" 13427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 13527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 13681db222e9bca1f0b2756fea73670b9c1f48caa11iyermanoj 13727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TPASS "'ip addr' command successfully tested" 13827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev} 13927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 14027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanevtest04() 14181db222e9bca1f0b2756fea73670b9c1f48caa11iyermanoj{ 14227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "test 'ip neigh' command" 14327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "add a new neighbor (or replace existed)" 1444b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip neigh replace 127.6.6.6 lladdr 00:00:00:00:00:00 dev lo nud reachable 14527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 14627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "'ip neigh replace' command failed" 14727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 1488c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj fi 1498c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 15027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "show all neighbor entries in arp tables" 15127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev cat > tst_ip.exp <<-EOF 1524b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev127.6.6.6 dev lo lladdr 00:00:00:00:00:00 REACHABLE 15327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev EOF 154ced11ae690930c79034371e3721f31b37641af4eiyermanoj 1554b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip neigh show 127.6.6.6 | head -n1 > tst_ip.out 2>&1 15627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 15727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "'ip neigh show' command failed" 15827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 15927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 160ced11ae690930c79034371e3721f31b37641af4eiyermanoj 16127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev diff -iwB tst_ip.out tst_ip.exp 16227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 16327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "expected output differs from actual output" 16427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 165ced11ae690930c79034371e3721f31b37641af4eiyermanoj fi 166ced11ae690930c79034371e3721f31b37641af4eiyermanoj 16727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "delete neighbor from the arp table" 1686f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj 1694b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip neigh del 127.6.6.6 dev lo 17027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 17127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "'ip neigh del' command failed" 17227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 17327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 17427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 1754b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip neigh show | grep 127.6.6.6 | grep -v ' FAILED$' > /dev/null 17627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -eq 0 ]; then 1774b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev tst_resm TFAIL "127.6.6.6 still listed in arp" 17827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 17927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 18027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 18127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TPASS "'ip neigh' command successfully tested" 18227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev} 1836f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj 1846f4f5a7274ff018b26659887a86f0e1280b87b3diyermanojtest05() 1856f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj{ 18627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "test 'ip route add/del' commands" 18727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 1884b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ROD ip route add $ip4_addr via 127.0.0.1 1896f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj 19027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "show all route entries in route table" 1916f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj 19227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev # create expected output file. 19327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev cat > tst_ip.exp <<-EOF 1944b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev$ip4_addr via 127.0.0.1 dev lo 19527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev EOF 19637550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 1974b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip route show | grep "$ip4_addr via 127.0.0.1 dev lo" > tst_ip.out 2>&1 19827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 19927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "'ip route show' command failed" 20027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 20127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 2026f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj 20327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev diff -iwB tst_ip.out tst_ip.exp 20427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 20527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "'ip route show' did not list new route" 20627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 2076f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj fi 20837550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 20927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "delete route from the route table" 21027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 2114b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ROD ip route del $ip4_addr via 127.0.0.1 2126f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj 21327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev ip route show | grep 127.0.0.1 > /dev/null 21427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -eq 0 ]; then 21527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "route not deleted" 21627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 21727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 2186f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj 21927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TPASS "'ip route' command successfully tested" 22027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev} 2216f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj 2226f4f5a7274ff018b26659887a86f0e1280b87b3diyermanojtest06() 2236f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj{ 22427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "test 'ip maddr add/del' commands" 22527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "adding a new multicast addr" 22627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 2274b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip maddr add 66:66:00:00:00:66 dev $iface 22827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 22927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "ip maddr add command failed" 23027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 23127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 23227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 23327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "show all multicast addr entries" 2346f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj 23527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev cat > tst_ip.exp <<-EOF 2366f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj link 66:66:00:00:00:66 static 23727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev EOF 23827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 23927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev ip maddr show | grep "66:66:00:00:00:66" > tst_ip.out 2>&1 24027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 24127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "'ip maddr show' command failed" 24227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 24327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 24427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 24527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev diff -iwB tst_ip.out tst_ip.exp 24627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 2474b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev tst_resm TFAIL "multicast addr not added to $iface" 24827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 24927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 25027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 25127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TINFO "delete multicast address" 25227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 2534b1985206d676ca5ac769302fe4e7c33cfe4e535Alexey Kodanev ip maddr del 66:66:00:00:00:66 dev $iface 25427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -ne 0 ]; then 25527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "'ip maddr del' command failed" 25627a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 25727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev fi 25827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 25927a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev ip maddr show | grep "66:66:00:00:00:66" > /dev/null 26027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev if [ $? -eq 0 ]; then 26127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TFAIL "66:66:00:00:00:66 is not deleted" 26227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev return 2636f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj fi 26427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev 26527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanev tst_resm TPASS "'ip maddr' command successfully tested" 2666f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj} 2676f4f5a7274ff018b26659887a86f0e1280b87b3diyermanoj 26827a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanevinit 2698c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 27027a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanevtest01 27127a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanevtest02 27227a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanevtest03 27327a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanevtest04 27427a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanevtest05 27527a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanevtest06 2768c729e290df4585aaaf404a79c0b76d9a1d6e150iyermanoj 27727a2b07927037cfd105c06232c32debc4cf80ef5Alexey Kodanevtst_exit 278