Citrix ADC 12.1 NITRO API Reference

nstcpprofile

Configuration for TCP profile resource.

Properties

(click to see Operations)

Name Data Type Permissions Description
name Read-write Name for a TCP profile. Must begin with a letter, number, or the underscore (_) character. Other characters allowed, after the first character, are the hyphen (-), period (.), hash (#), space ( ), at (@), colon (:), and equal (=) characters. The name of a TCP profile cannot be changed after it is created.

CLI Users: If the name includes one or more spaces, enclose the name in double or single quotation marks (for example, “my tcp profile” or ‘my tcp profile’).
Minimum length = 1
Maximum length = 127
ws Read-write Enable or disable window scaling.
Default value: DISABLED
Possible values = ENABLED, DISABLED
sack Read-write Enable or disable Selective ACKnowledgement (SACK).
Default value: DISABLED
Possible values = ENABLED, DISABLED
wsval Read-write Factor used to calculate the new window size.
This argument is needed only when window scaling is enabled.
Default value: 4
Minimum value = 0
Maximum value = 14
nagle Read-write Enable or disable the Nagle algorithm on TCP connections.
Default value: DISABLED
Possible values = ENABLED, DISABLED
ackonpush Read-write Send immediate positive acknowledgement (ACK) on receipt of TCP packets with PUSH flag.
Default value: ENABLED
Possible values = ENABLED, DISABLED
mss Read-write Maximum number of octets to allow in a TCP data segment.
Minimum value = 0
Maximum value = 9176
maxburst Read-write Maximum number of TCP segments allowed in a burst.
Default value: 6
Minimum value = 1
Maximum value = 255
initialcwnd Read-write Initial maximum upper limit on the number of TCP packets that can be outstanding on the TCP link to the server.
Default value: 4
Minimum value = 1
Maximum value = 44
delayedack Read-write Timeout for TCP delayed ACK, in milliseconds.
Default value: 100
Minimum value = 10
Maximum value = 300
oooqsize Read-write Maximum size of out-of-order packets queue. A value of 0 means no limit.
Default value: 64
Minimum value = 0
Maximum value = 65535
maxpktpermss Read-write Maximum number of TCP packets allowed per maximum segment size (MSS).
Minimum value = 0
Maximum value = 1460
pktperretx Read-write Maximum limit on the number of packets that should be retransmitted on receiving a partial ACK.
Default value: 1
Minimum value = 1
Maximum value = 512
minrto Read-write Minimum retransmission timeout, in milliseconds, specified in 10-millisecond increments (value must yield a whole number if divided by 10).
Default value: 1000
Minimum value = 10
Maximum value = 64000
slowstartincr Read-write Multiplier that determines the rate at which slow start increases the size of the TCP transmission window after each acknowledgement of successful transmission.
Default value: 2
Minimum value = 1
Maximum value = 100
buffersize Read-write TCP buffering size, in bytes.
Default value: 8190
Minimum value = 8190
Maximum value = 20971520
syncookie Read-write Enable or disable the SYNCOOKIE mechanism for TCP handshake with clients. Disabling SYNCOOKIE prevents SYN attack protection on the Citrix ADC.
Default value: ENABLED
Possible values = ENABLED, DISABLED
kaprobeupdatelastactivity Read-write Update last activity for the connection after receiving keep-alive (KA) probes.
Default value: ENABLED
Possible values = ENABLED, DISABLED
flavor Read-write Set TCP congestion control algorithm.
Default value: Default
Possible values = Default, Westwood, BIC, CUBIC, Nile
dynamicreceivebuffering Read-write Enable or disable dynamic receive buffering. When enabled, allows the receive buffer to be adjusted dynamically based on memory and network conditions.
Note: The buffer size argument must be set for dynamic adjustments to take place.
Default value: DISABLED
Possible values = ENABLED, DISABLED
ka Read-write Send periodic TCP keep-alive (KA) probes to check if peer is still up.
Default value: DISABLED
Possible values = ENABLED, DISABLED
kaconnidletime Read-write Duration, in seconds, for the connection to be idle, before sending a keep-alive (KA) probe.
Minimum value = 1
Maximum value = 4095
kamaxprobes Read-write Number of keep-alive (KA) probes to be sent when not acknowledged, before assuming the peer to be down.
Minimum value = 1
Maximum value = 254
kaprobeinterval Read-write Time interval, in seconds, before the next keep-alive (KA) probe, if the peer does not respond.
Minimum value = 1
Maximum value = 4095
sendbuffsize Read-write TCP Send Buffer Size.
Default value: 8190
Minimum value = 8190
Maximum value = 20971520
mptcp Read-write Enable or disable Multipath TCP.
Default value: DISABLED
Possible values = ENABLED, DISABLED
establishclientconn Read-write Establishing Client Client connection on First data/ Final-ACK / Automatic.
Default value: AUTOMATIC
Possible values = AUTOMATIC, CONN_ESTABLISHED, ON_FIRST_DATA
tcpsegoffload Read-write Offload TCP segmentation to the NIC. If set to AUTOMATIC, TCP segmentation will be offloaded to the NIC, if the NIC supports it.
Default value: AUTOMATIC
Possible values = AUTOMATIC, DISABLED
rstwindowattenuate Read-write Enable or disable RST window attenuation to protect against spoofing. When enabled, will reply with corrective ACK when a sequence number is invalid.
Default value: DISABLED
Possible values = ENABLED, DISABLED
rstmaxack Read-write Enable or disable acceptance of RST that is out of window yet echoes highest ACK sequence number. Useful only in proxy mode.
Default value: DISABLED
Possible values = ENABLED, DISABLED
spoofsyndrop Read-write Enable or disable drop of invalid SYN packets to protect against spoofing. When disabled, established connections will be reset when a SYN packet is received.
Default value: ENABLED
Possible values = ENABLED, DISABLED
ecn Read-write Enable or disable TCP Explicit Congestion Notification.
Default value: DISABLED
Possible values = ENABLED, DISABLED
mptcpdropdataonpreestsf Read-write Enable or disable silently dropping the data on Pre-Established subflow. When enabled, DSS data packets are dropped silently instead of dropping the connection when data is received on pre established subflow.
Default value: DISABLED
Possible values = ENABLED, DISABLED
mptcpfastopen Read-write Enable or disable Multipath TCP fastopen. When enabled, DSS data packets are accepted before receiving the third ack of SYN handshake.
Default value: DISABLED
Possible values = ENABLED, DISABLED
mptcpsessiontimeout Read-write MPTCP session timeout in seconds. If this value is not set, idle MPTCP sessions are flushed after vserver’s client idle timeout.
Default value: 0
Minimum value = 0
Maximum value = 86400
timestamp Read-write Enable or Disable TCP Timestamp option (RFC 1323).
Default value: DISABLED
Possible values = ENABLED, DISABLED
dsack Read-write Enable or disable DSACK.
Default value: ENABLED
Possible values = ENABLED, DISABLED
ackaggregation Read-write Enable or disable ACK Aggregation.
Default value: DISABLED
Possible values = ENABLED, DISABLED
frto Read-write Enable or disable FRTO (Forward RTO-Recovery).
Default value: DISABLED
Possible values = ENABLED, DISABLED
maxcwnd Read-write TCP Maximum Congestion Window.
Default value: 524288
Minimum value = 8190
Maximum value = 20971520
fack Read-write Enable or disable FACK (Forward ACK).
Default value: DISABLED
Possible values = ENABLED, DISABLED
tcpmode Read-write TCP Optimization modes TRANSPARENT / ENDPOINT.
Default value: TRANSPARENT
Possible values = TRANSPARENT, ENDPOINT
tcpfastopen Read-write Enable or disable TCP Fastopen. When enabled, NS can receive or send Data in SYN or SYN-ACK packets.
Default value: DISABLED
Possible values = ENABLED, DISABLED
hystart Read-write Enable or disable CUBIC Hystart.
Default value: DISABLED
Possible values = ENABLED, DISABLED
dupackthresh Read-write TCP dupack threshold.
Default value: 3
Minimum value = 1
Maximum value = 15
burstratecontrol Read-write TCP Burst Rate Control DISABLED/FIXED/DYNAMIC. FIXED requires a TCP rate to be set.
Default value: DISABLED
Possible values = DISABLED, FIXED, DYNAMIC
tcprate Read-write TCP connection payload send rate in Kb/s.
Default value: 0
Minimum value = 0
Maximum value = 10000000
rateqmax Read-write Maximum connection queue size in bytes, when BurstRateControl is used.
Default value: 0
Minimum value = 0
Maximum value = 1000000000
drophalfclosedconnontimeout Read-write Silently drop tcp half closed connections on idle timeout.
Default value: DISABLED
Possible values = ENABLED, DISABLED
dropestconnontimeout Read-write Silently drop tcp established connections on idle timeout.
Default value: DISABLED
Possible values = ENABLED, DISABLED
applyadaptivetcp Read-write Apply Adaptive TCP optimizations.
Default value: DISABLED
Possible values = ENABLED, DISABLED
tcpfastopencookiesize Read-write TCP FastOpen Cookie size. This accepts only even numbers. Odd number is trimmed down to nearest even number.
Default value: 8
Minimum value = 4
Maximum value = 16
taillossprobe Read-write TCP tail loss probe optimizations.
Default value: DISABLED
Possible values = ENABLED, DISABLED
refcnt Read-only Number of entities using this profile.
__count Read-only count parameter

Operations

(click to see Properties)

ADD DELETE UPDATE UNSET GET (ALL) GET COUNT

Some options that you can use for each operations:

  • Getting warnings in response:NITRO allows you to get warnings in an operation by specifying the "warning" query parameter as "yes". For example, to get warnings while connecting to the Citrix ADC appliance, the URL is as follows:

    http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/login?warning=yes

    If any, the warnings are displayed in the response payload with the HTTP code "209 X-NITRO-WARNING".

  • Authenticated access for individual NITRO operations:NITRO allows you to logon to the Citrix ADC appliance to perform individual operations. You can use this option instead of creating a NITRO session (using the login object) and then using that session to perform all operations,

    To do this, you must specify the username and password in the request header of the NITRO request as follows:

    X-NITRO-USER:<username>

    X-NITRO-PASS:<password>

    Note:In such cases, make sure that the request header DOES not include the following:

    Cookie:NITRO_AUTH_TOKEN=<tokenvalue>

*Note:*

Mandatory parameters are marked in redand placeholder content is marked in <green>.

add

URL:http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile

HTTP Method:POST

Request Headers:

Cookie:NITRO_AUTH_TOKEN=<tokenvalue> Content-Type:application/json

Request Payload:


{"nstcpprofile":{
<b>"name":<String_value>,
</b>"ws":<String_value>,
"sack":<String_value>,
"wsval":<Double_value>,
"nagle":<String_value>,
"ackonpush":<String_value>,
"mss":<Double_value>,
"maxburst":<Double_value>,
"initialcwnd":<Double_value>,
"delayedack":<Double_value>,
"oooqsize":<Double_value>,
"maxpktpermss":<Double_value>,
"pktperretx":<Double_value>,
"minrto":<Double_value>,
"slowstartincr":<Double_value>,
"buffersize":<Double_value>,
"syncookie":<String_value>,
"kaprobeupdatelastactivity":<String_value>,
"flavor":<String_value>,
"dynamicreceivebuffering":<String_value>,
"ka":<String_value>,
"kaconnidletime":<Double_value>,
"kamaxprobes":<Double_value>,
"kaprobeinterval":<Double_value>,
"sendbuffsize":<Double_value>,
"mptcp":<String_value>,
"establishclientconn":<String_value>,
"tcpsegoffload":<String_value>,
"rstwindowattenuate":<String_value>,
"rstmaxack":<String_value>,
"spoofsyndrop":<String_value>,
"ecn":<String_value>,
"mptcpdropdataonpreestsf":<String_value>,
"mptcpfastopen":<String_value>,
"mptcpsessiontimeout":<Double_value>,
"timestamp":<String_value>,
"dsack":<String_value>,
"ackaggregation":<String_value>,
"frto":<String_value>,
"maxcwnd":<Double_value>,
"fack":<String_value>,
"tcpmode":<String_value>,
"tcpfastopen":<String_value>,
"hystart":<String_value>,
"dupackthresh":<Double_value>,
"burstratecontrol":<String_value>,
"tcprate":<Double_value>,
"rateqmax":<Double_value>,
"drophalfclosedconnontimeout":<String_value>,
"dropestconnontimeout":<String_value>,
"applyadaptivetcp":<String_value>,
"tcpfastopencookiesize":<Double_value>,
"taillossprobe":<String_value>
}}

<!--NeedCopy-->

Response:

HTTP Status Code on Success: 201 Created HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for Citrix ADC specific errors). The response payload provides details of the error

