ICMP6

Overview

Copyright (C) 2004-2022 OKTET Labs Ltd. More…

// typedefs

typedef struct icmp6_msg_body icmp6_msg_body;
typedef struct icmp6_msg_option icmp6_msg_option;

// enums

enum icmp6_msg_type;
enum icmp6_opt_type;

// structs

struct echo_body;
struct icmp6_msg_body;
struct icmp6_msg_option;
struct nadv_body;
struct nsol_body;
struct prefix_info;
struct radv_body;

// global functions

te_errno tapi_icmp_ip6_eth_csap_create(const char* ta_name, int sid, const char* eth_dev, unsigned int receive_mode, const uint8_t* loc_hwaddr, const uint8_t* rem_hwaddr, const uint8_t* loc_addr, const uint8_t* rem_addr, csap_handle_t* icmp_csap);
te_errno tapi_icmp6_add_pdu(asn_value** tmpl_or_ptrn, asn_value** pdu, bool is_pattern, int type, int code, icmp6_msg_body* body, icmp6_msg_option* optlist);
te_errno tapi_icmp6_add_csap_layer(asn_value** csap_spec);
te_errno tapi_ipproto_ip6_icmp_ip6_eth_csap_create(const char* ta_name, int sid, const char* eth_dev, unsigned int receive_mode, const uint8_t* loc_eth, const uint8_t* rem_eth, const uint8_t* loc_addr, const uint8_t* rem_addr, const struct sockaddr_in6* msg_loc_saddr, const struct sockaddr_in6* msg_rem_saddr, int ip_proto, csap_handle_t* ip_proto_csap);
te_errno tapi_udp_ip6_icmp_ip6_eth_csap_create(const char* ta_name, int sid, const char* eth_dev, unsigned int receive_mode, const uint8_t* loc_eth, const uint8_t* rem_eth, const uint8_t* loc_addr, const uint8_t* rem_addr, const struct sockaddr_in6* msg_loc_saddr, const struct sockaddr_in6* msg_rem_saddr, csap_handle_t* udp_csap);
te_errno tapi_tcp_ip6_icmp_ip6_eth_csap_create(const char* ta_name, int sid, const char* eth_dev, unsigned int receive_mode, const uint8_t* loc_eth, const uint8_t* rem_eth, const uint8_t* loc_addr, const uint8_t* rem_addr, const struct sockaddr_in6* msg_loc_saddr, const struct sockaddr_in6* msg_rem_saddr, csap_handle_t* tcp_csap);

Detailed Documentation

Copyright (C) 2004-2022 OKTET Labs Ltd. All rights reserved.

Typedefs

typedef struct icmp6_msg_body icmp6_msg_body

Structure to keep ICMPv6 message body information

typedef struct icmp6_msg_option icmp6_msg_option

Structure to keep list of ICMPv6 options

Global Functions

te_errno tapi_icmp_ip6_eth_csap_create(const char* ta_name, int sid, const char* eth_dev, unsigned int receive_mode, const uint8_t* loc_hwaddr, const uint8_t* rem_hwaddr, const uint8_t* loc_addr, const uint8_t* rem_addr, csap_handle_t* icmp_csap)

Create ‘icmp6.ip6.eth’ CSAP on the specified Agent

Parameters:

ta_name

Test Agent name

sid

RCF SID

eth_dev

Name of Ethernet interface

receive_mode

Bitmask with receive mode, see ‘enum tad_eth_recv_mode’ in tad_common.h. Use TAD_ETH_RECV_DEF by default.

loc_hwaddr

Local MAC address (or NULL)

rem_hwaddr

Remote MAC address (or NULL)

loc_addr

Local IP address in network byte order (or NULL)

rem_addr

Remote IP address in network byte order (or NULL)

icmp_csap

Location for the CSAP handle (OUT)

Returns:

Zero on success or error code

te_errno tapi_icmp6_add_pdu(asn_value** tmpl_or_ptrn, asn_value** pdu, bool is_pattern, int type, int code, icmp6_msg_body* body, icmp6_msg_option* optlist)

Add ICMPv6 PDU as the last PDU to the last unit of the traffic template or pattern.

Parameters:

tmpl_or_ptrn

Location of ASN.1 value with traffic template or pattern

pdu

Location for ASN.1 value pointer with added PDU

is_pattern

Is the first argument template or pattern

type

Type of ICMPv6 message or negative to keep unspecified

