Network Wizard for VHDL Test Benches
Loading...
Searching...
No Matches
nw_ipv6_pkg Package Body Reference
Package Body >> nw_ipv6_pkg

Functions

t_slv_arr   f_ipv6_create_pkt (
header: in t_ipv6_header
payload: in t_slv_arr
ext_header_list: in t_ext_header_list C_DEFAULT_EXT_HEADER_LIST
)
 Create IPv6 packet.
natural   f_ipv6_create_pkt_len (
header: in t_ipv6_header
payload: in t_slv_arr
ext_header_list: in t_ext_header_list C_DEFAULT_EXT_HEADER_LIST
)
 Return length of IPv6 packet.
t_ext_header_list   f_ipv6_add_ext_header ( ext_header_list: in t_ext_header_list , ext_header: in t_extension_header )
 Create IPv6 extension header list.
t_ipv6_header   f_ipv6_get_header ( ipv6_pkt: in t_slv_arr )
 Get IPv6 header.
t_ext_header_list   f_ipv6_get_ext_headers ( ipv6_pkt: in t_slv_arr )
 Get IPv6 extension header list.
t_slv_arr   f_ipv6_get_payload ( ipv6_pkt: in t_slv_arr )
 Get IPv6 payload.
natural   f_ipv6_get_payload_len ( ipv6_pkt: in t_slv_arr )
 Get IPv6 payload length.
t_slv_arr   f_ipv6_addr_2_slv_arr ( addr: in string )
 Convert IPv6 address string to slv_array.

Member Function/Procedure/Process Documentation

◆ f_ipv6_create_pkt()

t_slv_arr f_ipv6_create_pkt (   header in t_ipv6_header ,
  payload in t_slv_arr ,
  ext_header_list in t_ext_header_list C_DEFAULT_EXT_HEADER_LIST  
)
Function

Create IPv6 packet.

Parameters
headerIPv6 header
payloadIPv6 payload
ext_header_listIPv6 extension header list (default none)
Returns
IPv6 packet (8bit array) or length of IPv6 packet

Create IPv6 packet. Payload must be 8bit data array.

Example use

v_ipv6_header := C_DEFAULt_IPV66_HEADER;
v_len := f_ipv6_create_pkt_len(v_ipv6_header, payload); -- get total packet length
v_ipv6_pkt(0 to v_len - 1) := f_ipv6_create_pkt(v_ipv6_header, payload);

◆ f_ipv6_create_pkt_len()

natural f_ipv6_create_pkt_len (   header in t_ipv6_header ,
  payload in t_slv_arr ,
  ext_header_list in t_ext_header_list C_DEFAULT_EXT_HEADER_LIST  
)
Function

Return length of IPv6 packet.

Parameters
headerIPv6 header
payloadIPv6 payload
ext_header_listIPv6 extension header list (default none)
Returns
Length of IPv6 packet

Return the length of the created IPv6 packet.

Example use

v_len := f_ipv6_create_pkt_len(v_ipv6_header, payload);

◆ f_ipv6_add_ext_header()

t_ext_header_list f_ipv6_add_ext_header (   ext_header_list in t_ext_header_list ,
  ext_header in t_extension_header  
)
Function

Create IPv6 extension header list.

Parameters
ext_header_listList of IPv6 extension headers
ext_headerExtension header to be added to list
Returns
List of IPv6 extension headers

Add an extension header to a extension header list.

Example use

v_ext_header_list := C_DEFAULT_EXT_HEADER_LIST; -- start with empty list
v_ext_header_list := f_ipv6_add_ext_header(ext_header_list, ext_header1); -- add first header
v_ext_header_list := f_ipv6_add_ext_header(ext_header_list, ext_header2); -- add second header

◆ f_ipv6_get_header()

t_ipv6_header f_ipv6_get_header (   ipv6_pkt in t_slv_arr  
)
Function

Get IPv6 header.

Parameters
ipv6_pktIPv6 packet (8bit)
Returns
IPv6 header

Extract IPv6 header from IPv6 packet.

Example use

v_ipv6_header := f_ipv6_get_header(ipv6_pkt);

◆ f_ipv6_get_ext_headers()

t_ext_header_list f_ipv6_get_ext_headers (   ipv6_pkt in t_slv_arr  
)
Function

Get IPv6 extension header list.

Parameters
ipv6_pktIPv6 packet (8bit)
Returns
IPv6 extension header list

Extract IPv6 extension headers from IPv6 packet. The number of extension headers found in the packet is indicated by the "header_cnt" field in returned record.

Example use

v_ext_headers := f_ipv6_get_ext_headers(ipv6_pkt); -- v_ext_headers.header_cnt now has the # of ext headers found in the packet

◆ f_ipv6_get_payload()

t_slv_arr f_ipv6_get_payload (   ipv6_pkt in t_slv_arr  
)
Function

Get IPv6 payload.

Parameters
ipv6_pktIPv6 packet (8bit)
get_lengthGet length of payload, default False
Returns
t_slv_arr

Extract IPv6 payload from IPv6 packet. Extension headers are not part of the payload retunred.

Example use

v_len := f_ipv6_get_payload_len(ipv6_pkt);
v_payload(0 to v_len - 1) := f_ipv6_get_payload(ipv6_pkt);

◆ f_ipv6_get_payload_len()

natural f_ipv6_get_payload_len (   ipv6_pkt in t_slv_arr  
)
Function

Get IPv6 payload length.

Parameters
ipv6_pktIPv6 packet (8bit)
Returns
IPv6 payload length

Get IPv6 payload length from IPv6 packet.

Example use

v_len := f_ipv6_get_payload_len(ipv6_pkt); -- determine size of payload

◆ f_ipv6_addr_2_slv_arr()

t_slv_arr f_ipv6_addr_2_slv_arr (   addr in string  
)
Function

Convert IPv6 address string to slv_array.

Parameters
addrIPv6 address in string format
Returns
IPv6 address as 16 byte array

Convert IPv6 address in string format to byte array. The string is assumed to follow RFC 5952 recommendation.

Example use

v_addr := f_ipv6_addr_2_slv_arr("2102:ec7::2"); -- v_addr is now (x"21", x"02", x"0e", x"c7", x"00", x"00", ..., x"00", x"02")
v_addr := f_ipv6_addr_2_slv_arr("a2-34-56-f1-30-00"); -- v_addr is now (x"a2", x"34", x"56", x"f1", x"30", x"00")

The documentation for this design unit was generated from the following file: