PCEP Functions

emulation pcep config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:

Spirent Extension (for Spirent HLTAPI only).

This is a Spirent Extension created to configure enable emulated PCEP device, configure, or modify PCEP LSPs or the LSP objects.

Path Computation Element Protocol (PCEP) is used for communications between a Path Computation Client (PCC) and a Path Computation Element (PCE), or between two PCEs. Such interactions include path computation requests and path computation replies, as well as notifications of specific states related to the use of a PCE in the context of Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering.

Stateful PCE is also supported to provide mechanisms to effect LSP state synchronization between PCCs and PCEs, delegation of control over LSPs to PCEs, and PCE control of timing and sequence of path computations within and across PCEP sessions.

See RFC 5440 and PCEP Extensions for Stateful PCE for more information.

Synopsis:

Note: M indicates the argument is `Mandatory`.

      emulation pcep config
        mode= {enable|add|modify|delete} M

        PCEP Sessions Parameters

        custom_dst_port=   {true|false}
        ttl= <1-255>
        ipv6_traffic_class= <0x00-0xFF>
        ip_version= {ipv4|ipv6}
        speaker_entity_id= <string>
        ipv4_tos= <0x00-0xFF>
        is_session_initiator= {true|false}
        is_fixed_dst_port= {true|false}
        enable_negotiation= {true|false}
        open_delay= <0-255>
        enable_stateful=  {true|false}
        use_custom_message= {true|false}
        pcep_capability= {lsp_update_capability|lsp_instantiation_capability}
        min_acc_keep_alive_timer= <0-255>
        max_acc_keepa_live_timer= <0-255>
        min_acc_dead_timer= <0-255>
        max_acc_dead_timer= <0-255>
        pcep_device_role= {PCC|PCE}
        peer_ipv4_addr= <a.b.c.d>
        peer_ipv4_addr_step= <a.b.c.d>
        peer_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        peer_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        pcep_session_ip_address= {INTERFACE_IP|ROUTER_ID}
        is_session_initiator= {true|false}
        is_fixed_src_port= {true|false}
        keep_alive_timer= <0 - 65535>
        dead_timer= <0 - 65535>
        enable_pc_results= {true|false}
        authentication=  {NONE|MD5}
        password= <string>
        enable_init_lsp= {true|false}
        enable_segment_routing= {true|false}
        max_sid_depth= < 0-255>

        PCEP Global Options

        session_out_standing= <1-65535>
        session_retry_count= <1-65535>
        session_retry_interval= <1-300>
        lsp_per_message=  <1-2000>
        tcp_interval= <1-1000>
        packet_align_to_mtu= {true|false}

        PCC LSP Parameters

        delegate_with_sync=  {true|false}
        path_setup_type= {rsvp|sr
        pcc_lspcount= <1-65535>
        pcc_characteristic= {report|allow_pce_init|enable_synchronization|enable_request}
        enable_delegate= {true|false}
        pcc_src_ipv4_addr= <a.b.c.d>
        pcc_src_ipv4_addr_step= <a.b.c.d>
        pcc_dst_ipv4_addr= <a.b.c.d>
        pcc_dst_ipv4_addr_step= <a.b.c.d>
        pcc_src_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        pcc_src_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        pcc_dst_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        pcc_dst_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
                PCE LSP Parameters
        path_setup_type= {rsvp|sr
        pce_lspcount= <1-65535>
        pce_symbolic_name= <string>
        pce_characteristic= {enable_update|enable_init|enable_reply}
        enable_update= {true|false}
        pce_src_ipv4_addr= <a.b.c.d>
        pce_src_ipv4_addr_step= <a.b.c.d>
        pce_dst_ipv4_addr= <a.b.c.d>
        pce_dst_ipv4_addr_step= <a.b.c.d>
        pce_src_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        pce_src_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        pce_dst_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        pce_dst_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        enable_no_path= {true|false}

        PCE SRP Info

        srp_auto_gen_id= {true|false}
        srp_id= <0-4294967295>
        srp_id_step= <0-4294967295>

        PCC LSP Info

        lsp_auto_gen_id= {true|false}
        plsp_id= <0-1048575>
        plsp_id_step= <0-4294967295>
        aflag= {true|false}
        init_lsp_state= {down|up|active|goingdown|goingup|reserved1|reserved2|reserved3}
        ipv4_tunnel_addr= <a.b.c.d>
        ipv4_tunnel_addr_step= <a.b.c.d>
        ipv6_tunnel_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        ipv6_tunnel_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        lsp_id= <0-65535>
        lsp_id_step= <0-65535>
        tunnel_id= <0-65535>
        tunnel_id_step= <0-65535>
        ipv4_ex_tunnel_id= <a.b.c.d>
        ipv4_ex_tunnel_id_step= <a.b.c.d>
        ipv6_ex_tunnel_id= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        ipv6_ex_tunnel_id_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        ipv4_tunnel_end_addr= <a.b.c.d>
        ipv4_tunnel_end_addr_step= <a.b.c.d>
        ipv6_tunnel_end_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        ipv6_tunnel_end_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>

        PCE LSP Info

        aflag= {true|false}
        init_lsp_state= {down|up|active|goingdown|goingup|reserved1|reserved2|reserved3}

        PCC RP Object

        rp_pflag= {true|false}
        rp_iflag= {true|false}
        rp_auto_gen_id= {true|false}
        requestid= <0-4294967295>
        requestid_step= <0-4294967295>
        priority= <0-7>
        rp_flags= {pcep_rp_flag_bidirectional|pcep_rp_flag_strict_loose|0}

        PCC Endpoint Object

        endpoint_pflag= {true|false}
        endpoint_iflag= {true|false}
        ni_value= {no_satisfying_path|pce_chain_broken}
        nopath_cflag= {true|false}
        nopath_included= {received|suggested}
        nopath_vector_tlv_flag= {none|pce_unavailable|unknown_destination|unknown_source}

        PCEP Custom TLV

        tlv_type=  <0-0x3FFF>
        tlv_value=   <0x0-0xff>
        customtlv_handle=  <custom_tlv_handle>

        PCC/PCE Command Edit Options

        included_ero_handle= <ero_handle>
        included_rro_handle= <rro_handle>
        included_bw_handle= <bw_object_handle>
        included_metric_handle= <metric_object_handle>
        included_lspa_handle=  <lspa_object_handle>
        include_ero= {true|false}
        include_rro=   {true|false}
        include_bw=  {true|false}
        include_metric= {true|false}
        include_lspa= {true|false}
        include_lsp= {true|false}
        include_srp=  {true|false}
        include_rp=  {true|false}
        include_endpoints=  {true|false}
        cmd_use_custom_message= {true|false}
        lsp_msg_obj_type= {custom|rp|nopath|endpoints|bandwidth|metric|ero|rro|lspa|lsp|srp}
        lsp_msg_obj_handle= <PCEP custom object handle>

        PCC ERO Object

        ipv4_ero_pflag= {true|false}
        ipv4_ero_iflag= {true|false}
        ipv6_ero_pflag= {true|false}
        ipv6_ero_iflag= {true|false}

        PCC/PCE ERO Update Object

        ipv4_update_ero_pflag= {true|false}
        ipv4_update_ero_iflag= {true|false}
        ipv6_update_ero_pflag= {true|false}
        ipv6_update_ero_iflag= {true|false}

        PCC/PCE Explicit Parameters for ERO/ERO Update Object

        ipv4_explicit_start_ip_list= <a.b.c.d>
        ipv4_explicit_prefix_length= <0-255>
        ipv4_explicit_route_type= {pcep_ero_route_type_loose|pcep_ero_route_type_strict}
        ipv6_explicit_start_ip_list= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        ipv6_explicit_prefix_length= <type:u8>
        ipv6_explicit_route_type= {pcep_ero_route_type_loose|pcep_ero_route_type_strict}

        SR ERO Subobject

        sr_ero_pflag= {true|false}
        sr_ero_iflag= {true|false}
        sr_route_type= {pcep_ero_route_type_loose|pcep_ero_route_type_strict}
        explicit_sid_type= {ipv4_node_id|ipv6_node_id|ipv4_adjacency|ipv6_adjacency|
                             unnumbered_adjacency_ipv4_node_ids}]
        explicit_mflag= {true|false}
        explicit_cflag= {true|false}
        explicit_sflag= {true|false}
        explicit_fflag= {true|false}
        explicit_sid_label=  <16-1048575>
        explicit_sid_tc= <0-7>
        explicit_sid_sflag= {true|false}
        explicit_sid_ttl= <0-255>
        explicit_ipv4_address= <a.b.c.d>
        explicit_ipv6_address= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        explicit_local_ipv4_address= <a.b.c.d>
        explicit_remote_ipv4_address= <a.b.c.d>
        explicit_local_ipv6_address= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        explicit_remote_ipv6_address= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        explicit_local_node_id= <0-4294967295>
        explicit_local_interface_id= <0-4294967295>
        explicit_remote_node_id= <0-4294967295>
        explicit_remote_interface_id= <0-4294967295>

        PCC RRO Object

        rro_flags= {pcep_rro_flag_local_protection_available|
                    pcep_rro_flag_local_protection_in_use|
                    pcep_rro_flag_bandwidth_protection|
                    pcep_rro_flag_node_protection|pcep_rro_flag_node_id}]
        ipv4_rro_pflag= {true|false}
        ipv6_rro_pflag= {true|false}
        ipv4_rro_iflag= {true|false}
        ipv6_rro_iflag= {true|false}

        PCC Reported Parameters for RRO Object

        ipv4_reported_start_ip_list= <a.b.c.d>
        ipv4_reported_prefix_length= <0-255>
        ipv6_reported_start_ip_list= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        ipv6_reported_prefix_length= <0-255>

        PCC SR RRO Subobject

        sr_rro_pflag= {true|false}
        sr_rro_iflag= {true|false}
        reported_sid_type= {ipv4_node_id|ipv6_node_id|ipv4_adjacency|
                             ipv6_adjacency|unnumbered_adjacency_ipv4_node_ids}]
        reported_mflag= {true|false}
        reported_cflag= {true|false}
        reported_sflag= {true|false}
        reported_fflag= {true|false}
        reported_sid_label= <16-1048575>
        reported_sid_tc= <0-7>
        reported_sid_s_flag= {true|false}
        reported_sid_ttl= <0-255>
        reported_ipv4_address= <a.b.c.d>
        reported_ipv6_address= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        reported_local_ipv4_address= <a.b.c.d>
        reported_remote_ipv4_address= <a.b.c.d>
        reported_local_ipv6_address= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        reported_remote_ipv6_address= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        reported_local_node_id= <0-4294967295>
        reported_local_interface_id= <0-4294967295>
        reported_remote_node_id= <0-4294967295>
        reported_remote_interface_id= <0-4294967295>

        PCC BW Object

        bw_pflag= {true|false}
        bw_iflag= {true|false}
        bw_bandwidth= <0-4294967295>

        PCE BW Object

        bw_update_pflag= {true|false}
        bw_update_iflag= {true|false}
        bw_update_bandwidth= <0-4294967295>

        PCC/PCE Metric Object

        metric_cflag= {true|false}
        metric_bflag= {true|false}
        metric_type= {igp_metric|te_metric|hop_counts}
        metric_value= <0-4294967295>

        metriclist_pflag= {true|false}
        metriclist_iflag= {true|false}
        metriclist_update_pflag= {true|false}
        metriclist_update_iflag= {true|false}

        LSPA Object

        lspa_pflag= {true|false}
        lspa_iflag= {true|false}
        lspa_exclude_any= <0-4294967295>
        lspa_include_any= <0-4294967295>
        lspa_include_all= <0-4294967295>
        lspa_setup_prio=  <0-7>
        lspa_holding_prio= <0-7>
        lspa_lflag= {true|false}
        lspa_affinities_flag= {true|false}

        LSPA Update Object

        lspa_update_pflag= {true|false}
        lspa_update_iflag= {true|false}
        lspa_update_exclude_any= <0-4294967295>
        lspa_update_include_any= <0-4294967295>
        lspa_update_include_all= <0-4294967295>
        lspa_update_setup_prio=  <0-7>
        [_lspa_update_holding_prio <0-7>]
        lspa_update_lflag= {true|false}
        lspa_update_affinities_flag= {true|false}

        PCEP Custom Object

        object_length= <0-65535>
        custom_pflag= {true|false}
        custom_iflag=  {true|false}
        object_class=  <0-255>
        object_data=  <0-255>
        reserved_flags= <NUMERIC>
        object_class_selector= {custom|open|rp|nopath|endpoints|bandwidth|
                           metric|ero|rro|lspa|iro|svec|notification|error|
                           loadbalancing|close|lsp|srp}
        auto_cal_object_length= {true|false}
        custom_obj_type= <0-15>

        PCEP Custom Message

        open_msg_obj_type=  {custom|open}
        open_msg_obj_handle= <PCEP custom object handle>
        keepalive_msg_obj_type=  {custom|open}
        keepalive_msg_obj_handle= <PCEP custom object handle>

        PCEP Custom PDU

         custom_pdu= <0x0-0xff>

Arguments:

  modify
                  Specifies the action to perform on the test port. This argument is
                  `Mandatory`. Possible values are::

                   create      Creates PCC/PCE devices and the related LSPs

                   modify      Modifies the PECP device or LSP objects configurations based
                               on the handles provided. See Return Values for more
                               information on the handles returned.

                   delete      Deletes the specified LSP


  PCEP Sessions Parameters

  pcep_device_role
                  Specifies the role of the device to create. Possible values are
                  PCC and PCE::


                   PCE     Path Computation Element, an entity (component, application,
                           or network node) that is capable of computing a network
                           path or route based on a network graph and applying
                           computational constraints.

                   PCC     Path Computation Client, any client application requesting
                           a path computation to be performed by a Path Computation
                           Element.

                  The default value is PCE.

  ttl
                  Specifies the value for the TimeTo-Live field in the IP header.
                  Possible values range from 1 to 255. The default value is 64.

  ipv6_traffic_class
                  Specifies the traffic class value in hex. The default value is 0.
                  This argument is valid when ip_version is set to ipv6.

  ip_version
                  Specifies the IP version. Possible values are ipv4 and ipv6. The
                  default value is ipv4.

  speaker_entity_id
                  Specifies the speaker entity ID used to maintain synchronization
                  for a PCEP session. The value must be a string of 0 to 32
                  characters. The default is ""(empty string).

  ipv4_tos
                  Specifies the ToS value for IPv4 in hex. Possible values range
                  from 0x00 to 0xFF. The default value is 0xC0.

  is_session_initiator
                  Specifies whether the emulated PCE attempts to initiate the
                  session. Possible values are true and false. If it is set to
                  true, the emulated PCE will initiate the session. When both sides
                  try to initiate a session, the one with the higher IP address
                  takes priority. The default value is false.

  custom_dst_port
                  Specifies the destination TCP port when is_fixed_dst_port is set
                  to false. The default value is 4189.

  is_fixed_dst_port
                  Determines whether to use the registered TCP port 4189 for PCEP
                  sessions. Possible values are true and false. If it is set
                  to true, Spirent HLTAPI will use the registered TCP port 4189 for
                  PCEP sessions. The default value is false.

  enable_negotiation
                  Determines whether to negotiate values for KEEPALIVE timers and
                  dead timers when the PCEP peer includes values that are out of
                  the configured range. Possible values are true and false. If it
                  is set to true, Spirent HLTAPI will negotiate values for the two
                  timers. The default value is true.

  open_delay
                  Number of seconds to wait before sending OPEN messages for a
                  session. Possible values range from 0 to 255. The default
                  value is 0.

  enable_stateful
                  Determines whether to to include a Stateful PCE Capability TLV in
                  the OPEN message. Possible values are true and false. If it is
                  set to true, the Stateful PCE Capability TLV will be included in
                  the OPEN message. The default value is true.


  use_custom_message
                  Enables/disables PCEP custom messages. Possible values are true
                  (enable) and false (disable). The default value is false.

  pcep_capability
                  Specifies the Stateful PCE Capability values. This argument is
                  available when enable_stateful is true. Use | to combine multiple
                  values if you want to specify more than one flag. Possible values
                  are described below::


                   LSP_UPDATE_CAPABILITY           When specified, it indicats that the
                                                   PCC allows modification of LSP
                                                   parameters, or the PCE is capable
                                                   of updating LSP parameters

                   LSP_INSTANTIATION_CAPABILITY    Enables LSP with initilization
                                                   capability

                  The default value is LSP_UPDATE_CAPABILITY.

  min_acc_keep_alive_timer
                  Specifies the minimum number of seconds for the KEEPALIVE timer.
                  Possible values range from 0 to 255. The default value is 0.

  max_acc_keepa_live_timer
                  Specifies the maximum number of seconds for the KEEPALIVE timer.
                  Possible values range from 0 to 255. The default value is 255.

  min_acc_dead_timer
                  Specifies the minimum number of seconds for the dead timer.
                  Possible values range from 0 to 255. The default value is 0.

  max_acc_dead_timer
                  Specifies the maximum number of seconds for the dead timer.
                  Possible values range from 0 to 255. The default value is 255.

  peer_ipv4_addr
                  IPv4 address of the PCE peer for the session

  peer_ipv4_addr_step
                  Specifies the step value to generate subsequent IPv4 addresses
                  for PCE devices on the same port. The value must be in IPv4
                  format. The default is 0.0.0.1.

  peer_ipv6_addr
                  IPv6 address of the PCE peer for the session

  peer_ipv6_addr_step
                  Specifies the step value to generate subsequent IPv6 addresses
                  for PCE devices on the same port. The value must be in IPv6
                  format. The default is 0000::1.

  pcep_session_ip_address
                  Specifies the source of the PCE session address. Possible values
                  are INTERFACE_IP and ROUTER_ID. The default is INTERFACE_IP.

  is_session_initiator
                  Determines whether the emulated PCE will attempt to initiate the
                  session. Possible values are::


                   true    Emulated PCE initiates the session
                   false    Emulated PCE listens for the peer to initiate the session

                  When both sides initiate a session, the one with the higher IP
                  address takes priority. The default value is true.

  is_fixed_src_port
                  Determines whether to use the registered TCP port 4189 for PCEP
                  sessions. Possible values are true and false. If it is set
                  to true, Spirent HLTAPI will use the registered TCP port 4189 for
                  PCEP sessions. The default value is false.

  keep_alive_timer
                  Number of seconds between transmissions of KEEPALIVE messages by
                  the emulated PCE, in the absence of transmission of any other PCE
                  packets. Possible values range from 0 to 65535. The default
                  value is 30.

  dead_timer
                  Number of seconds without traffic the peer should wait before
                  declaring the session dead. Possible values range from 0 to
                  65535. The default value is 120.

  enable_pc_results
                  Enables/disables displaying the details of the sending LSPs.
                  Possible values are true (enable) and false (disable). The
                  default value is false.

  authentication
                  Specifies the type of authentication to be used. Possible values
                  are::


                   NONE   No authentication
                   MD5    Use the MD5 key ID for authentication

                  The default value is NONE.

  password
                  Specifies the password used in the authentication. The value must
                  be in alphanumeric format. This argument is only valid when
                  authentication is set to MD5. The default value is Spirent.

  enable_init_lsp
                  Enables/disables Iflag in the Stateful Capability TLV. Possible
                  values are true (enable) and false (disable). The default value is
                  true.

  enable_segment_routing
                  Enables/disables the Segment Routing extension to PCEP. If it is
                  set to true, the SR PCE Capability TLV is included in the OPEN
                  message and the PATHSETUP-TYPE TLV is included in the Stateful
                  PCE Request Parameters (SRP) object.

  max_sid_depth
                  Maximum number of nested segment IDs. This argument is only valid
                  when enable_segment_routing is set to true. Possible values
                  range from 0 to 255. The default value is 0. When this value is
                  changed, upon applying, the PCEP session is closed and
                  reestablished.

 PCEP Global Options

  session_out_standing
                  Maximum number of sessions simultaneously started by the Spirent
                  TestCenter port. Possible values range from 1 to 65535. The
                  default value is 100.

  session_retry_count
                  Maximum number of times the system tries to establish a TCP
                  connection using the PCEPregistered TCP port before going back
                  to the IDLE state. Possible values range from 1 to 65535. The
                  default value is 100.

  session_retry_interval
                  Number of seconds to wait before resending a TCP message.
                  Possible values range from 1 to 300. The default value is 5.

  lsp_per_message
                  Maximum number of Label Switched Paths (LSPs) in one TCP message.
                  Possible values range from 1 to 2000. The default value is 100.

  tcp_interval
                  Number of seconds to wait before sending another LSP TCP message.
                  Possible values range from 1 to 1000. The default value is 500.

  packet_align_to_mtu
                  Determines whether to combine as many LSPs as will fit in the
                  MTU. Possible values are true and false. The default value is
                  false.

 The following examples configure and enable PCEP (PCE and PCC) on
 the created raw devices::


      set dev_handle1 [keylget device_ret1 handle]
      set dev_handle2 [keylget device_ret2 handle]

      set device_ret_pcep1 [::emulation pcep config
                  mode                         create
                  handle                       $dev_handle1
                  pcep_device_role             PCE
                  state                        NONE
                  pcep_mode                    ACTIVE
                  ip_version                   IPV4
                  peer_ipv4_addr               null
                  peer_ipv4_addr_step          0.0.0.1
                  peer_ipv6_addr               null
                  peer_ipv6_addr_step          0000::1
                  pcep_session_ip_address      INTERFACE_IP
                  is_session_initiator         true
                  is_fixed_src_port            false
                  keep_alive_timer             40
                  dead_timer                   150
                  enable_pc_results            false
                  authentication               MD5
                  password                     Spirent
                  enable_init_lsp              true
                  enable_segment_routing       true
                  session_out_standing         500
                  session_retry_count          50
                  session_retry_interval       50
                  lsp_per_message              500
                  tcp_interval                 600
                  packet_align_to_mtu          true \
                ]

 Sample Output::


   # This will return a PCE handle.
   {pcep_handle pcepprotocolconfig1} {status 1}
          keylget device_ret_pcep1 pcep_handle pcep_hnd1

 To modify the PCE configurations::


   set device_ret_pcep1 [::emulation pcep config
             mode                         modify
             handle                        $pcep_hnd1
             pcep_session_ip_address       ROUTER_ID
             keep_alive_timer              40
             dead_timer                    150
             enable_pc_results             false
             authentication                NONE
             enable_init_lsp               false
             enable_segment_routing        false
             session_out_standing          500
             session_retry_count           50
             session_retry_interval        50
             lsp_per_message               500
             tcp_interval                 600
             packet_align_to_mtu          false \
             ]

 To enable the PCC device::


   set device_ret_pcep2 [::emulation pcep config
             mode                         create
             handle                        $dev_handle2
             pcep_device_role              PCC
             state                         NONE
             pcep_mode                     ACTIVE
             ip_version                    IPV4
             peer_ipv4_addr                null
             peer_ipv4_addr_step           0.0.0.1
             peer_ipv6_addr                null
             peer_ipv6_addr_step           0000::1
             pcep_session_ip_address       INTERFACE_IP
             is_session_initiator         true
             is_fixed_src_port             false
             keep_alive_timer              30
             dead_timer                    130
             enable_pc_results             false
             authentication                MD5
             password                      Spirent
             sync_timer                    60
             enable_init_lsp               true
             enable_segment_routing        true
             max_sid_depth                 1
             session_out_standing          400
             session_retry_count           20
             session_retry_interval        20
             lsp_per_message               200
             tcp_interval                 300
             packet_align_to_mtu          true \
             ]

 Sample Output::


    # This will return a PCC handle (pcep_handle).
    {pcep_handle pcepprotocolconfig2} {status 1}

    keylget device_ret_pcep2 pcep_handle pcep_hnd2

 PCC LSP Parameters (Use this group of arguments to configure PCC Label Switched
 Paths (LSPs). Multiple blocks of LSPs can be configured in the PCC LSP
 configuration.)

  delegate_with_sync
                  When enabled, Spirent HLTAPI will automatically delegate and
                  synchronize control of the LSP to the PCE when the related
                  session is up. Possible values are true (enable) and false
                  (disable). The default value is false. This argument is valid
                  when enable_delegate is true and -pcc_characteristic is
                  ENABLE_SYNCHRONIZATION.

  path_setup_type
                  Specifies the path setup type. Possible values are::


                   rsvp        RSVP
                   sr          Segment Routing

                  The default value is rsvp.

  pcc_lspcount
                  Number of PCC LSPs to create. Possible values range from 1 to
                  65535. The default value is 1.

  pcc_symbolic_name
                  Specifies a symbolic name or a wildcard pattern for creating a
                  list of symbolic names. The value must be a string of 1 to 32
                  characters. The default value is PLSP_@b.

  pcc_characteristic
                  Specifies the method to initiate a PCC LSP. Possible values are
                  described below::


                   Report                  The LSPs are reserved at startup but are
                                           not involved in synchronization

                   ALLOW_PCE_INIT          The LSPs are not reserved, but will
                                           wait for the PCE to initiate them at
                                           startup

                   ENABLE_SYNCHRONIZATION  The LSPs are reserved at startup and
                                           participate in synchronization after the
                                           session is established

                   ENABLE_REQUEST          The LSPs are not reserved at startup, but
                                           the PCE participates in synchronization
                                           after the session is established and can
                                           delegate LSPs via the report message

                  The default value is Report.

  enable_delegate
                  Determines whether to automatically delegate control of the LSP
                  to the PCE when the related session is up. This argument is
                  available when pcc_characteristic is set to Report,
                  ENABLE_SYNCHRONIZATION, or ENABLE_REQUEST. Possible values are
                  true and false. The default is true.


  pcc_src_ipv4_addr
                  Specifies the starting IPv4 source address for the
                  PCC. The default value is 192.85.1.1.

  pcc_src_ipv4_addr_step
                  Specifies the step value to create additional IPv4 source
                  addresses for PCCs. The value must be in IPv4 format. The default
                  is 0.0.0.1.

  pcc_dst_ipv4_addr
                  Specifies the starting IPv4 destination address for
                  the PCC. The default value is 193.85.1.1.

  pcc_dst_ipv4_addr_step
                  Specifies the step value to create additional IPv4 destination
                  addresses for PCCs. The value must be in IPv4 format. The default
                  is 0.0.0.1.

  pcc_src_ipv6_addr
                  Specifies the starting IPv6 source address for the
                  PCC. The default value is 2000::1.


  pcc_src_ipv6_addr_step
                  Specifies the step value to create additional IPv6 source
                  addresses for PCCs. The value must be in IPv6 format. The default
                  is ::1.

  pcc_dst_ipv6_addr
                  Specifies the starting IPv6 destination address for
                  the PCC. The default value is 2000::1.

  pcc_dst_ipv6_addr_step
                  Specifies the step value to create additional IPv6 destination
                  addresses for PCCs. The value must be in IPv6 format. The default
                  is ::1.

 PCE LSP Parameters (Use this group of arguments to configure PCE LSPs. Multiple
 blocks of LSPs can be configured in the PCE LSP configuration.)

  path_setup_type
                  Specifies the path setup type. Possible values are::


                   rsvp        RSVP
                   sr          Segment Routing

                  The default value is rsvp.

  pce_lspcount
                  Number of PCE LSPs to create. Possible values range from 1 to
                  65535. The default value is 1.

  pce_symbolic_name
                  Specifies a symbolic name or a wildcard pattern to create a list
                  of symbolic names for PCEs. The value must be a string of 1 to 32
                  characters. The default value is PLSP_@s.

  pce_characteristic
                  Specifies the method to initiate a PCC LSP. Possible values are
                  described below::


                   ENABLE_UPDATE       LSPs are not reserved at startup, but wait for
                                       the PCC to delegate them

                   ENABLE_INIT         LSPs are not reserved. After a session is
                                       established and the synchronization completes,
                                       the PCE can initiate LSPs by issuing a
                                       PCInitiate message.

                   ENABLE_REPL         LSPs are not reserved. After a session is
                                       established and the synchronization completes,
                                       the PCC can request LSPs.

                  The default value is ENABLE_UPDATE.

  enable_update
                  Determines whether to automatically update control of the LSP
                  to the PCE when the related session is up. Possible values are
                  true and false. The default is true.

  pce_src_ipv4_addr
                  Specifies the starting IPv4 source address for the PCE. The
                  default value is 192.85.1.1.

  pce_src_ipv4_addr_step
                  Specifies the step value to create additional IPv4 source
                  addresses for PCEs. The value must be in IPv4 format. The default
                  is 0.0.0.1.

  pce_dst_ipv4_addr
                  Specifies the starting IPv4 destination address for the PCE. The
                  default value is 193.85.1.1.

  pce_dst_ipv4_addr_step
                  Specifies the step value to create additional IPv4 destination
                  addresses for PCEs. The value must be in IPv4 format. The default
                  is 0.0.0.1.

  pce_src_ipv6_addr
                  Specifies the starting IPv6 source address for the PCE. The
                  default value is 2000::1.

  pce_src_ipv6_addr_step
                  Specifies the step value to create additional IPv6 source
                  addresses for PCEs. The value must be in IPv6 format. The default
                  is ::1.

  pce_dst_ipv6_addr
                  Specifies the starting IPv6 destination address for the PCE. The
                  default value is 2001::1.

  pce_dst_ipv6_addr_step
                  Specifies the step value to create additional IPv6 destination
                  addresses for PCEs. The value must be in IPv6 format. The default
                  is ::1.

  enable_no_path
                  Determines whether to specify possible reasons for why no path
                  could be found. This argument is available when
                  pce_characteristic is set to ENABLE_REPLY. Possible values are
                  true and false. The default is false.

 The following example adds an LSP on the PCE device specified by the PCE
 handle::


    set pce_lsp [::emulation pcep config
              mode                         create
              handle                     $pcep_hnd1 \   # PCE handle
              pce_lspcount               1
              pce_symbolic_name          PLSP_@b
              pce_characteristic         ENABLE_REPLY
              enable_update              true
              pce_src_ipv4_addr          1.1.1.1
              pce_src_ipv4_addr_step     0.0.0.1
              pce_dst_ipv4_addr          2.2.2.2
              pce_dst_ipv4_addr_step     0.0.0.1
              enable_no_path             false
              ]

 Sample Output::


   # This will return the PCE LSP handle, Stateful PCE Request Parameters
   (SRP) handle, and Command Edit handles.

   {srp_hnd pcepsrpobject1} {pce_lsp_hnd pcelspconfig1} {startcommand_hnd
   {startdeviceupdatecommandconfig1 startdevicereplycommandconfig1}} {status 1}

   keylget pce_lsp pce_lsp_hnd lsp_handle_pce

 The following example modifies the LSP configuration specified
 by lsp_handle_pce::


      set pce_lsp [::emulation pcep config
              mode                        modify
              handle                     $lsp_handle_pce
              pce_lspcount               1
              pce_symbolic_name          PLSP_@b22
              enable_update              false
              pce_src_ipv4_addr          4.4.4.4
              pce_src_ipv4_addr_step     0.0.0.1
              pce_dst_ipv4_addr          3.3.3.3
              pce_dst_ipv4_addr_step     0.0.0.1
              pce_dst_ipv6_addr_step     ::1
              enable_no_path             true
              ]

 The following example adds an LSP on the PCC device specified by pcep_hnd1::


      set pcc_lsp [::emulation pcep config
              mode                         create
              handle                     $pcep_hnd1 \ #PCC handle
              pcep_device_role            PCC
              pcc_lspcount                1
              pcc_symbolic_name           PLSP_@b
              pcc_characteristic          ENABLE_REQUEST
              enable_delegate             true
              pcc_src_ipv4_addr           1.1.1.1
              pcc_src_ipv4_addr_step      0.0.0.1
              pcc_dst_ipv4_addr           2.2.2.2
              pcc_dst_ipv4_addr_step      0.0.0.1
              pcc_src_ipv6_addr           2000::1
              pcc_src_ipv6_addr_step      ::1
              pcc_dst_ipv6_addr           2001::1
              pcc_dst_ipv6_addr_step      ::1
              ]

 Sample Output::


   # This will return PCC related object handles and startcommand_hnd handles.
   {startcommand_hnd {startdevicerequestcommandconfig1
   startdevicedelegatecommandconfig1}} {rp_hnd pceprpobject1} {lsp_hnd
   pceplspobject1} {pcc_lsp_hnd pcclspconfig1} {status 1}

 PCE SRP Info (Use this group of arguments to configure SRP)

  srp_auto_gen_id
                  Determines whether to configure SRP IDs automatically.
                  Possible values are true and false. If it is set to false, you
                  must configure SRP IDs manually. The default is true.

  srp_id
                  Specifies the starting SRP ID. This argument is available when
                  srp_auto_gen_id is set to false. The default value is 1.

  srp_id_step
                  Specifies the step value to generate subsequent SRP IDs. This
                  argument is available when srp_auto_gen_id is false. The default
                  value is 1.

 The following example configures PCE SRP::


     set pce_srp_info [::emulation pcep config
                     mode                create
                     handle             $lsp_handle_pce
                     srp_auto_gen_id    false
                     srp_id             10
                     srp_id_step        2
             ]

 Sample Output::


        {srp_hnd pcepsrpobject1} {status 1}

 PCC LSP Info (Use this group of arguments to configure the LSP object and the LSP
 Identifiers TLV.)

  lsp_auto_gen_id
                  Determines whether to configure PCEPspecific identifiers for the LSP
                  (PLSPIDs) automatically. Possible values are true and false. If
                  it is set to false, you must configure PLSPIDs manually. The
                  default is true.

  plsp_id
                  Specifies the starting PLSPID. This argument is available when
                  srp_auto_gen_id is set to false. Possible values range from 0 to
                  1048575. The default value is 1.

  plsp_id_step
                  The step value to generate subsequent PLSPIDs. This argument is
                  available when lsp_auto_gen_id is false. Possible values range
                  from 0 to 4294967295. The default value is 1.

  aflag
                  Determines whether to mark the LSP as an administrative LSP.
                  Possible values are true and false. If it is set to true, the LSP
                  will be marked as administrative.

  init_lsp_state
                  Initial state of the LSP. Possible values are described below::


                   DOWN        LSP is down
                   UP          LSP is up
                   ACTIVE      LSP is active
                   GOINGDOWN   LSP is in the process of going down
                   GOINGUP     LSP is in the process of going up
                   RESERVED1   Reserved state value
                   RESERVED2   Reserved state value
                   RESERVED3   Reserved state value

                  The default value is GOINGUP.

  ipv4_tunnel_addr
                  IPv4 source address for the tunnel. The default value is
                  192.85.1.1.

  ipv4_tunnel_addr_step
                  IPv4 step value to create the next IP tunnel sender  address. The
                  default value is 0.0.0.1.

  ipv6_tunnel_addr
                  IPv6 source address for the tunnel. The default value is 2000::1.

  ipv6_tunnel_addr_step
                  Step value to create the next IPv6 tunnel sender address. The value
                  must be in IPv6 format. The default value is ::1.

  lsp_id
                  ID of the first LSP. Possible values range from 0 to 65535. The
                  default value is 1.

  lsp_id_step
                  Step value to create the next LSP ID. Possible values range from
                  0 to 65535. The default value is 1.

  tunnel_id
                  ID of the first tunnel. Possible values range from 0 to 65535.
                  The default value is 1.

  tunnel_id_step
                  Step value to create the next tunnel ID. Possible values range
                  from 0 to 65535. The default value is 1.

  ipv4_ex_tunnel_id
                  IPv4 extended tunnel ID. The value must be in IPv4 format. The
                  default value is 10.0.0.1.

  ipv4_ex_tunnel_id_step
                  Step value to create the next extended tunnel ID. The value
                  must be in IPv4 format. The default value is 0.0.0.1.

  ipv6_ex_tunnel_id
                  Ipv6 extended tunnel ID. The value
                  must be in IPv6 format. The default value is 2000:1::1.

  ipv6_ex_tunnel_id_step
                  Step value to create the next extended tunnel ID. The value
                  must be in IPv6 format. The default value is ::1.

  ipv4_tunnel_end_addr
                  IPv4 destination address for the tunnel endpoint. The default
                  value is 193.85.1.1.

  ipv4_tunnel_end_addr_step
                  Step value to create the next IP tunnel endpoint address.
                  The value must be in IPv4 format. The default value is 0.0.0.1.

  ipv6_tunnel_end_addr
                  Ipv6 destination address for the tunnel endpoint. The value must
                  be in IPv6 format. The default value is  2001::1.

  ipv6_tunnel_end_addr_step
                  Step value to create the next IPv6 tunnel endpoint address. The
                  value must be in IPv6 format. The default value is ::1.

 The following example configures the LSP object on the specified LSP handle::


    set pcc_lsp_info [::emulation pcep config
               mode                           create
               handle                         $lsp_handle_pcc
               lsp_auto_gen_id                true
               plsp_id                        1
               plsp_id_step                   1
               aflag                          true
               init_lsp_state                 UP
               ipv4_tunnel_addr               1.1.1.1
               ipv4_tunnel_addr_step          0.0.0.1
               ipv6_tunnel_addr               2000::1
               ipv6_tunnel_addr_step          ::1
               lsp_id                         1
               lsp_id_step                    1
               tunnel_id                      1
               tunnel_id_step                 1
               ipv4_ex_tunnel_id              10.0.0.1
               ipv4_ex_tunnel_id_step         0.0.0.1
               ipv4_tunnel_end_addr           2.2.2.2
               ipv4_tunnel_end_addr_step      0.0.0.1
               ]

 Sample Output::


       {lsp_hnd pceplspobject1} {status 1}

 PCE LSP Info

  aflag
                  Determines whether to mark the LSP as an administrative LSP.
                  Possible values are true and false. If it is set to true, the LSP
                  will be marked as administrative.

  init_lsp_state
                  Initial state of the LSP. Possible values are described below::


                   DOWN        LSP is down
                   UP          LSP is up
                   ACTIVE      LSP is active
                   GOINGDOWN   LSP is in the process of going down
                   GOINGUP     LSP is in the process of going up
                   RESERVED1   Reserved state value
                   RESERVED2   Reserved state value
                   RESERVED3   Reserved state value

                  The default value is GOINGUP.

 PCC RP Object (Use this group of arguments to configure the Request Parameters
 object of PCC. You must set pcc_characteristic to ENABLE_REQUEST.)

  rp_pflag
                  Specifies the value of the ProcessingRule (P) flag for the RP
                  object. The P flag allows a PCC to specify in a PC Request (PCReq)
                  message sent to a PCE whether the object must be taken into
                  account by the PCE during path computation or is just optional.
                  Possible values are true and false. The default value is true.

  rp_iflag
                  Specifies the value of the Ignore flag for the RP object. The I
                  flag is used by a PCE in a PC Reply (PCRep) message to indicate
                  to a PCC whether an optional object was processed.
                  Possible values are true and false. The default value is false.

  rp_auto_gen_id
                  Determines whether to automatically configure the RP ID.
                  Possible values are true and false. If it is set to false, you
                  must configure RP IDs manually. The default value is true.

  requestid
                  Specifies the starting RP ID. This argument is available when
                  rp_auto_gen_id is set to false. The default value is 1.

  requestid_step
                  Specifies the step value to generate subsequent request IDs.
                  The default value is 1.

  priority
                  Specifies the value of the Priority flag for the RP object. This
                  flag is used by the requesting PCC to specify to the PCE the
                  request's priority. Possible values range from 0 to 7. The
                  default value is 0.

  rp_flags
                  Specifies flag options for the RP object. Use | to combine
                  multiple values if you want to specify more than one flag.
                  Possible values are described below::


                   PCEP_RP_FLAG_BIDIRECTIONAL      Bidirectional (B) flag

                   PCEP_RP_FLAG_STRICT_LOOSE       Strict/Loose (O) flag

                   0                               No flag specified

                  The default value is 0.

 PCC EndPoints Object (Use this group of arguments to configure the PCC
 EndPoints object. You must set -pcc_characteristic to ENABLE_REQUEST).

  endpoint_pflag
                  Specifies the value of the ProcessingRule flag for the
                  EndPoints object. Possible values are true and false. The
                  default value is true.

  endpoint_iflag
                  Specifies the value of the Ignore flag for the EndPoints
                  object. Possible values are true and false. The default value is
                  false.

 PCE NoPath Object (Use this group of arguments to configure the PCE NoPath object.
 You must set pcc_characteristic to ENABLE_REPLY).

  ni_value
                  Specifies the Nature of Issue (NI) field for the NoPath object.
                  Possible values are::


                   NO_SATISFYING_PATH   No path satisfying the set of constraints
                                        could be found

                   PCE_CHAIN_BROKEN     PCE chain broken

                  The default value is NO_SATISFYING_PATH.


  nopath_cflag
                  Specifies the Constraints (C) flag of the NoPath object.
                  Possible values are true and false. When set to true, the PCE
                  indicates the set of unsatisfied constraints (reasons why a path
                  could not be found) in the PCRep message by including the
                  relevant PCEP objects. When set to false, no failing constraints
                  are specified. The default value is false.

  nopath_included
                  Specifies the method to include the unsatisfied PCEP objects.
                  This argument is only valid when nopath_cflag is set to true.
                  Possible values are RECEIVED and SUGGESTED. The default value is
                  RECEIVED.

  nopath_vector_tlv_flag
                  Specifies the value of the NoPath-Vector TLV for the NoPath
                  object. Possible values are described below::


                   PCE_UNAVILABLE           PCE currently unavailable
                   UNKNOWN_DESTINATION      Unknown destination
                   UNKNOWN_SOURCE           Unknown source
                   NONE                     None

                  The default value is NONE.

 PCC ERO Object (Use this group of arguments to configure the Explicit Route Object.)

  ipv4_ero_pflag
                  Specifies the value of the ProcessingRule flag for the IPv4 ERO
                  object. Possible values are true and false. The default value is
                  true.

  ipv4_ero_iflag
                  Specifies the value of the Ignore flag for the IPv4 ERO object.
                  Possible values are true and false. The default value is false.

  ipv6_ero_pflag
                  Specifies the value of the ProcessingRule flag for the IPv6 ERO
                  object. Possible values are true and false. The default value is
                  true.

  ipv6_ero_iflag
                  Specifies the value of the Ignore flag for the IPv6 ERO object.
                  Possible values are true and false. The default value is false.

 PCC/PCE ERO Update Object (Use this group of arguments to configure the
 ERO update object.)

  ipv4_update_ero_pflag
                  Specifies the value of the ProcessingRule flag for the IPv4 ERO
                  update object. Possible values are true and false. The default
                  value is true.

  ipv4_update_ero_iflag
                  Specifies the value of the Ignore flag for the IPv4 ERO update
                  object. Possible values are true and false. The default value is
                  true.

  ipv6_update_ero_pflag
                  Specifies the value of the ProcessingRule flag for the IPv6 ERO
                  update object. Possible values are true and false. The default
                  value is true.

  ipv6_update_ero_iflag
                  Specifies the value of the Ignore flag for the IPv6 ERO object.
                  Possible values are true and false. The default value is false.

 PCC/PCE ERO Explicit Parameters (Use this group of arguments to configure the
 explicit parameters of ERO/ERO update object.)

  ipv4_explicit_start_ip_list
                  Specifies the IP address of the next hop for the IPv4 ERO/ERO
                  update object. The value must be in IPv4 format. The default
                  value is 192.0.1.0.

  ipv4_explicit_prefix_length
                  Specifies the prefix length of the IP routes in the block of
                  IPv4 ERO/ERO update objects. Possible values range from 0 to 255.
                  The default value is 24.

  ipv4_explicit_route_type
                  Specifies the type of explicit routes to be included in the
                  IPv4 ERO/ERO update object. Possible values are:

                  PCEP_ERO_ROUTE_TYPE_LOOSE
                                              Two nodes need not be adjacent.
                                              IGP can be used to determine the best
                                              path to the loose hop.

                  PCEP_ERO_ROUTE_TYPE_STRICT
                                              Two nodes must be adjacent to one
                                              another with no intermediate hops
                                              separating them.

                  The default value is PCEP_ERO_ROUTE_TYPE_STRICT.


  ipv6_explicit_start_ip_list
                  Specifies the IP address of the next hop for the IPv6 ERO/ERO
                  update object. The value must be in IPv6 format. The default
                  value is 2000::1.

  ipv6_explicit_prefix_length
                  Specifies the prefix length of the IP routes in the block of
                  IPv6 ERO/ERO update objects. The default value is 64.

  ipv6_explicit_route_type
                  Specifies the type of explicit routes to be included in the
                  IPv6 ERO/ERO update object. Possible values are::


                   PCEP_ERO_ROUTE_TYPE_LOOSE   Two nodes need not be adjacent.
                                               IGP can be used to determine the best
                                               path to the loose hop.

                   PCEP_ERO_ROUTE_TYPE_STRICT  Two nodes must be adjacent to one
                                               another with no intermediate hops
                                               separating them.

                  The default value is PCEP_ERO_ROUTE_TYPE_STRICT.

 SR ERO Subobject (Use this group of arguments to configure the Segment Routing
 ERO object, which is a subobject of ERO.)

  sr_ero_pflag
                  Specifies the value of the ProcessingRule flag for the SR ERO
                  object. Possible values are true and false. The default
                  value is true.

  sr_ero_iflag
                  Specifies the value of the Ignore flag for the SR ERO object.
                  Possible values are true and false. The default value is false.

  sr_route_type
                  Specifies the type of explicit routes to be included in the
                  SR ERO object. Possible values are:

                   PCEP_ERO_ROUTE_TYPE_LOOSE
                                               Two nodes need not be adjacent.
                                               IGP can be used to determine the best
                                               path to the loose hop.

                   PCEP_ERO_ROUTE_TYPE_STRICT
                                               Two nodes must be adjacent to one
                                               another with no intermediate hops
                                               separating them.

                  The default value is PCEP_ERO_ROUTE_TYPE_STRICT.

  explicit_sid_type
                  Specifies the type of the segment ID. Possible values are
                  described below::


                   IPV4_NODE_ID       IPv4 Network Access Identifier (NAI) node ID
                   IPV6_NODE_ID       IPv6 NAI node ID
                   IPV4_ADJACENCY     NAI local IPv4 address
                   IPV6_ADJACENCY     NAI local IPv6 address
                   UNNUMBERED_ADJACENCY_IPV4_NODE_IDS  NAI local node ID

                  The default value is IPV4_NODE_ID.

  explicit_mflag
                  Specifies the M bit to indicate whether the Segment ID (SID) is
                  an MPLS label stack entry with only the label value specified.
                  Possible values are true and false. The default value is true.

  explicit_cflag
                  Specifies the C bit in conjunction with the M flag to indicate
                  whether the SID is an MPLS label stack entry with all the fields
                  specified. Possible values are true and false. The default value
                  is false.

  explicit_sflag
                  Specifies the S bit to indicate whether the SID value in the
                  subobject body is null and  whether the PCC is responsible for
                  choosing the SID value. Possible values are true and false. The
                  default value is false.

  explicit_fflag
                  Specifies the F bit for the SR ERO object. Possible values are
                  true and false. The default value is false.

  explicit_sid_label
                  Specifies the segment ID for the SR ERO object.
                  This argument is valid when explicit_sflag is set to false.
                  Possible values range from 16 to 1048575. The default value is
                  16.

  explicit_sid_tc
                  Specifies the value of the traffic class field for the SR ERO
                  object. This argument is valid when explicit_sflag is false.
                  Possible values range from 0 to 7. The default value is 0.

  explicit_sid_sflag
                  Specifies the value of the MPLS Bottom Of Stack (BOS) flag to
                  indicate whether the label is the last in the stack. This
                  argument is valid when explicit_sflag is false. Possible values
                  are true and false. The default value is false.

  explicit_sid_ttl
                  Specifies the value of the TTL field for the SR ERO object.
                  Possible values range from 0 to 255. The default value is 255.

  explicit_ipv4_address
                  Specifies the value of the IPv4 NAI node ID for the SR ERO
                  object. This argument is valid when explicit_sid_type is set to
                  IPV4_NODE_ID. The value must be in IPv4 format. The default value
                  is 192.85.1.1.

  explicit_ipv6_address
                  Specifies the value of the IPv6 NAI node ID for the SR ERO
                  object. This argument is valid when explicit_sid_type is set to
                  IPV6_NODE_ID. The value must be in IPv6 format. The default value
                  is 2000::1.

  explicit_local_ipv4_address
                  Specifies the value of the NAI local IPv4 address for the SR ERO
                  object. This argument is valid when explicit_sid_type is set to
                  IPV4_ADJACENCY. The default value is 192.85.1.1.

  explicit_remote_ipv4_address
                  Specifies the value of the NAI remote IPv4 address for the SR ERO
                  object. The default value is 192.85.1.1.

  explicit_local_ipv6_address
                  Specifies the value of the NAI local IPv6 address for the SR ERO
                  object. This argument is valid when explicit_sid_type is set to
                  IPV6_ADJACENCY. The default value is 2000::1.

  explicit_remote_ipv6_address
                  Specifies the value of the NAI remote IPv6 address for the SR ERO
                  object. The default value is 2001::1.

  explicit_local_node_id
                  Specifies the value of the NAI local node ID. This argument is
                  valid when explicit_sid_type is set to
                  UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from 0
                  to 4294967295. The default value is 0.

  explicit_local_interface_id
                  Specifies the value of the NAI local interface node ID for the SR
                  ERO object. This argument is valid when explicit_sid_type is set
                  to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from
                  0 to 4294967295. The default value is 0.

  explicit_remote_node_id
                  Specifies the value of the NAI remote node ID for the SR ERO
                  object. This argument is valid when explicit_sid_type is set to
                  UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from 0
                  to 4294967295. The default value is 0.

  explicit_remote_interface_id
                  Specifies the value of the NAI remote interface node ID for the
                  SR ERO object. This argument is valid when explicit_sid_type is
                  set to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range
                  from 0 to 4294967295. The default value is 0.

 The following example adds a PCC ERO and its subobjects to the specified LSP::


      set pcc_ero_obj [::emulation pcep config
              mode                                 create
              handle                             $lsp_handle_pcc \
              ipv4_ero_pflag                       true
              ipv4_ero_iflag                        true
              ipv4_explicit_start_ip_list        192.0.1.0
              ipv4_explicit_prefix_length         24
              ipv4_explicit_route_type           PCEP_ERO_ROUTE_TYPE_LOOSE
              sr_ero_pflag                        true
              sr_ero_iflag                         true
              sr_route_type                        PCEP_ERO_ROUTE_TYPE_LOOSE
              explicit_sid_type                  IPV4_ADJACENCY
              explicit_mflag                     true
              explicit_cflag                     true
              explicit_sflag                     true
              explicit_fflag                     true
              explicit_sid_label                 16
              explicit_sid_tc                    0
              explicit_sid_sflag                 true
              explicit_sid_ttl                   255
              explicit_ipv4_address              192.85.1.1
              explicit_local_ipv4_address        192.85.1.1
              explicit_remote_ipv4_address       193.85.1.1
              explicit_local_node_id             0
              explicit_local_interface_id        0
              explicit_remote_node_id            0
              explicit_remote_interface_id       0
                  ]

 Sample Output::


      #This will return the PCC ERO and its subobjects handles.
      {ero_hnd {pcepipv4eroobject1 pcepsreroobject1}} {status 1}

 The following example adds a PCE ERO and its subobjects to the specified LSP::


      set pce_ero_update [::emulation pcep config
              mode                                 create
              handle                             $lsp_handle_pce
              ipv4_update_ero_pflag                "false false"
              ipv4_update_ero_iflag                "false true"
              ipv4_explicit_start_ip_list         "{192.85.0.1 192.85.1.1} 192.85.2.1"
              ipv4_explicit_prefix_length         "{16 24} 32"
              sr_ero_pflag                       true
              sr_ero_iflag                       true
              sr_route_type                      PCEP_ERO_ROUTE_TYPE_STRICT
              explicit_sid_type                  IPV4_ADJACENCY
              explicit_mflag                     true
              explicit_cflag                     true
              explicit_sflag                     true
              explicit_fflag                     true
              explicit_sid_label                 16
              explicit_sid_tc                    0
              explicit_sid_sflag                 true
              explicit_sid_ttl                   255
              explicit_ipv4_address              1.1.1.1
              explicit_local_ipv4_address        1.1.1.1
              explicit_remote_ipv4_address       2.2.2.2
              explicit_local_node_id             0
              explicit_local_interface_id        0
              explicit_remote_node_id            0
              explicit_remote_interface_id       0
              ]

 Sample Output::


      #This will return PCE ERO and its sub objects handles.
      {ero_hnd pcepsreroobject1} {status 1}

 PCC RRO object (Use this group of arguments to configure the Reported Route Object).

  rro_flags
                  Specifies RRO flags. Use | to combine
                  multiple values if you want to specify more than one flag.
                  Possible values are listed below::


                   0                              No flag specified
                   pcep_rro_flag_local_protection_available
                                                   Local Protection Available
                   pcep_rro_flag_local_protection_in_use
                                                   Local Protection in Use
                   pcep_rro_flag_bandwidth_protection
                                                   Bandwidth Protection
                   pcep_rro_flag_node_protection
                                                   Node Protection
                   pcep_rro_flag_node_id
                                                   Node ID

                  The default value is 0.

  ipv4_rro_pflag
                  Specifies the value of the ProcessingRule flag for the IPv4 RRO
                  object. Possible values are true and false. The default value is
                  true.

  ipv6_rro_pflag
                  Specifies the value of the ProcessingRule flag for the IPv6 RRO
                  object. Possible values are true and false. The default value is
                  true.

  ipv4_rro_iflag
                  Specifies the value of the Ignore flag for the IPv4 RRO object.
                  Possible values are true and false. The default value is false.

  ipv6_rro_iflag
                  Specifies the value of the Ignore flag for the IPv6 RRO object.
                  Possible values are true and false. The default value is false.