delete

URL:http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile/name_value<String>

HTTP Method:DELETE

Request Headers:

Cookie:NITRO_AUTH_TOKEN=<tokenvalue>

Response:

HTTP Status Code on Success: 200 OK HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for Citrix ADC specific errors). The response payload provides details of the error

update

URL:http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile

HTTP Method:PUT

Request Headers:

Cookie:NITRO_AUTH_TOKEN=<tokenvalue> Content-Type:application/json

Request Payload:


{"nstcpprofile":{
<b>"name":<String_value>,
</b>"ws":<String_value>,
"sack":<String_value>,
"wsval":<Double_value>,
"nagle":<String_value>,
"ackonpush":<String_value>,
"mss":<Double_value>,
"maxburst":<Double_value>,
"initialcwnd":<Double_value>,
"delayedack":<Double_value>,
"oooqsize":<Double_value>,
"maxpktpermss":<Double_value>,
"pktperretx":<Double_value>,
"minrto":<Double_value>,
"slowstartincr":<Double_value>,
"buffersize":<Double_value>,
"syncookie":<String_value>,
"kaprobeupdatelastactivity":<String_value>,
"flavor":<String_value>,
"dynamicreceivebuffering":<String_value>,
"ka":<String_value>,
"kaconnidletime":<Double_value>,
"kamaxprobes":<Double_value>,
"kaprobeinterval":<Double_value>,
"sendbuffsize":<Double_value>,
"mptcp":<String_value>,
"establishclientconn":<String_value>,
"tcpsegoffload":<String_value>,
"rstwindowattenuate":<String_value>,
"rstmaxack":<String_value>,
"spoofsyndrop":<String_value>,
"ecn":<String_value>,
"mptcpdropdataonpreestsf":<String_value>,
"mptcpfastopen":<String_value>,
"mptcpsessiontimeout":<Double_value>,
"timestamp":<String_value>,
"dsack":<String_value>,
"ackaggregation":<String_value>,
"frto":<String_value>,
"maxcwnd":<Double_value>,
"fack":<String_value>,
"tcpmode":<String_value>,
"tcpfastopen":<String_value>,
"hystart":<String_value>,
"dupackthresh":<Double_value>,
"burstratecontrol":<String_value>,
"tcprate":<Double_value>,
"rateqmax":<Double_value>,
"drophalfclosedconnontimeout":<String_value>,
"dropestconnontimeout":<String_value>,
"applyadaptivetcp":<String_value>,
"tcpfastopencookiesize":<Double_value>,
"taillossprobe":<String_value>
}}

