GRE Functions¶
sth::emulation_gre_config¶
Purpose¶
Configures GRE tunnels.
Generic Routing Encapsulation (GRE) is a tunneling protocol. It is designed to encapsulate a wide variety of network layer packets inside IP tunneling packets. The original packet is the payload for the final packet. The protocol is used on the Internet to secure virtual private networks.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_gre_config [-gre_tnl_type {4|6} M] [-mode {create | modify}] [-gre_handle <gre_handle>] [-gre_tnl_addr <a.b.c.d>] [-gre_tnl_addr_step <a.b.c.d>] [-gre_tnl_addr_count <1-2147483647>] [-gre_src_mode {fixed|increment}] [-gre_src_addr <a.b.c.d>] [-gre_src_addr_step <a.b.c.d>] [-gre_src_addr_count <1-2147483647>] [-gre_dst_mode {fixed|increment}] [-gre_dst_addr <a.b.c.d>] [-gre_dst_addr_step <a.b.c.d>] [-gre_dst_addr_count <1-2147483647>] [-gre_checksum {0|1}] [-gre_keepalive {true|false}] [-gre_keepalive_interval <integer>] [-gre_keepalive_retries <integer>] [-gre_count <1-10000> [-gre_in_key <in_key>] [-gre_out_key <out_key>] [-gre_prefix_len <integer>] [-gre_src_mac_addr {<aaaa.bbbb.cccc> | <aaaa:bbbb:cccc> |<aa.bb.cc.dd.ee.ff> | <aa:bb:cc:dd:ee:ff> |<aa-bb-cc-dd-ee-ff>}] [-gre_src_mac_addr_step {<aaaa.bbbb.cccc> | <aaaa:bbbb:cccc> | <aa.bb.cc.dd.ee.ff> | <aa:bb:cc:dd:ee:ff> |<aa-bb-cc-dd-ee-ff>}] [-gre_port_handle <port_handle>] [-gre_encapsulation {ETHERNET_II | ETHERNET_II_VLAN | ETHERNET_II_QINQ }] [-gre_vlan_id <0-4095>] [-gre_vlan_id_count <1-4096>] [-gre_vlan_id_step <0-4095>] [-gre_vlan_user_priority <0-7>] [-gre_vlan_outer_id <0-4095>] [-gre_vlan_outer_id_count <1-4096>] [-gre_vlan_outer_id_step <0-4095>] [-gre_vlan_outer_user_priority <0-7>] [-gre_seqnum_enabled {true | false}] [-upper_layer {true|false}] [-upper_layer_version {ipv4|ipv6|ipv4v6}] [-upper_layer_intf_ip_addr <a.b.c.d>] [-upper_layer_intf_ip_addr_step <a.b.c.d>] [-upper_layer_gateway_ip_addr <a.b.c.d>] [-upper_layer_gateway_ip_addr_step <a.b.c.d>] [-upper_layer_intf_prefix_len <1-32>] [-upper_layer_resolve_gateway_mac {true|false}] [-upper_layer_intf_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-upper_layer_ipv6_resolve_gateway_mac {true|false}] [-upper_layer_gateway_mac <aa:bb:cc:dd:ee:ff>] [-upper_layer_ipv6_gateway_mac <aa:bb:cc:dd:ee:ff>] [-upper_layer_intf_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-upper_layer_intf_ipv6_prefix_len <1-128>] [-upper_layer_gateway_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-upper_layer_gateway_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-upper_layer_traffic_class <0-255>] [-upper_layer_link_local_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-upper_layer_link_local_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-upper_layer_link_local_ipv6_prefix_len <0-128>]
Arguments¶
-
-mode
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the action to perform. Possible values are:
create - Creates GRE clients modify - Changes the configurations for the GRE clients identified by -gre_handle. You must specify -gre_handle.
The default is create.
Note
Values for -gre_count, -gre_tnl_addr_count, -gre_src_addr_count, -gre_dst_addr_count, -gre_vlan_id_count, -gre_vlan_outer_id_count, -gre_encapsulation, -gre_tnl_type, and -gre_port_handle cannot be modified.
-
-gre_handle
¶
Spirent Extension (for Spirent HLTAPI only).
Gets GRE handle from the return value of the
sth::link_config
function, or Layer 3 functions such as BGP, ISIS, LDP, MPLS, OSPF, PIM, RIP, and RSVP.
-
-gre_tnl_type
¶
Specifies whether the tunnel has an IPv4 or IPv6 address. This argument is Mandatory .
-
-gre_tnl_addr
¶
Defines the IPv4 or IPv6 gateway address of the GRE tunnel.
-
-gre_tnl_addr_step
¶
Configures the IPv4 or IPv6 gateway address for multiple tunnels. Use this argument with the -gre_tnl_addr argument.
-
-gre_tnl_addr_count
¶
The number of source IP addresses to generate for a tunnel. Possible values range from 1 to 2147483647. The default is 1.
-
-gre_src_mode
¶
Specifies how Spirent HLTAPI will assign the IP addresses for a particular tunnel. Possible values are:
fixed - The source IP address is the same for all tunnels. increment - For all packets, the source IP address increments by the step specified in the -gre_src_addr_step argument.
-
-gre_src_addr
¶
Specifies the source IP address of the first generated packet. The default is 0.0.0.0.
-
-gre_src_addr_step
¶
Indicates both the step value and the prefix length that Spirent HLTAPI applies to the specified source address (-gre_src_addr). The format of the gre_src_addr_step value is an IPv4 address, for example, 0.0.1.0. Use a single decimal digit equal to a power of 2; the remaining three digits must be zero (0). The numeric value identifies a bit location in the address; the location determines the prefix length. Spirent HLTAPI also uses the value to increment the host ID portion of the address.
-
-gre_src_addr_count
¶
The number of source IPv4 or IPv6 addresses to generate for a stream. Possible values range from 1 to 2147483647. The default is 1.
-
-gre_dst_mode
¶
Specifies how Spirent HLTAPI will assign the IP addresses for a particular stream. Possible values are:
fixed - The destination IP address is the same for all packets. increment - For all packets, the destination IP address increments by the step specified in the -gre_dst_addr_step argument.
-
-gre_dst_addr
¶
Specifies the destination IP address of the first generated packet. The default is 0.0.0.0.
-
-gre_dst_addr_step
¶
Indicates both the step value and the prefix length that Spirent HLTAPI applies to the specified destination address (-gre_dst_addr). The format of the gre_dst_addr_step value is an IPv4 address, for example, 0.0.1.0. Use a single decimal digit equal to a power of 2; the remaining three digits must be zero (0). The numeric value identifies a bit location in the address; the location determines the prefix length. Spirent HLTAPI also uses the value to increment the host ID portion of the address.
-
-gre_dst_addr_count
¶
The number of destination IPv4 or IPv6 addresses to generate for a stream. Possible values range from 1 to 2147483647. The default is 1.
-
-gre_checksum
¶
Verifies that packets are not corrupted. Possible values are 0 (not corrupted) and 1 (corrupted). The default is 0.
-
-gre_keepalive
¶
Enables or disables keepalive for GRE tunnel. Possible Values: true or false. The default is false.
-
-gre_keepalive_interval
¶
Specifies the amount of time, in seconds, between KEEPALIVE messages. The default is 10.
-
-gre_keepalive_retries
¶
Specifies the number of retries to send before tunnel expires. The default is 0.
-
-gre_in_key
¶
Defines the GRE tunnel In key. Spirent HLTAPI will automatically change the value to the GRE tunnel Out key once -gre_out_key is specified.
-
-gre_out_key
¶
Defines the GRE tunnel Out key.
-
-gre_prefix_len
¶
Spirent Extension (for Spirent HLTAPI only).
Defines the length (in bits) of the IPv4 tunnel. It must be an integer. The default value is 24.
-
-gre_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of emulated GRE tunnel devices. Possible values range from 1 to 100000. The default value is 1.
-
-gre_src_mac_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Defines the source MAC address for a Gigabit Ethernet or Gigabit Ethernet GBIC interface of the GRE tunnel device. You can enter this address in one of the following formats: aaaa.bbbb.cccc aaaa:bbbb:cccc aa.bb.cc.dd.ee.ff aa:bb:cc:dd:ee:ff aa-bb-cc-dd-ee-ff
The default is 0000.0000.0000.
-
-gre_src_mac_addr_step
¶
Spirent Extension (for Spirent HLTAPI only).
Defines the modifier for the interface MAC address of the emulated GRE tunnel device. The default value is 00:00:00:00:00:01.
-
-gre_port_handle
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the handle of the port on which the GRE tunnel device and the DHCP or DHCPv6/PD server/client are created, with an L2 GRE tunnel link between them. See function sth::link_config for more details on how to create an L2 GRE tunnel link.
-
-gre_encapsulation
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the type of Layer 2 encapsulation for the emulated GRE tunnel device. Possible values are:
ethernet_ii - Ethernet II ethernet_ii_vlan - Ethernet II with a single VLAN tag ethernet_ii_qinq - Ethernet II with two VLAN tags
The default value is ethernet_ii.
-
-gre_vlan_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the starting VLAN ID for the ethernet_ii_vlan encapsulation or the ethernet_ii_qinq encapsulation. Possible values range from 0 to 4095. The default value is 100. This argument is available when -gre_encapsulation is set to ethernet_ii_qinq or ethernet_ii_vlan.
-
-gre_vlan_id_step
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the step size by which the VLAN ID is incremented. Possible values range from 0 to 4095. The default value is 1.
-
-gre_vlan_id_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of VLAN IDs to use when generating multiple VLANs. Possible values range from 1 to 4096. The default is 1.
-
-gre_vlan_user_priority
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the VLAN user priority assigned to emulated device. Possible values range from 0 to 7. The default value is 0.
-
-gre_vlan_outer_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the starting outer VLAN ID for the QinQ encapsulation. Possible values range from 0 to 4095. The default value is 100. This argument is available when -gre_encapsulation is set to ethernet_ii_qinq.
-
-gre_vlan_outer_id_step
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the step size by which the outer VLAN ID is incremented. Possible values range from 0 to 4095. The default value is 1.
-
-gre_vlan_outer_id_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of VLAN IDs to use when generating multiple outer VLANs. Possible values range from 1 to 4096. The default value is 1.
-
-gre_vlan_outer_user_priority
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the VLAN priority to assign to the outer VLAN header. Possible values range from 0 to 7. The default value is 0.
-
-gre_seqnum_enabled
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables sequence numbers for GRE tunnels. Possible Values: true or false. The default is false.
-
-upper_layer
¶
Specifies whether to configure upper layer interface.
-
-upper_layer_version
¶
Specifies the version of upper layer interface.
-
-upper_layer_intf_ip_addr
¶
Specifies the IPv4 address of the upper layer interface. The default value is 192.85.1.3. This option can be configured when -upper_layer is set as 1 and -upper_layer_version as ipv4.
-
-upper_layer_intf_ip_addr_step
¶
- Specifies the difference between IPv4 interface addresses of consecutive devices when multiple GRE devices are created. The value must be in IPv4 format. The default is 0.0.0.1. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv4.
-upper_layer_gateway_ip_addr Specifies the IPv4 gateway address for the upper layer interface. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv4. -upper_layer_gateway_ip_addr_step Specifies the difference between IPv4 gateway addresses of consecutive devices when multiple GRE devices are created. The default value is 0.0.0.1. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv4. -upper_layer_intf_prefix_len Specifies the prefix length for the IP address of the upper layer interface. Possible values range from 1 to 32. The default is 24. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv4. -upper_layer_resolve_gateway_mac Determines whether to resolve the IPv4 gateway’s MAC address. Possible values are true and false. The default value is true. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv4. -upper_layer_intf_ipv6_prefix_len Specifies the prefix length for the IPv6 address of the upper layer interface. Possible values range from 0 to 128. The default is 64. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6. -upper_layer_intf_ipv6_addr Specifies the IPv6 address of the upper layer interface. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6. -upper_layer_intf_ipv6_addr_step Specifies the difference between interface IPv6 addresses of consecutive devices when multiple GRE devices are created. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6. -upper_layer_ipv6_resolve_gateway_mac Determines whether to resolve the IPv6 gateway’s MAC address. Possible values are true and false. The default value is true. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6. -upper_layer_gateway_mac Specifies the IPv4 gateway’s MAC address for the upper layer interface. The default value is 00:00:01:00:00:01. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv4. -upper_layer_ipv6_gateway_mac Specifies the IPv6 gateway’s MAC address for the upper layer interface. The default value is 00:00:01:00:00:01. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6. -upper_layer_gateway_ipv6_addr Specifies the IPv6 gateway address for the upper layer interface. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6. -upper_layer_gateway_ipv6_addr_step Specifies the difference between IPv6 gateway addresses of consecutive devices when multiple GRE devices are created. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6. -upper_layer_link_local_ipv6_addr Specifies the starting link local IPv6 address for the upper layer interface. The value must be in IPv6 format. The default is FE80::0. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6. -upper_layer_traffic_class Specifies the traffic class of the IPv6 header. Possible values range from 0 to 255. The default value is 0. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6. -upper_layer_link_local_ipv6_addr_step Specifies the difference between link local IPv6 addresses of consecutive devices when multiple GRE devices are created. The value must be in IPv6 format. The default is ::1. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6. -upper_layer_link_local_ipv6_prefix_len Specifies the prefix length for the link local IPv6 address of the upper layer interface. Possible values range from 0 to 128. The default is 64. This option can be configured when -upper_layer is set as 1 and -upper_layer_version is set as ipv6.
Arguments Unsupported by Save as HLTAPI¶
None
Return Values¶
The sth::emulation_gre_config
function returns a
keyed list/dictionary/hash (See Introduction for more information on return
value formats) using the following keys (with corresponding data):
config_handle An array that consists of the GRE tunnel configuration.
status Success (1) or failure (0) of the operation.
Description¶
The sth::emulation_gre_config
function returns an array (config_handle) that consists
of the GRE tunnel configuration. You can use the -tunnel_handle option for
other protocols or the Traffic function if they support GRE.
First, use the emulation_gre_config function to create a configuration array and then pass this array using the -tunnel_handle option for the following protocol emulation commands: BGP, ISIS, LDP, OSPF, RIP, PIM, RSVP and Traffic, if they support GRE.
Examples¶
The following example configures a GRE tunnel:
sth::emulation_gre_config \
-gre_tnl_type 4 \
-gre_tnl_addr 10.1.1.1\
-gre_tnl_addr_step 0.0.0.1\
-gre_tnl_addr_count 2 \
-gre_src_mode increment\
-gre_src_addr 10.1.1.3\
-gre_src_addr_step 0.0.0.1\
-gre_src_addr_count 2 \
-gre_dst_mode increment\
-gre_dst_addr 10.1.2.4\
-gre_dst_addr_step 0.0.0.1\
-gre_dst_addr_count 2 \
-gre_in_key 300 \
-gre_out_key 300
Sample Output:
{status 1} {config_handle {{gre_tnl_addr_step 0.0.0.1 gre_checksum 0 gre_src_mode
increment gre_vlan_id_count 1 gre_dst_addr_count 2 gre_encapsulation ethernet_ii
gre_keepalive false gre_in_key 300 gre_dst_mode increment gre_dst_addr_step 0.0.0.1
gre_tnl_addr_count 2 gre_count 1 gre_src_addr 10.1.1.3 gre_vlan_outer_id_count 1
gre_keepalive_retries 3 gre_prefix_len 24 optional_args {-gre_tnl_addr 10.1.1.1
-gre_tnl_addr_step 0.0.0.1 -gre_tnl_addr_count 2 -gre_src_mode increment
-gre_src_addr 10.1.1.3 -gre_src_addr_step 0.0.0.1 -gre_src_addr_count 2 -gre_dst_mode
increment -gre_dst_addr 10.1.2.4 -gre_dst_addr_step 0.0.0.1 -gre_dst_addr_count 2
-gre_in_key 300 -gre_out_key 300} gre_dst_addr 10.1.2.4 gre_src_addr_step 0.0.0.1
:mandatory:`Mandatory` .args {-gre_tnl_type 4} gre_tnl_type 4 gre_out_key 300 gre_tnl_addr 10.1.1.1
mode create gre_qinq_incr_mode outer gre_src_addr_count 2 gre_keepalive_interval 10}}}
This example uses traffic config to call the GRE tunnel handle:
set traffic_status [sth::traffic_config \
-mode create \
-port_handle $rx_port_handle \
-l3_protocol $protocol_type \
-tunnel_handle $gre_handle \
-ip_src_addr $pkt_src(ip) \
-ip_src_mode $src_mode \
-ip_src_step $src_flow_offset \
-ip_src_count $src_flow_count \
-ip_dst_addr $pkt_dest(ip) \
-ip_dst_mode $dst_flow_mode \
-ip_dst_step $dst_flow_offset \
-ip_dst_count $dst_flow_count \
-l3_length $pkt_size \
-rate_pps $rate ]
This example shows how one of the protocols that supports GRE would use the GRE tunnel handle:
set config_status [sth::emulation_bgp_config \
-port_handle $port_handle \
-tunnel_handle $gre_handle \
-mode enable \
-ip_version 4 \
-count $my_count \
-local_ip_addr $rtr \
-local_addr_step 0.0.1.0 \
-remote_ip_addr $rtr_nbr \
-remote_addr_step 0.0.1.0 \
-netmask 24 \
-neighbor_type external \
-local_as $my_as \
-local_as_step 1 \
-local_as_mode increment \
-retries 0 \
-retry_time 120 \
-active_connect_enable \
-tcp_window_size 8192 \
-updates_per_iteration 1 \
-hold_time 90 \
-local_router_id_enable \
-local_router_id $rtr \
-local_router_id_step 0.0.1.0 \
-ipv4_unicast_nlri ]
The following examples create a GRE server and a DHCPv6 server with an L2 GRE tunnel link:
#To create the DHCP server
set device_ret0 [sth::emulation_dhcp_server_config\
-mode create\
-ip_version 6\
-encapsulation ethernet_ii_vlan\
-vlan_id_mode increment\
-prefix_pool_step 1 \
-prefix_pool_per_server 100 \
-prefix_pool_start_addr 2002:0:0:1::1 \
-prefix_pool_step_per_server 0:0:0:1:: \
-prefix_pool_prefix_length 64 \
-port_handle $port2\
-preferred_lifetime 604800 \
-enable_delayed_auth false \
-valid_lifetime 2592000 \
-dhcp_realm spirent.com \
-enable_reconfigure_key false \
-reneval_time_percent 50 \
-rebinding_time_percent 80 \
-server_emulation_mode DHCPV6_PD \
-local_ipv6_prefix_len 64 \
-local_ipv6_addr 2000:0:0:1::1000 \
-gateway_ipv6_addr_step 0:0:0:1:: \
-local_ipv6_addr_step 0:0:0:1:: \
-gateway_ipv6_addr 2002:0:0:1::1 \
-vlan_cfi 0 \
-vlan_id 500 \
-vlan_user_priority 7 \
-vlan_id_step 1 \
-count 6 \
-mac_addr 00:10:94:00:02:01 \
-mac_addr_step 00:00:00:00:00:01 \
]
#To create the GRE server
set device_ret3 [sth::emulation_gre_config\
-gre_tnl_type 4\
-gre_dst_addr_step 0.0.0.1 \
-gre_dst_addr 1.1.1.1 \
-gre_checksum 0\
-gre_src_addr 1.1.1.4 \
-gre_prefix_len 32 \
-gre_tnl_addr 1.1.1.1 \
-gre_encapsulation ethernet_ii_vlan\
-gre_port_handle $port2\
-gre_vlan_id_step 1 \
-gre_vlan_user_pri 7 \
-gre_vlan_id 1 \
-gre_src_mac_addr 00:10:94:00:00:04 \
-gre_src_mac_addr_step 00:00:00:00:00:01 \
]
#To link the created devices
set dhcp_host [keylget device_ret0 handle.dhcpv6_handle]
set link_ret [::sth::link_config\
-link_src $dhcp_host\
-link_dst "$device_ret3"\
-link_type "L2_GRE_Tunnel_Link"]
The following examples create a Layer 3 GRE tunnel and then modify it:
#To configures a GRE tunnel
set gre_ret [sth::emulation_gre_config\
-gre_encapsulation ethernet_ii_qinq\
-gre_src_mode increment\
-gre_dst_mode increment\
-gre_tnl_type 4\
-gre_dst_addr 10.1.1.1 \
-gre_dst_addr_step 0.0.0.3 \
-gre_checksum 0\
-gre_src_addr 20.1.1.1 \
-gre_tnl_addr_step 0.0.0.3 \
-gre_prefix_len 24 \
-gre_tnl_addr 20.1.1.50 \
-gre_src_addr_step 0.0.0.3 \
]
#To use the GRE tunnel handle in OSPF
set device_ret0 [sth::emulation_ospf_config \
-mode enable\
-tunnel_handle $gre_ret\
-session_type ospfv2 \
-port_handle $port1 \
-area_id 0.0.0.0 \
-hello_interval 10 \
-dead_interval 40 \
]
#To get the GRE handle
set gre_handle [keylget device_ret0 handle]
#To modify the GRE configuration::
set gre_ret [sth::emulation_gre_config\
-gre_tnl_type 4\
-mode modify\
-gre_handle $gre_handle \
-gre_tnl_addr 2.2.2.2 \
-gre_src_addr 3.3.3.3 \
-gre_dst_addr 4.4.4.4 \
-gre_vlan_id 300 \
-gre_in_key 400 \
-gre_out_key 400 \
]
Sample Output:
{tunnel_handle $gre_handle}
#### HLTAPI for Python ####
The following example configures a GRE server and a DHCPv6 server with an L2 GRE tunnel link:
#To create the DHCP server
device_ret0 = sth.emulation_dhcp_server_config(
mode = 'create',
ip_version = '4',
encapsulation = 'ETHERNET_II_VLAN',
vlan_id_mode = 'increment',
remote_id = 'remoteId_@p-@b-@s',
ipaddress_count = '251',
ipaddress_pool = '192.168.1.4',
vpn_id_count = '1',
vpn_id_type = 'nvt_ascii',
circuit_id_count = '1',
remote_id_count = '1',
circuit_id = 'circuitId_@p',
vpn_id = 'spirent_@p',
ipaddress_increment = '1',
port_handle = port_handle[1],
vlan_id = '500',
vlan_user_priority = '7',
vlan_ethertype = '0x8100',
vlan_id_step = '1',
lease_time = '3600',
tos_value = '192',
offer_reserve_time = '10',
min_allowed_lease_time = '600',
assign_strategy = 'GATEWAY',
host_name = 'server_@p-@b-@s',
renewal_time_percent = '50',
enable_overlap_addr = 'false',
decline_reserve_time = '10',
rebinding_time_percent = '87.5',
ip_repeat = '0',
remote_mac = '00:10:94:00:00:01',
ip_address = '192.168.1.1',
ip_prefix_length = '24',
ip_gateway = '192.168.1.4',
ip_step = '0.0.1.0',
local_mac = '00:10:94:00:02:01',
count = '1');
#To create the GRE server
device_ret3 = sth.emulation_gre_config (
gre_tnl_type = '4',
gre_dst_addr_step = '0.0.0.1',
gre_dst_addr = '1.1.1.1',
gre_checksum = '0',
gre_tnl_addr_step = '0.0.0.0',
gre_src_addr = '1.1.1.4',
gre_prefix_len = '24',
gre_src_addr_step = '0.0.0.1',
gre_tnl_addr = '1.1.1.1',
gre_encapsulation = 'ethernet_ii',
gre_port_handle = port_handle[1],
gre_src_mac_addr = '00:10:94:00:00:04',
gre_src_mac_addr_step = '00:00:00:00:00:01');
dhcp_host0_to_device_ret3 = device_ret0['handle']['dhcp_handle']
#To link the created devices
device_ret3_link0 = sth.link_config (
link_src = dhcp_host0_to_device_ret3,
link_dst = device_ret2,
link_type = 'L2_GRE_Tunnel_Link');
End of Procedure Header