PCC Reported Parameters for RRO Object (Use this group of arguments to configure
reported parameters of the RRO.)

  ipv4_reported_start_ip_list
                  Specifies the IP address for the next hop of the IPv4 RRO object.
                  The default value is 192.0.1.0.

  ipv4_reported_prefix_length
                  Specifies the prefix length of the IP routes in the block of IPv4
                  RRO objects. Possible values range from 0 to 255.  The default
                  value is 24.

  ipv6_reported_start_ip_list
                  Specifies the IPv6 address for the next hop of the IPv6 RRO
                  object. The default value is 2000::1.

  ipv6_reported_prefix_length
                  Specifies the prefix length of the IP routes in the block of IPv6
                  RRO objects. Possible values range from 0 to 255. The default
                  value is 64.

 PCC SR RRO Subobject (Use this group of arguments to configure the SR RRO
 object, which is a subobject of ERO.)

  sr_rro_pflag
                  Specifies the value of the ProcessingRule flag for the SR RRO
                  object. Possible values are true and false. The default value is
                  true.

  sr_rro_iflag
                  Specifies the value of the Ignore flag for the SR RRO object.
                  Possible values are true and false. The default value is false.

  reported_mflag
                  Specifies the M bit to indicate that the SID value represents an
                  MPLS label stack entry with only the label value specified.
                  Possible values are true and false. The default value is true.

  reported_cflag
                  Specifies the C bit to indicate that the SID value represents an
                  MPLS label stack entry with all fields specified. Possible values
                  are true and false. The default value is false.

  reported_sid_type
                  Specifies the type of the segment ID for the SR RRO object.
                  Possible values are::


                   IPV4_NODE_ID       IPv4 Network Access Identifier (NAI) node ID
                   IPV6_NODE_ID       IPv6 NAI node ID
                   IPV4_ADJACENCY     NAI local IPv4 address
                   IPV6_ADJACENCY     NAI local IPv6 address
                   UNNUMBERED_ADJACENCY_IPV4_NODE_IDS  NAI local node ID

                  The default value is IPV4_NODE_ID.

  reported_mflag
                  Specifies the M bit to indicate that the SID value represents an
                  MPLS label stack entry with only the label value specified.
                  Possible values are true and false. The default value is true.

  reported_cflag
                  Specifies the C bit to indicate that the SID value represents an
                  MPLS label stack entry with all fields specified. Possible values
                  are true and false. The default value is false.

  reported_sflag
                  Specifies the value of the S flag for the SR RRO object. Possible
                  values are true and false. The default value is false.

  reported_fflag
                  Specifies the value of the F flag for the SR RRO object. Possible
                  values are true and false. The default value is true.

  reported_sid_label
                  Specifies the segment ID. This argument is valid when
                  explicit_sflag is set to false. Possible values range from 16 to
                  1048575. The default value is 16.

  reported_sid_tc
                  Specifies the value of the traffic class field for the SR RRO
                  object. This argument is valid when reported_sflag is false.
                  Possible values range from 0 to 7. The default value is 0.

  reported_sid_s_flag
                  Specifies the value of the MPLS Bottom Of Stack (BOS) flag to
                  indicate whether the label is the last in the stack. This
                  argument is valid when reported_sflag is false. Possible values
                  are true and false. The default value is false.

  reported_sid_ttl
                  Specifies the value of the TTL field for the SR RRO object.
                  Possible values range from 0 to 255. The default value is 255.

  reported_ipv4_address
                  Specifies the value of the IPv4 NAI node ID for the SR RRO
                  subobject. This argument is valid when reported_sid_type is set
                  to IPV4_NODE_ID. The value must be in IPv4 format. The default
                  value is 192.85.1.1.

  reported_ipv6_address
                  Specifies the value of the IPv6 NAI node ID for the SR RRO
                  object. This argument is valid when reported_sid_type is set
                  to IPV6_NODE_ID. The value must be in IPv6 format. The default
                  value is 2000::1.

  reported_local_ipv4_address
                  Specifies the value of the NAI local IPv4 address for the SR RRO
                  object. This argument is valid when reported_sid_type is set
                  to IPV4_ADJACENCY. The default value is 192.85.1.1.

  reported_remote_ipv4_address
                  Specifies the value of the NAI remote IPv4 address for the SR RRO
                  object. The default value is 192.85.1.1.

  reported_local_ipv6_address
                  Specifies the value of the NAI local IPv6 address for the SR RRO
                  object. This argument is valid when reported_sid_type is set
                  to IPV6_ADJACENCY. The default value is 2000::1.

  reported_remote_ipv6_address
                  Specifies the value of the NAI remote IPv6 address for the SR RRO
                  object. The default value is 2001::1.

  reported_local_node_id
                  Specifies the value of the NAI local node ID for the SR RRO
                  object. This argument is valid when reported_sid_type is set
                  to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from
                  0 to 4294967295. The default value is 0.

  reported_local_interface_id
                  Specifies the value of the NAI local interface node ID for the SR RRO
                  object. This argument is valid when reported_sid_type is set
                  to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from
                  0 to 4294967295. The default value is 0.

  reported_remote_node_id
                  Specifies the value of the NAI remote node ID for the SR RRO
                  object. This argument is valid when reported_sid_type is set
                  to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from
                  0 to 4294967295. The default value is 0.

  reported_remote_interface_id
                  Specifies the value of the NAI remote interface node ID for the
                  SR RRO object. This argument is valid when reported_sid_type
                  is set to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values
                  range from 0 to 4294967295. The default value is 0.

 The following example adds a PCC RRO object and its subobjects to the specified
 LSP::


      set pcc_rro_obj [::emulation pcep config
              mode                             create
              handle                         $lsp_handle_pcc
              rro_flags                      PCEP_RRO_FLAG_LOCAL_PROTECTION_IN_USE
              ipv4_rro_pflag                    true
              ipv4_rro_iflag                    true
              ipv4_reported_start_ip_list       192.0.1.0
              ipv4_reported_prefix_length       24
              sr_rro_pflag                      true
              sr_rro_iflag                      true
              reported_sid_type                 IPV4_ADJACENCY
              reported_sflag                    true
              reported_fflag                    true
              reported_sid_label                16
              reported_sid_tc                   0
              reported_sid_s_flag               true
              reported_sid_ttl                  255
              reported_ipv4_address              1.1.1.1
              reported_local_ipv4_address        1.1.1.1
              reported_remote_ipv4_address       2.2.2.2
              reported_local_node_id             0
              reported_local_interface_id        0
              reported_remote_node_id            0
              reported_remote_interface_id       0
              ]

  Sample Output::


   #This will return handles for the PCC RRO and its subobjects.
   {rro_hnd {pcepipv4rroobject1 pcepsrrroobject1 pcepipv6rroobject1}} {status 1}

 PCC BW Object (Use this group of arguments to configure the PCC Bandwidth object.)

  bw_pflag
                  Specifies the value of the ProcessingRule flag for the BW object.
                  Possible values are true and false. The default value is true.

  bw_iflag
                  Specifies the value of the Ignore flag for the BW object.
                  Possible values are true and false. The default value is true.

  bw_bandwidth
                  Requested bandwidth in bytes per second. Possible values range
                  from 0 to 4294967295. A value of zero indicates the object is
                  optional. The default value is 0.

 PCE BW Update Object (Use this group of arguments to configure the BW update object.)

  bw_update_pflag
                  Specifies the value of the ProcessingRule flag for the BW update
                  object. Possible values are true and false. The default value is
                  true.

  bw_update_iflag
                  Specifies the value of the Ignore flag for the BW update object.
                  Possible values are true and false. The default value is true.

  bw_update_bandwidth
                  Requested bandwidth in bytes per second. Possible values range
                  from 0 to 4294967295. Value 0 indicates that the object is
                  optional. The default value is 0.

  The following example adds a PCC BW object to the LSP::


     set pcc_bw_obj [::emulation pcep config
                  mode                 create
                  handle             $lsp_handle_pcc
                  bw_pflag           true
                  bw_iflag           true
                  bw_bandwidth       0
                  ]

 Sample Output::


    # This will return a PCC BW object handle.
    {bw_hnd pcepbwobject1} {status 1}

 The following example adds a PCE BW update object::


    set pce_bw_obj [::emulation pcep config
                   mode                   create
                   handle                 $lsp_handle_pce
                   bw_update_pflag        true
                   bw_update_iflag        false
                   bw_update_bandwidth    0
                   ]

 Sample Output::


   # This will return a PCE BW update object handle.
   {bw_hnd pcepbwtoupdateobject1} {status 1}

 PCC/PCE Metric Object (Use this group of arguments to configure the
 PCC/PCE Metric object.)

  metric_cflag
                  Value of the Computed Metric (C) Flag. Possible values are true
                  and false. When set to true, it indicates that the PCE must
                  provide the computed path metric value for a valid path in the
                  PCRep message for the corresponding metric. The default value is
                  true.

  metric_bflag
                  Value of the Bound (B) flag. Possible values are true and false.
                  When set to true, it indicates a bound (a maximum) for the path
                  metric that must not be exceeded for the PCC to consider the
                  computed path as acceptable. The default value is false.

  metric_type
                  Specifies the type of metric corresponding to the flags. Possible
                  values are described below::


                   IGP_METRIC      IGP metric
                   TE_METRIC       TE metric
                   HOP_COUNTS      Hop counts

                  The default value is IGP_METRIC.

  metric_value
                  Maximum value of the metric. Possible values range from 0 to
                  4294967295. The default value is 10.

