aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/trex
AgeCommit message (Expand)AuthorFilesLines
2020-02-18Add option to run Trex with --force parameter to startMaros Mullner1-4/+11
2020-01-08Track real(er) duration of trafficVratko Polak1-0/+7
2020-01-07T-Rex: Upgrade to 2.73 with DDP profile fixPeter Mikus3-3/+3
2019-11-28Python3: resources and librariesJan Gelety3-117/+124
2019-09-24Add support for HDRhistogramVratko Polak1-15/+17
2019-09-24Reconf tests: Fix async measurementsVratko Polak2-6/+32
2019-09-12Support unidirection in all searchesVratko Polak1-24/+26
2019-09-12TRex: 2.61Peter Mikus3-3/+3
2019-09-11Ansible: Trex installationPeter Mikus1-36/+0
2019-08-23Introduce reconfig suites, for dot1q+ip4+vxlanVratko Polak1-13/+26
2019-06-10Python3: TRex driverPeter Mikus3-45/+15
2019-05-28FIX: Trex 2.54 resolve issue.Peter Mikus1-2/+1
2019-05-24CSIT-1425 Upgrade TRex to v2.54Tibor Frank3-53/+20
2019-05-16Avoid !r format appending u on unicodeVratko Polak1-0/+4
2019-05-10PLRsearch: Use stat trackers to shorten IntegratorVratko Polak1-3/+3
2019-02-26De-duplicate unidirection supportVratko Polak1-221/+46
2019-01-08[V4] Add sending unidirectional traffic support for TG in CSITYulong Pei1-5/+205
2018-05-04CSIT-992: Add libraries for optimized searchVratko Polak1-9/+9
2018-01-04CSIT-885 Updagrade TRex to v2.35Peter Mikus4-4/+4
2018-01-02Upgrade to T-rex v2.34Tibor Frank4-9/+8
2017-09-04CSIT-786 L2FIB scale testingPeter Mikus1-0/+3
2017-09-03Update T-rex to v2.29Peter Mikus4-4/+4
2017-08-25Update T-rex to v2.28Peter Mikus4-4/+4
2017-06-29CSIT-687: Directory structure reorganizationTibor Frank4-0/+500
s="sd"> :param ip: IP address. :type ip: str :return: True in case of correct IPv4 address format, otherwise return False. :rtype: bool """ try: ipaddress.IPv4Address(unicode(ip)) return True except (AttributeError, ipaddress.AddressValueError): return False def main(): """Send IP ICMP packet from one traffic generator interface and expects ARP on the other.""" args = TrafficScriptArg( ['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_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') rxq = RxQueue(rx_if) txq = TxQueue(tx_if) # Create empty IP ICMP packet if valid_ipv4(src_ip) and valid_ipv4(dst_ip): pkt_raw = Ether(dst=tx_dst_mac) / IP(src=src_ip, dst=dst_ip) / ICMP() # Send created packet on one interface and receive on the other txq.send(pkt_raw) ether = rxq.recv(2) 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.") else: raise RuntimeError("Not an ARP packet received {0}" .format(ether.__repr__())) # Compare data from packets if ether['ARP'].op == 1: # 1 - who-has request print("ARP request matched.") else: raise RuntimeError("Matching ARP request unsuccessful: {0} != {1}" .format(ether['ARP'].op, 1)) if ether['ARP'].hwsrc == rx_src_mac: print("Source MAC matched.") else: 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} != {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} != {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} != {1}" .format(ether['ARP'].pdst, rx_arp_dst_ip)) sys.exit(0) if __name__ == "__main__": main()