aboutsummaryrefslogtreecommitdiffstats
path: root/resources/traffic_scripts
diff options
context:
space:
mode:
authorMatej Klotton <mklotton@cisco.com>2016-06-09 20:02:17 +0200
committerMatej Klotton <mklotton@cisco.com>2016-06-17 12:26:56 +0000
commitc85a2d27d7d08dde04c6d37b239f4ae17a2fee87 (patch)
tree8dbb7767d38b35a5ce2e167e9f7e913be02a554d /resources/traffic_scripts
parent5366e62fe11d587e67f7420ed86ceeb57ec4569e (diff)
Fix VPP sends ARP requests for unknown destinations TC destination MAC address
-JIRA: CSIT-142 The ICMP packet was send to wrong destination. Don't use resolve-attemts in add route. Fix testcase. Add testcase Sends ARP to GW with EXPECTED_FAILING. Variable naming fix. Documentation update. Change-Id: I71a7a274c154c525b176c87884d089155d7ae61b Signed-off-by: Matej Klotton <mklotton@cisco.com>
Diffstat (limited to 'resources/traffic_scripts')
-rwxr-xr-xresources/traffic_scripts/send_icmp_check_arp.py43
1 files changed, 30 insertions, 13 deletions
diff --git a/resources/traffic_scripts/send_icmp_check_arp.py b/resources/traffic_scripts/send_icmp_check_arp.py
index 4a3c442114..49d4710ba4 100755
--- a/resources/traffic_scripts/send_icmp_check_arp.py
+++ b/resources/traffic_scripts/send_icmp_check_arp.py
@@ -46,15 +46,16 @@ def main():
"""Send IP ICMP packet from one traffic generator interface and expects
ARP on the other."""
args = TrafficScriptArg(
- ['tx_dst_mac', 'rx_dst_mac', 'tx_src_ip', 'tx_dst_ip', 'rx_arp_src_ip',
+ ['tx_dst_mac', 'rx_src_mac', 'tx_src_ip', 'tx_dst_ip', 'rx_arp_src_ip',
'rx_arp_dst_ip'])
tx_dst_mac = args.get_arg('tx_dst_mac')
- rx_dst_mac = args.get_arg('rx_dst_mac')
+ rx_src_mac = args.get_arg('rx_src_mac')
src_ip = args.get_arg('tx_src_ip')
dst_ip = args.get_arg('tx_dst_ip')
tx_if = args.get_arg('tx_if')
rx_if = args.get_arg('rx_if')
+ rx_dst_mac = 'ff:ff:ff:ff:ff:ff'
rx_arp_src_ip = args.get_arg('rx_arp_src_ip')
rx_arp_dst_ip = args.get_arg('rx_arp_dst_ip')
@@ -73,6 +74,20 @@ def main():
if ether is None:
raise RuntimeError("Ethernet frame Rx timeout")
+ if ether.dst == rx_dst_mac:
+ print("Ethernet destination address matched.")
+ else:
+ raise RuntimeError(
+ "Matching ethernet destination address unsuccessful: {0} != {1}".
+ format(ether.dst, rx_dst_mac))
+
+ if ether.src == rx_src_mac:
+ print("Ethernet source address matched.")
+ else:
+ raise RuntimeError(
+ "Matching ethernet source address unsuccessful: {0} != {1}"
+ .format(ether.src, rx_src_mac))
+
# ARP check
if ether['ARP'] is not None:
print("ARP packet received.")
@@ -84,32 +99,34 @@ def main():
if ether['ARP'].op == 1: # 1 - who-has request
print("ARP request matched.")
else:
- raise RuntimeError("Matching ARP request unsuccessful: {0}"
- .format(ether.__repr__()))
+ raise RuntimeError("Matching ARP request unsuccessful: {0} != {1}"
+ .format(ether['ARP'].op, 1))
- if ether['ARP'].hwsrc == rx_dst_mac:
+ if ether['ARP'].hwsrc == rx_src_mac:
print("Source MAC matched.")
else:
- raise RuntimeError("Matching Source MAC unsuccessful: {0}"
- .format(ether.__repr__()))
+ raise RuntimeError("Matching Source MAC unsuccessful: {0} != {1}"
+ .format(ether['ARP'].hwsrc, rx_src_mac))
if ether['ARP'].hwdst == "00:00:00:00:00:00":
print("Destination MAC matched.")
else:
- raise RuntimeError("Matching Destination MAC unsuccessful: {0}"
- .format(ether.__repr__()))
+ raise RuntimeError("Matching Destination MAC unsuccessful: {0} != {1}"
+ .format(ether['ARP'].hwdst, "00:00:00:00:00:00"))
if ether['ARP'].psrc == rx_arp_src_ip:
print("Source ARP IP address matched.")
else:
- raise RuntimeError("Matching Source ARP IP address unsuccessful: {0}"
- .format(ether.__repr__()))
+ raise RuntimeError(
+ "Matching Source ARP IP address unsuccessful: {0} != {1}"
+ .format(ether['ARP'].psrc, rx_arp_src_ip))
if ether['ARP'].pdst == rx_arp_dst_ip:
print("Destination ARP IP address matched.")
else:
- raise RuntimeError("Matching Destination ARP IP address unsuccessful: "
- "{0}".format(ether.__repr__()))
+ raise RuntimeError(
+ "Matching Destination ARP IP address unsuccessful: {0} != {1}"
+ .format(ether['ARP'].pdst, rx_arp_dst_ip))
sys.exit(0)