PCC Metric List Object (Use this group of arguments to configure the PCC Metric List
object, under which METRIC objects are configured.)

  metriclist_pflag
                  Specifies the value of the ProcessingRule flag for the METRIC
                  List object. Possible values are true and false. The default
                  value is true.

  metriclist_iflag
                  Specifies the value of the Ignore flag for the METRIC List object.
                  Possible values are true and false. The default value is false.

 PCE Metric List Update Object (Use this group of arguments to configure the PCE
 Metric List update object.)

  metriclist_update_pflag
                  Specifies the value of the ProcessingRule flag for the Metric
                  List update object. Possible values are true and false. The
                  default value is true.

  metriclist_update_iflag
                  Specifies the value of the Ignore flag for the Metric List update
                  object. Possible values are true and false. The default value is
                  false.

 The following example adds PCC Metric object configurations to the specified LSP
 handle::


     set pcc_metric_obj [::emulation pcep config
                    mode                                create
                    handle                              $lsp_handle_pcc
                    metric_cflag                        true
                    metric_bflag                        true
                    metric_type                         HOP_COUNTS
                    metric_value                        10
                    metriclist_pflag                    true
                    metriclist_iflag                    true
                ]

 Sample Output::


      {metric_hnd pcepmetriclistobject1} {status 1}

 The following example adds PCE Metric object configurations to the specified LSP
 handle::


    set pce_metric_object [::emulation pcep config
                    mode                                create
                    handle                             $lsp_handle_pce
                    metric_cflag                       true
                    metric_bflag                       true
                    metric_type                        HOP_COUNTS
                    metric_value                       10
                    metriclist_update_pflag            true
                    metriclist_update_iflag            true
                   ]

 Sample Output::


      # This will return a PCE Metric object handle.
      {metric_hnd pcepmetriclisttoupdateobject1} {status 1}

 PCC LSPA Object (Use this group of arguments to configure the LSP Attributes object.)

  lspa_pflag
                  Specifies the value of the ProcessingRule flag for the LSPA
                  object. Possible values are true and false. The default value is
                  true.

  lspa_iflag
                  Specifies the value of the Ignore flag for the LSPA
                  object. Possible values are true and false. The default value is
                  false.

  lspa_exclude_any
                  Specifies a value to exclude a link that matches any attributes in
                  the 32bit mask, based on the following equation::


                   (linkattr & excludeany) == 0

                  Possible values range from 0 to 4294967295. The default value is 0.


  lspa_include_any
                  Specifies a value to include a link that matches any attributes in
                  the 32bit mask, based on the following equation::


                   (includeany == 0) | ((linkattr & includeany) != 0)

                  A null mask (all bits set to zero) automatically passes. Possible
                  values range from 0 to 4294967295. The default value is 0.


  lspa_include_all
                  Specifies a value to include a link that matches all attributes in
                  the 32bit mask, based on the following equation::


                   (includeall == 0) | (((linkattr & includeall) ^ includeall) == 0)

                  A null mask (all bits set to zero) automatically passes. Possible
                  values range from 0 to 4294967295. The default value is 0.

  lspa_setup_prio
                  Priority of the TE LSP with respect to taking resources. Possible
                  values range from 0 to 7. Value 0 indicates the highest priority.
                  The default value is 0.

  lspa_holding_prio
                  Priority of the TE LSP with respect to holding resources.
                  Possible values range from 0 to 7. Value 0 indicates the highest
                  priority. The default value is 0.

  lspa_lflag
                  Specifies the value of the Local Protection Desired (L) flag for
                  the LSPA object. Possible values are true and false. When set to
                  true, it indicates that the computed path must include links
                  protected with Fast Reroute as defined in RFC4090. The default
                  value is false.

  lspa_affinities_flag
                  Determines whether to set values for including or excluding links
                  based on comparing a 32bit mask to the session attribute of a
                  link. Possible values are true and false. Set it to true if you
                  want to use lspa_exclude_any, lspa_include_any, or
                  lspa_include_all to exlude or include specified links. The
                  default is false.

 PCE LSPA Update Object (Use this group of arguments to configure the LSPA
 update object.)

  lspa_update_pflag
                  Specifies the value of the ProcessingRule flag for the LSPA
                  update object. Possible values are true and false. The default
                  value is true.

  lspa_update_iflag
                  Specifies the value of the Ignore flag for the LSPA update
                  object. Possible values are true and false. The default value is
                  false.

  lspa_update_exclude_any
                  Specifies a value to exclude a link that matches any attributes in
                  the 32bit mask, based on the following equation::


                   (linkattr & excludeany) == 0

                  Possible values range from 0 to 4294967295. The default value is 0.


  lspa_update_include_any
                  Specifies a value to include a link that matches any attributes in
                  the 32bit mask, based on the following equation::


                   (includeany == 0) | ((linkattr & includeany) != 0)

                  A null mask (all bits set to zero) automatically passes. Possible
                  values range from 0 to 4294967295. The default value is 0.

  lspa_update_include_all
                  Specifies a value to include a link that matches all attributes in
                  the 32bit mask, based on the following equation::



                   (includeall == 0) | (((linkattr & includeall) ^ includeall) == 0)

                  A null mask (all bits set to zero) automatically passes. Possible
                  values range from 0 to 4294967295. The default value is 0.

  lspa_update_setup_prio
                  Priority of the TE LSP with respect to taking resources. Possible
                  values range from 0 to 7. Value 0 indicates the highest priority.
                  The default value is 0.

  lspa_update_holding_prio
                  Priority of the TE LSP with respect to holding resources.
                  Possible values range from 0 to 7. Value 0 indicates the highest
                  priority. The default value is 0.

  lspa_update_lflag
                  Specifies the value of the Local Protection Desired (L) flag for
                  the LSPA update object. Possible values are true and false. The
                  default value is false.

  lspa_update_affinities_flag
                  Determines whether to set values for including or excluding links
                  based on comparing a 32bit mask to the session attribute of a
                  link. Possible values are true and false. Set it to true if you
                  want to use lspa_update_exclude_any, lspa_update_include_any,
                  or lspa_update_include_all to exlude or include specified links.
                  The default value is false.

 The following example adds PCC LSPA object configurations::


    set pcc_lspa_obj [::emulation pcep config
                  mode                                 create
                  handle                             $lsp_handle_pcc
                  lspa_pflag                          true
                  lspa_iflag                          true
                  lspa_exclude_any                    1
                  lspa_include_any                    1
                  lspa_include_all                    1
                  lspa_setup_prio                     1
                  lspa_holding_prio                   1
                  lspa_lflag                          true
                  lspa_affinities_flag                true
                  ]

 Sample Output::


   # This will return a PCC LSPA object handle.
   {lspa_hnd pceplspaobject1} {status 1}

  The following example configures a PCE LSPA update object::


   set pce_lspa_object [::emulation pcep config
                   mode                                 create
                   handle                             $lsp_handle_pce
                   lspa_update_pflag                  true
                   lspa_update_iflag                  true
                   lspa_update_exclude_any            1
                   lspa_update_include_any            1
                   lspa_update_include_all            1
                   lspa_update_setup_prio             1
                   lspa_update_holding_prio           1
                   lspa_update_lflag                  true
                   lspa_update_affinities_flag        true
                   ]

 Sample Output::


    # This will return a PCE LSPA update object handle.
    {lspa_hnd pceplspatoupdateobject1} {status 1}


 PCEP Custom TLV (Use this group of arguments to configure custom TLVs for PCEP.)

  tlv_type
                  Type of the TLV in hex. Possible values range from 0 to 0x3FFF.
                  The default value is 0.

  tlv_value
                  Value of the TLV in hex. Possible values range from 0 0x0 to
                  0xff. The default value is 0.

  customtlv_handle
                  A list of custom TLV handles

 PCC/PCE Command Edit Parameters (Use this group of arguments to modify the
 created PCC/PCE objects before auto delegation, synchronization (for PCC) or
 update (for PCE) operations.)

  included_ero_handle
                  The ERO object handle to be included

  included_rro_handle
                  The RRO object handle to be included

  included_bw_handle
                  The BW object handle to be included


  included_metric_handle
                  The metric object handle to be included

  included_lspa_handle
                  The LSPA object handle to be included

  include_ero
                  Determines whether to include the ERO object handle. Possible
                  values are true and false. The default value is true.

  include_rro
                  Determines whether to include the RRO object handle. Possible
                  values are true and false. The default value is true.

  include_bw
                  Determines whether to include the BW object handle. Possible
                  values are true and false. The default value is true.

  include_metric
                  Determines whether to include the metric object handle. Possible
                  values are true and false. The default value is true.

  include_lspa
                  Determines whether to include the LSPA object. Possible values
                  are true and false. The default value is true.

  include_lsp
                  Determines whether to include the LSP object. Possible values
                  are true and false. The default value is true.

  include_srp
                  Determines whether to include the SRP object. Possible values
                  are true and false. The default value is true.

  include_rp
                  Determines whether to include the RP object. Possible values
                  are true and false. The default value is true.

  include_endpoints
                  Determines whether to include the EndPoints object. Possible
                  values are true and false. The default value is true.

  cmd_use_custom_message
                  Enables/disables PCEP custom message for PCEP commands. Possible
                  values are true (enable) and false (disable). The default value
                  is false. When set to true, lsp_msg_obj_type and
                  lsp_msg_obj_handle are available to add LSP messages (a type
                  of custom message). When set to false, other Command Edit options
                  are valid. The default value is false.

  lsp_msg_obj_type
                  Specifies the type of custom LSP message object. You must set
                  cmd_use_custom_message to true. Possible values are described
                  below::


                   CUSTOM          Custom object
                   ENDPOINTS      EndPoints object
                   ERO             ERO object
                   RRO             RRO object
                   LSP             LSP object
                   LSPA            LSPA object
                   METRIC          METRIC object
                   NOPATH         NoPath object
                   RP              RP object
                   SRP             SRP object

                  The default value is CUSTOM.

  lsp_msg_obj_handle
             LSP message handle returned from the current function

 The following example modifies PCC/PCE objects with Command Edit
 parameters::


    keylget device_ret_pcep1 ero_hnd ero_handle
    keylget device_ret_pcep1 startcommand_hnd cmd_handle2

    set device_ret_pcep [::emulation pcep config
            mode modify
            handle lindex $cmd_handle2 0 \ # PCC or PCE start_command handle
            include_lsp false
            include_endpoints false
            included_ero_handle lindex $ero_handle 1
            ]

 Sample Output::


   # This returns PCC/PCE startcommand_hnd handle with specified auto parameters.
   {startcommand_hnd startdeviceupdatecommandconfig1} {status 1}

 PCEP Custom Object (Use this group of arguments to create PCEP custom objects)

  object_length
                  Length of the message in bytes, including the header. This
                  argument is available when auto_cal_object_length is set to
                  false. Possible values range from 0 to 65535. The default value
                  is 4.

  custom_pflag
                  Determines whethet to allow a PCC to specify in the PCReq message
                  sent to a PCE, whether the object is optional (true) or must be
                  taken into account by the PCE (false) during path computation.
                  Possible values are true and false. The default value is true.

  custom_iflag
                  Determines whethet to allow a PCE to indicate in a PCRep message
                  to a PCC, whether an optional object was processed (true) or
                  ignored (false) during path computation. Possible values are
                  true and false. The default value is false.

  object_class
                  Value of the object class. This argument is available when
                  object_class_selector is set to CUSTOM. The default value is 0.

  object_data
                  Value of the object body. The default value is 0.

  reserved_flags
                  Specifies the value for reserved flags

  object_class_selector
                  Specifies the class of the PCEP custom object. Possible values
                  are described below::


                   BANDWIDTH       BANDWIDTH object
                   CLOSE           CLOSE object
                   CUSTOM          Custom object
                   ENDPOINTS      EndPoints object
                   ERROR           ERROR object
                   ERO             ERO object
                   IRO             Include Route Object (IRO) object
                   RRO             RRO object
                   LOADBALANCING  LoadBalancing object
                   LSP             LSP object
                   LSPA            LSPA object
                   METRIC          METRIC object
                   NOTIFICATION    NOTIFICATION object
                   NOPATH         NoPath object
                   RP              RP object
                   SRP             SRP object
                   SVEC            Synchronization VECtor (SVEC) object

                  The default value is CUSTOM.

  auto_cal_object_length
                  Determines whether to automatically calculate the object length.
                  Possible values are true and false. When it is set to true, the
                  object length will be calculated by Spirent HLTAPI. The default
                  value is true.

  custom_obj_type
                  Specifies the type of the custom object. Possible values range
                  from 0 to 15. The default value is 0.

 The following example configures the custom objects on the PCEP device::


       set device_ret_pcep [::emulation pcep config
       object_class_selector "CUSTOM OPEN ERO"
       object_length "4 4 4"
       custom_pflag "true false true"
       custom_iflag "true true true"
       object_class "12 0 0"
       object_data "0 0 100"
       reserved_flags "0 2 1"
       auto_cal_object_length "true false true"
       custom_obj_type "0 0 0"
       ]
       keylget device_ret_pcep customobj_hnd custom_obj

 PCEP CUSTOM Message (Use this group of arguments to add OPEN message and
 KEEPALIVE messages. You must set PCEP Sessions parameter use_custom_message  to
 true)

  open_msg_obj_type
                  Specifies the object category for the OPEN message.
                  Possible values are CUSTOM and OPEN. The default value is
                  CUSTOM.

  open_msg_obj_handle
                  The PCEP custom object handle returned from the current function

  keepalive_msg_obj_category
                  Specifies the object category for the KEEPALIVE message.
                  Possible values are CUSTOM and OPEN. The default value is
                  CUSTOM.

  keepalive_msg_obj_handle
                  The PCEP custom object handle returned from the current function

 The following example configures custom messages on the PCEP device::


    set device_ret_pcep [::emulation pcep config
          mode create
          handle $dev_handle
          pcep_device_role PCC
          peer_ipv4_addr 192.85.1.3
          keep_alive_timer 5
          dead_timer 10
          use_custom_message true
          keepalive_msg_obj_type "OPEN"
          keepalive_msg_obj_handle lindex $custom_obj 0

 PCEP Custom PDU (Use this argument to configure PCEP custom objects)

  custom_pdu
                  Value of the custom PDU in hex. Possible values range from 0 0x0
                  to 0xff. The default value is 0.

 The following example modifies the specified custom object on the PCEP
 device::


     set device_ret_pcep_2 [::emulation pcep config
           mode modify
           handle lindex $cmd_hnd 0
           cmd_use_custom_message true
           lsp_msg_obj_type CUSTOM
           lsp_msg_obj_handle lindex $custom_obj 0

Arguments Unsupported by Save as HLTAPI:

This function is currently not supported by Save as HLTAPI.
Return Values:

Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):

customtlv_hnd              Custom TLV handle
pcep_handle                PCC or PCE handle returned by the function
pcc_lsp_hnd                PCC LSP handle
pce_lsp_hnd                PCE LSP handle
lsp_hnd                    LSP object handle
ero_hnd                    ERO object handle
rro_hnd                    RRO object handle
srp_handle                 SRP handle
lspa_hnd                    LSPA object handle
startcommand_hnd           Handle used to modify the existing PCC/PCE
                           characteristics of the LSP
ipv4_ero_hnd                PCEP IPv4 ERO (Update) object handle
ipv6_ero_hnd                PCEP IPv6 ERO (Update) object handle
sr_ero_hnd                  PCEP SR ERO object handle
ipv4_rro_hnd                PCEP  IPv4 RRO object handle
ipv6_rro_hnd                PCEP IPv6 RRO object handle
metric_hnd                  PCEP Metric List (Update) object handle
bw_hnd                      PCEP BW (Update) object handle
start_initcommand_hnd       StartDeviceInitiateCommand configuration handle
start_replycommand_hnd      StartDeviceReplyCommand configuration handle
start_synccommand_hnd       StartDeviceSyncCommand configuration handle
start_requestcommand_hnd    StartDeviceRequestCommand configuration handle
start_delegatecommand_hnd   StartDeviceDelegateCommand configuration handle
start_updatecommand_hnd     StartDeviceUpdateCommand configuration handle
customtlv_hnd               PCEP custom TLV handle
customobj_hnd               PCEP custom object handle
ipv4_reported_route_hnd     PCEP IPv4 Reported Route Parameters handle
ipv6_reported_route_hnd     PCEP IPv6 Reported Route Parameters handle
ipv4_explicit_route_hnd     PCEP IPv4 Explicit Route Parameters handle
ipv6_explicit_route_hnd     PCEP IPv6 Explicit Route Parameters handle
ipv6network_hnd             IPv6 network block handle
ipv4network_hnd             IPv4 network block handle
custompdu_hnd               PCEP Custom PDU handle
open_msg_hnd                PCEP OPEN message configuration handle
keep_alive_msg_hnd          PCEP KEEPALIVE message configuration handle
lsp_msg_hnd                 PCEP LSP message configuration handle

status                  Success (1) or failure (0) of the operation

log                     An error message (if the operation failed)
Description:

The emulation pcep config function enables PCEP (PCC or PCE) on raw devices, adds, modifies, or deletes the PCC or PCE LSP. Use the mode argument to specify the operation to perform.

When you enable the PCEP on raw devices, the function returns a PCEP handle based The device role (PCC or PCE). Use this handle as the input for further actions specified by mode. The mode you use determines the set of arguments you use to configure PCEP devices or LSPs.

When you specify mode create, you must also use the -handle argument to specify the PCEP device handle to create LSPs on that device.

When you specify mode modify, you must also use the -handle argument to specify the PCEP LSP handle to modify the LSP configurations.

When you specify mode delete, you must also use the -handle argument to specify the PCEP LSP handle to delete the LSP.

Examples:
See the examples under Arguments, or refer to Sample Script in the Release Package folder for full sample scripts of the function.

emulation pcep control

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
A Spirent Extension to start, stop PCEP devices and the related LSPs, establish sessions between PCEP devices, or start the LSP on the established PCEP devices.

Synopsis:

Note: M indicates the argument is `Mandatory`.

      emulation pcep control
       action=  {start_sessions|stop_sessions|establish_sessions|
                 initiate_lsp|remove_delegate_lsp|remove_initiate_lsp}  M]
       handle= <pcep_handle_list> M

