3.13. telemetry

3.13.1. ipfix suite

3.13.1.1. Send packets and verify IPFIX

Send simple TCP or UDP packets from source interfaceto destination interface. Listen for IPFIX flow report on sourceinterface and verify received report against number of packets sent.

Arguments:

  • tg_node - TG node. Type: dictionary
  • dst_node - Destination node. Type: dictionary
  • src_int - Source interface. Type: string
  • dst_int - Destination interface. Type: string
  • src_ip - Source IP address. Type: string
  • dst_ip - Destination IP address. Type: string
  • protocol - TCP or UDP (Optional, default is TCP). Type: string
  • port - Source and destination ports to use

(Optional, default is port 20). Type: integer - count - Number of packets to send (Optional, default is one packet). Type: integer - timeout - Timeout value in seconds (Optional, default is 10 sec). Should be at least twice the configured IPFIX flow report interval. Type: integer

Return:

  • No value returned

Example:

| Send packets and verify IPFIX | ${nodes[‘TG’]} ${nodes[‘DUT1’]}| eth1 | GigabitEthernet0/8/0 | 16.0.0.1 | 192.168.0.2 | UDP | ${20} | ${5} | ${10} |


${src_mac}=  Get Interface Mac  ${tg_node}  ${src_int}
${dst_mac}=  Get Interface Mac  ${dst_node}  ${dst_int}
${src_int_name}=  Get interface name  ${tg_node}  ${src_int}
${dst_int_name}=  Get interface name  ${dst_node}  ${dst_int}
${args}=  Traffic Script Gen Arg  ${dst_int_name}  ${src_int_name}  ${src_mac}  ${dst_mac}  ${src_ip}  ${dst_ip}
${args}=  Set Variable  ${args} --protocol ${protocol} --port ${port} --count ${count}
Run Traffic Script On Node  ipfix_check.py  ${tg_node}  ${args}  ${timeout}

3.13.1.2. Send session sweep and verify IPFIX

Send simple TCP or UDP packets from source interfaceto destination interface using a range of source addresses. Listenfor IPFIX flow report on source interface and verify received reportagainst number of packets sent from each source address.

Arguments:

  • tg_node - TG node. Type: dictionary
  • dst_node - Destination node. Type: dictionary
  • src_int - Source interface. Type: string
  • dst_int - Destination interface. Type: string
  • src_ip - Source IP address. Type: string
  • dst_ip - Destination IP address. Type: string
  • ip_range - Number of sequential source addresses. Type:integer
  • protocol - TCP or UDP (Optional, defaults to TCP). Type: string
  • port - Source and destination ports to use (Optional). Type: integer
  • count - Number of packets to send (Optional). Type: integer
  • timeout - Timeout value in seconds (optional). Type:integer

Return:

  • No value returned

Example:

| Send packets and verify IPFIX | ${nodes[‘TG’]} ${nodes[‘DUT1’]}| eth1 | GigabitEthernet0/8/0 | 16.0.0.1 | 192.168.0.2 | 20 | UDP | ${20} | ${5} | ${10} |


${src_mac}=  Get Interface Mac  ${tg_node}  ${src_int}
${dst_mac}=  Set Variable  ${dut1_to_tg_mac}
${src_int_name}=  Get interface name  ${tg_node}  ${src_int}
${dst_int_name}=  Get interface name  ${dst_node}  ${dst_int}
${args}=  Traffic Script Gen Arg  ${dst_int_name}  ${src_int_name}  ${src_mac}  ${dst_mac}  ${src_ip}  ${dst_ip}
${args}=  Set Variable  ${args} --protocol ${protocol} --port ${port}
${args}=  Set Variable  ${args} --count ${count} --sessions ${ip_range}
Run Traffic Script On Node  ipfix_sessions.py  ${tg_node}  ${args}  ${timeout}

3.13.2. span suite

3.13.2.1. Send Packet And Check Received Copies

Sends an ARP or ICMP packet from TG to DUT using onelink, then receive a copy of both the sent packet and the DUT’s replyon the second link.

Arguments:

  • tg_node - Node to execute scripts on (TG). Type: dictionary
  • tx_src_port - First interface on TG. Type: string
  • tx_src_mac - MAC address of the first interface on TG. Type: string
  • tx_dst_mac - MAC address of the first interface on DUT. Type: string
  • rx_port - Second interface on TG. Type: string
  • src_ip - Packet source IP address. Type: string
  • dst_ip - Packet destination IP address. Type: string
  • ptype - Type of payload, ARP, ICMP or ICMPv6. Type: string

Return: - No value returned

Example:

| Send Packet And Check Received Copies | ${nodes[‘TG’]} | eth1 | 8:00:27:ee:fd:b3 | 08:00:27:a2:52:5b | eth3 | 192.168.0.2 | 192.168.0.3 | ARP |


${tx_port_name}=  Get interface name  ${tg_node}  ${tx_src_port}
${rx_port_name}=  Get interface name  ${tg_node}  ${rx_port}
${args}=  Catenate  --tg_src_mac ${tx_src_mac} --dut_if1_mac ${tx_dst_mac}  --src_ip ${src_ip} --dst_ip ${dst_ip}  --tx_if ${tx_port_name} --rx_if  ${rx_port_name}  --ptype ${ptype}
Run Traffic Script On Node  span_check.py  ${tg_node}  ${args}