<!--NeedCopy-->

Response:

HTTP Status Code on Success: 200 OK HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for Citrix ADC specific errors). The response payload provides details of the error

unset

URL:http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile?action=unset

HTTP Method:POST

Request Headers:

Cookie:NITRO_AUTH_TOKEN=<tokenvalue> Content-Type:application/json

Request Payload:


{"nstcpprofile":{
<b>"name":<String_value>,
</b>"ws":true,
"sack":true,
"wsval":true,
"nagle":true,
"ackonpush":true,
"mss":true,
"maxburst":true,
"initialcwnd":true,
"delayedack":true,
"oooqsize":true,
"maxpktpermss":true,
"pktperretx":true,
"minrto":true,
"slowstartincr":true,
"buffersize":true,
"syncookie":true,
"kaprobeupdatelastactivity":true,
"flavor":true,
"dynamicreceivebuffering":true,
"ka":true,
"kamaxprobes":true,
"kaconnidletime":true,
"kaprobeinterval":true,
"sendbuffsize":true,
"mptcp":true,
"establishclientconn":true,
"tcpsegoffload":true,
"rstwindowattenuate":true,
"rstmaxack":true,
"spoofsyndrop":true,
"ecn":true,
"mptcpdropdataonpreestsf":true,
"mptcpfastopen":true,
"mptcpsessiontimeout":true,
"timestamp":true,
"dsack":true,
"ackaggregation":true,
"frto":true,
"maxcwnd":true,
"fack":true,
"tcpmode":true,
"tcpfastopen":true,
"hystart":true,
"dupackthresh":true,
"burstratecontrol":true,
"tcprate":true,
"rateqmax":true,
"drophalfclosedconnontimeout":true,
"dropestconnontimeout":true,
"applyadaptivetcp":true,
"tcpfastopencookiesize":true,
"taillossprobe":true
}}