Arguments:

mode
                Specifies the action to be performed. This argument is
                `Mandatory`. Possible values are::

                 start_sessions      Starts the PCEP devices and the related LSPs

                 stop_sessions       Stops the PCEP devices and the related LSPs

                 establish_sessions  Establishes a session between PCEP devices

                 initiate_lsp        Starts the LSPs on the PCEP devices with
                                     session established

                 remove_initiate_lsp
                                    PCE will take back the initiated LSP, and send
                                    a deletion request from the selected emulated
                                    PCEs to the associated PCCs

                 remove_delegate_lsp
                                    PCC will take back the delegate LSP, and remove
                                    all states for the LSPs on the selected devices

                The default value is start_sessions.

handle
                Specifies a list of PCEP devices on which to perform the action.
                This argument is `Mandatory`.
Return Values:

Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):

status      Success (1) or failure (0) of the operation

log         An error message (if the operation failed)
Description:

The emulation pcep control function controls the PCEP sessions and the related LSPs. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

If the action performed fails, Spirent HLTAPI returns an error message.

Examples:

The following example starts the specified PCEP sessions:

set ret [::emulation pcep control
  handle "$pcep_hnd1 $pcep_hnd2" action= start_sessions]
Note:
Spirent HLTAPI does not provide a protocol specific API for PCEP functions. Instead, you can retrieve PCEP results using the drv stats function, as shown in the examples below.