code

ICMPv6 message code or negative to keep unspecified

body

ICMPv6 message body or NULL to keep unspecified

optlist

List of ICPMv6 options or NULL to keep unspecified

Returns:

Status code.

te_errno tapi_icmp6_add_csap_layer(asn_value** csap_spec)

Add ICMPv6 layer in CSAP specification.

Parameters:

csap_spec

Location of CSAP specification pointer.

Status

code.

te_errno tapi_ipproto_ip6_icmp_ip6_eth_csap_create(const char* ta_name, int sid, const char* eth_dev, unsigned int receive_mode, const uint8_t* loc_eth, const uint8_t* rem_eth, const uint8_t* loc_addr, const uint8_t* rem_addr, const struct sockaddr_in6* msg_loc_saddr, const struct sockaddr_in6* msg_rem_saddr, int ip_proto, csap_handle_t* ip_proto_csap)

Create ‘{udp,tcp}.ip6.icmp.ip6.eth’ CSAP on the specified Agent

Parameters:

ta_name

Test Agent name

sid

RCF SID

eth_dev

Name of Ethernet interface

receive_mode

Bitmask with receive mode, see ‘enum tad_eth_recv_mode’ in tad_common.h. Use TAD_ETH_RECV_DEF by default.

loc_eth

Local MAC address (or NULL)

rem_eth

Remote MAC address (or NULL)

loc_addr

Local IPv6 address (or NULL)

rem_addr

Remote IPv6 address (or NULL)

msg_loc_saddr

Local IPv6 address/port of ICMP Error message (or NULL)

msg_rem_saddr

Remote IPv6 address/port of ICMP Error message (or NULL)

ip_proto

IPPROTO_UDP or IPPROTO_TCP

ip_proto_csap

Location for the CSAP handle (OUT)

Returns:

Status code

te_errno tapi_udp_ip6_icmp_ip6_eth_csap_create(const char* ta_name, int sid, const char* eth_dev, unsigned int receive_mode, const uint8_t* loc_eth, const uint8_t* rem_eth, const uint8_t* loc_addr, const uint8_t* rem_addr, const struct sockaddr_in6* msg_loc_saddr, const struct sockaddr_in6* msg_rem_saddr, csap_handle_t* udp_csap)

Create ‘udp.ip6.icmp.ip6.eth’ CSAP on the specified Agent

Parameters:

ta_name

Test Agent name

sid

RCF SID

eth_dev

Name of Ethernet interface

receive_mode

Bitmask with receive mode, see ‘enum tad_eth_recv_mode’ in tad_common.h. Use TAD_ETH_RECV_DEF by default.

loc_eth

Local MAC address (or NULL)

rem_eth

Remote MAC address (or NULL)

loc_addr

Local IPv6 address (or NULL)

rem_addr

Remote IPv6 address (or NULL)

msg_loc_saddr

Local IPv6 address/port of ICMP Error message (or NULL)

msg_rem_saddr

Remote IPv6 address/port of ICMP Error message (or NULL)

udp_csap

Location for the CSAP handle (OUT)

Returns:

Status code

te_errno tapi_tcp_ip6_icmp_ip6_eth_csap_create(const char* ta_name, int sid, const char* eth_dev, unsigned int receive_mode, const uint8_t* loc_eth, const uint8_t* rem_eth, const uint8_t* loc_addr, const uint8_t* rem_addr, const struct sockaddr_in6* msg_loc_saddr, const struct sockaddr_in6* msg_rem_saddr, csap_handle_t* tcp_csap)

Create ‘tcp.ip6.icmp.ip6.eth’ CSAP on the specified Agent

Parameters:

ta_name

Test Agent name

sid

RCF SID

eth_dev

Name of Ethernet interface

receive_mode

Bitmask with receive mode, see ‘enum tad_eth_recv_mode’ in tad_common.h. Use TAD_ETH_RECV_DEF by default.

loc_eth

Local MAC address (or NULL)

rem_eth

Remote MAC address (or NULL)

loc_addr

Local IPv6 address (or NULL)

rem_addr

Remote IPv6 address (or NULL)

msg_loc_saddr

Local IPv6 address/port of ICMP Error message (or NULL)

msg_rem_saddr

Remote IPv6 address/port of ICMP Error message (or NULL)

tcp_csap

Location for the CSAP handle (OUT)

Returns:

Status code