<!--NeedCopy-->

Response:

HTTP Status Code on Success: 200 OK HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for Citrix ADC specific errors). The response payload provides details of the error

get (all)

URL:http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile

Query-parameters:

attrs

http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile?attrs=property-name1,property-name2

Use this query parameter to specify the resource details that you want to retrieve.

filter

http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile?filter=property-name1:property-val1,property-name2:property-val2

Use this query-parameter to get the filtered set of nstcpprofile resources configured on Citrix ADC. Filtering can be done on any of the properties of the resource.

view

http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile?view=summary

Note:By default, the retrieved results are displayed in detail view (?view=detail).

pagination

http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile?pagesize=#no;pageno=#no

Use this query-parameter to get the nstcpprofile resources in chunks.

HTTP Method:GET

Request Headers:

Cookie:NITRO_AUTH_TOKEN=<tokenvalue> Accept:application/json

Response:

HTTP Status Code on Success: 200 OK HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for Citrix ADC specific errors). The response payload provides details of the errorResponse Headers:

Content-Type:application/json

Response Payload:


{ "nstcpprofile": [ {
"name":<String_value>,
"ws":<String_value>,
"sack":<String_value>,
"wsval":<Double_value>,
"nagle":<String_value>,
"ackonpush":<String_value>,
"mss":<Double_value>,
"maxburst":<Double_value>,
"initialcwnd":<Double_value>,
"delayedack":<Double_value>,
"oooqsize":<Double_value>,
"maxpktpermss":<Double_value>,
"pktperretx":<Double_value>,
"minrto":<Double_value>,
"slowstartincr":<Double_value>,
"buffersize":<Double_value>,
"flavor":<String_value>,
"refcnt":<Double_value>,
"syncookie":<String_value>,
"kaprobeupdatelastactivity":<String_value>,
"dynamicreceivebuffering":<String_value>,
"ka":<String_value>,
"kaconnidletime":<Double_value>,
"kamaxprobes":<Double_value>,
"kaprobeinterval":<Double_value>,
"sendbuffsize":<Double_value>,
"mptcp":<String_value>,
"establishclientconn":<String_value>,
"tcpsegoffload":<String_value>,
"rstwindowattenuate":<String_value>,
"rstmaxack":<String_value>,
"timestamp":<String_value>,
"spoofsyndrop":<String_value>,
"ecn":<String_value>,
"mptcpdropdataonpreestsf":<String_value>,
"mptcpfastopen":<String_value>,
"mptcpsessiontimeout":<Double_value>,
"dsack":<String_value>,
"ackaggregation":<String_value>,
"frto":<String_value>,
"maxcwnd":<Double_value>,
"fack":<String_value>,
"tcpmode":<String_value>,
"tcpfastopen":<String_value>,
"hystart":<String_value>,
"dupackthresh":<Double_value>,
"burstratecontrol":<String_value>,
"tcprate":<Double_value>,
"rateqmax":<Double_value>,
"drophalfclosedconnontimeout":<String_value>,
"dropestconnontimeout":<String_value>,
"applyadaptivetcp":<String_value>,
"tcpfastopencookiesize":<Double_value>,
"taillossprobe":<String_value>
}]}