To retrieve PCEP results by specified properties:

set drv_stats [::drv stats
    query_from=       "$port1 $port2"
    drv_name=         drv2
    where=           PcepProtocolConfig.BlockRole = 0
    properties=      "EmulatedDevice.PortName EmulatedDevice.Name
                     PcepProtocolConfig.BlockState
                     PcepProtocolConfig.BlockSessionCount
                     PcepProtocolConfig.BlockSessionUpCount
                     PcepProtocolConfig.BlockSessionIdleCount
                     PcepProtocolConfig.BlockSessionPendingCount
                     PcepProtocolConfig.BlockTxOpenCount
                     PcepProtocolConfig.BlockRxOpenCount
                     PcepProtocolConfig.BlockTxKeepAliveCount
                     PcepProtocolConfig.BlockRxKeepAliveCount
                     PcepProtocolConfig.BlockTxPCRptCount
                     PcepProtocolConfig.BlockRxPCUpdCount
                     PcepProtocolConfig.BlockTxPCReqCount
                     PcepProtocolConfig.BlockRxPCRepCount
                     PcepProtocolConfig.BlockTxNotifyCount
                     PcepProtocolConfig.BlockRxNotifyCount
                     PcepProtocolConfig.BlockTxErrorCount
                     PcepProtocolConfig.BlockRxErrorCount
                     PcepProtocolConfig.BlockTxCloseCount
                     PcepProtocolConfig.BlockRxCloseCount
                     PcepProtocolConfig.BlockRxPCInitCount
                     PcepProtocolConfig.BlockFlapCount
                     PcepProtocolConfig.BlockRole"
            ]

Sample Output:

{result_count 1} {item0 {{EmulatedDevicePortName {10.62.224.17412= //1/2}}
{EmulatedDeviceName {Host 2}} {PcepProtocolConfigBlockState UP}
{PcepProtocolConfigBlockSessionCount 1} {PcepProtocolConfigBlockSessionUpCount 1}
{PcepProtocolConfigBlockSessionIdleCount 0}
{PcepProtocolConfigBlockSessionPendingCount 0} {PcepProtocolConfigBlockTxOpenCount 1}
{PcepProtocolConfigBlockRxOpenCount 1} {PcepProtocolConfigBlockTxKeepAliveCount 1}
{PcepProtocolConfigBlockRxKeepAliveCount 1} {PcepProtocolConfigBlockTxPCRptCount 2}
{PcepProtocolConfigBlockRxPCUpdCount 0} {PcepProtocolConfigBlockTxPCReqCount 0}
{PcepProtocolConfigBlockRxPCRepCount 0} {PcepProtocolConfigBlockTxNotifyCount 0}
{PcepProtocolConfigBlockRxNotifyCount 0} {PcepProtocolConfigBlockTxErrorCount 0}
{PcepProtocolConfigBlockRxErrorCount 0} {PcepProtocolConfigBlockTxCloseCount 0}
{PcepProtocolConfigBlockRxCloseCount 0} {PcepProtocolConfigBlockRxPCInitCount 0}
{PcepProtocolConfigBlockFlapCount 0} {PcepProtocolConfigBlockRole PCC}}}
{handle dynamicresultview1} {status 1}

To retrieve PCEP and LSP results by using an XML configuration file (saved from the DRV view configured in the GUI):

set drv_stats1 [::drv stats
    drv_xml= "C:/Desktop/pcep/drvxml/pcclsp_results.xml"
 ]

Sample Output:

{result_count 1} {item0 {{EmulatedDeviceName {Host 2}}
{PcepProtocolConfigSymbolicName PLSP_report_0} {PcepProtocolConfigSrcIpAddr
1.1.1.1} {PcepProtocolConfigDstIpAddr 2.2.2.2} {PcepProtocolConfigLspState UP}
{PcepProtocolConfigPlspState DELEGATED} {PcepProtocolConfigPlspId 1}
{PcepProtocolConfigSrpId 0} {PcepProtocolConfigRpId 0}
{PcepProtocolConfigPCRole PCC}}} {handle dynamicresultview2} {status 1}