<!--NeedCopy-->

get

URL:http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile/name_value<String>

Query-parameters:

attrs

http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile/name_value<String>?attrs=property-name1,property-name2

Use this query parameter to specify the resource details that you want to retrieve.

view

http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile/name_value<String>?view=summary

Note:By default, the retrieved results are displayed in detail view (?view=detail).

HTTP Method:GET

Request Headers:

Cookie:NITRO_AUTH_TOKEN=<tokenvalue> Accept:application/json

Response:

HTTP Status Code on Success: 200 OK HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for Citrix ADC specific errors). The response payload provides details of the errorResponse Headers:

Content-Type:application/json

Response Payload:


{ "nstcpprofile": [ {
"name":<String_value>,
"ws":<String_value>,
"sack":<String_value>,
"wsval":<Double_value>,
"nagle":<String_value>,
"ackonpush":<String_value>,
"mss":<Double_value>,
"maxburst":<Double_value>,
"initialcwnd":<Double_value>,
"delayedack":<Double_value>,
"oooqsize":<Double_value>,
"maxpktpermss":<Double_value>,
"pktperretx":<Double_value>,
"minrto":<Double_value>,
"slowstartincr":<Double_value>,
"buffersize":<Double_value>,
"flavor":<String_value>,
"refcnt":<Double_value>,
"syncookie":<String_value>,
"kaprobeupdatelastactivity":<String_value>,
"dynamicreceivebuffering":<String_value>,
"ka":<String_value>,
"kaconnidletime":<Double_value>,
"kamaxprobes":<Double_value>,
"kaprobeinterval":<Double_value>,
"sendbuffsize":<Double_value>,
"mptcp":<String_value>,
"establishclientconn":<String_value>,
"tcpsegoffload":<String_value>,
"rstwindowattenuate":<String_value>,
"rstmaxack":<String_value>,
"timestamp":<String_value>,
"spoofsyndrop":<String_value>,
"ecn":<String_value>,
"mptcpdropdataonpreestsf":<String_value>,
"mptcpfastopen":<String_value>,
"mptcpsessiontimeout":<Double_value>,
"dsack":<String_value>,
"ackaggregation":<String_value>,
"frto":<String_value>,
"maxcwnd":<Double_value>,
"fack":<String_value>,
"tcpmode":<String_value>,
"tcpfastopen":<String_value>,
"hystart":<String_value>,
"dupackthresh":<Double_value>,
"burstratecontrol":<String_value>,
"tcprate":<Double_value>,
"rateqmax":<Double_value>,
"drophalfclosedconnontimeout":<String_value>,
"dropestconnontimeout":<String_value>,
"applyadaptivetcp":<String_value>,
"tcpfastopencookiesize":<Double_value>,
"taillossprobe":<String_value>
}]}

<!--NeedCopy-->

count

URL:http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/nstcpprofile?count=yes

HTTP Method:GET

Request Headers:

Cookie:NITRO_AUTH_TOKEN=<tokenvalue> Accept:application/json

Response:

HTTP Status Code on Success: 200 OK HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for Citrix ADC specific errors). The response payload provides details of the errorResponse Headers:

Content-Type:application/json

Response Payload:


{ "nstcpprofile": [ { "__count": "#no"} ] }

<!--NeedCopy-->
nstcpprofile