ADC NITRO APIs

protocolmptcp

Statistics for mptcp protocol resource.

Properties

(click to see Operations )

Name Data Type Permissions Description
clearstats Read-write Clear the statsistics / counters.

Possible values = basic, full
mptcptotmpcapsession Read-only MPTCP total sessions created
mptcpmpcapsessionrate Read-only Rate (/s) counter for mptcptotmpcapsession
mptcptotsfconn Read-only MPTCP total Subflow connections created
mptcpsfconnrate Read-only Rate (/s) counter for mptcptotsfconn
mptcpcurmpcapablesessions Read-only The number of current mptcp sessions.
mptcpcursfconnections Read-only The number of current mptcp subflow connections.
mptcpcurpendingjoin Read-only The number of current mptcp subflow connections in pending state.
mptcpcursesswithoutsfs Read-only Current Multipath TCP sessions without any subflows
mptcptotmpcapsyn Read-only MPTCP total MP_CAPABLE received
mptcpmpcapsynrate Read-only Rate (/s) counter for mptcptotmpcapsyn
mptcptotmpcapsteered Read-only Total MP_CAPABLE sessions steered
mptcpmpcapsteeredrate Read-only Rate (/s) counter for mptcptotmpcapsteered
mptcptotconnest Read-only Total MP_CAPABLE sessions created.
mptcpconnestrate Read-only Rate (/s) counter for mptcptotconnest
mptcptotmpcapsynacksent Read-only Total number of MP_CAPABLE SYN/ACKs sent.
mptcpmpcapsynacksentrate Read-only Rate (/s) counter for mptcptotmpcapsynacksent
mptcptotmpcapfackrecvd Read-only Total number of MP_CAPABLE Final ACKs received.
mptcpmpcapfackrecvdrate Read-only Rate (/s) counter for mptcptotmpcapfackrecvd
mptcptotmpjoinsyn Read-only MPTCP total MP_JOIN syn received
mptcpmpjoinsynrate Read-only Rate (/s) counter for mptcptotmpjoinsyn
mptcptotmpjoinsteered Read-only Total MP_JOIN subflows steered
mptcpmpjoinsteeredrate Read-only Rate (/s) counter for mptcptotmpjoinsteered
mptcptotmpjoinsynacksent Read-only Total MP_JOIN SYN/ACKs sent.
mptcpmpjoinsynacksentrate Read-only Rate (/s) counter for mptcptotmpjoinsynacksent
mptcptotmpjoinfackrecvd Read-only Total number of MP_JOIN Final ACKs
mptcpmpjoinfackrecvdrate Read-only Rate (/s) counter for mptcptotmpjoinfackrecvd
mptcptotmpjoin4thacksent Read-only Total number of Subflow final ACK from peer in 3 way handshake validated with 4th ACK.
mptcpmpjoin4thacksentrate Read-only Rate (/s) counter for mptcptotmpjoin4thacksent
mptcptotestsfreplaced Read-only MPTCP Total established subflows replaced due to new MP_JOIN.
mptcpestsfreplacedrate Read-only Rate (/s) counter for mptcptotestsfreplaced
mptcptotpendsfreplaced Read-only MPTCP Total pending subflows replaced due to new MP_JOIN.
mptcppendsfreplacedrate Read-only Rate (/s) counter for mptcptotpendsfreplaced
mptcptotfreshackfrwd Read-only Fresh ACK recieved on a subflow
mptcpfreshackfrwdrate Read-only Rate (/s) counter for mptcptotfreshackfrwd
mptcpplainackfallback Read-only MPTCP Fallback to regular tcp on receiving plain ACK for DSS.
mptcpplainackfallbackrate Read-only Rate (/s) counter for mptcpplainackfallback
mptcpinfinitemaprecvd Read-only MPTCP Received and set infinite map and fallen back to regular TCP.
mptcpinfinitemaprecvdrate Read-only Rate (/s) counter for mptcpinfinitemaprecvd
mptcptotaddrremoved Read-only Total number of addresses removed from MPTCP connection with REMOVE_ADDR option
mptcpaddrremovedrate Read-only Rate (/s) counter for mptcptotaddrremoved
mptcptotdss Read-only Total number of Data Sequence Signal packets.
mptcpdssrate Read-only Rate (/s) counter for mptcptotdss
mptcptotrxdss Read-only MPTCP Total Data Sequence Signal packets received.
mptcprxdssrate Read-only Rate (/s) counter for mptcptotrxdss
mptcptottxdss Read-only MMPTCP Total Data Sequence Signal packets sent
mptcptxdssrate Read-only Rate (/s) counter for mptcptottxdss
mptcptotdssa Read-only Total Data Sequence Signal packets during data transfer with DATA_ACK
mptcpdssarate Read-only Rate (/s) counter for mptcptotdssa
mptcptotdssfreshack Read-only MPTCP total Data Sequence Signal packets during data transfer with fresh ACK
mptcpdssfreshackrate Read-only Rate (/s) counter for mptcptotdssfreshack
mptcptotdssm Read-only MPTCP total data Sequence Signal packets with Data Sequence Mapping and checksum
mptcpdssmrate Read-only Rate (/s) counter for mptcptotdssm
mptcptotinfinitemapfrwd Read-only MPTCP received Data Sequence Signal with infinite map flag (Fallback to regular TCP).
mptcpinfinitemapfrwdrate Read-only Rate (/s) counter for mptcptotinfinitemapfrwd
mptcptotdatalessthandatalen Read-only MPTCP Map amount of data not yet received.
mptcpdatalessthandatalenrate Read-only Rate (/s) counter for mptcptotdatalessthandatalen
mptcppriobackuprx Read-only MPTCP Subflow used as backup path.
mptcppriobackuprxrate Read-only Rate (/s) counter for mptcppriobackuprx
mptcpprioclearbackuprx Read-only Subflow earlier used only as a backup subflow, changes to regular subflow with MP_PRIO option
mptcpprioclearbackuprxrate Read-only Rate (/s) counter for mptcpprioclearbackuprx
mptcptottxdatafin Read-only Total MPTCP connection close requests sent
mptcptxdatafinrate Read-only Rate (/s) counter for mptcptottxdatafin
mptcptotrxdatafin Read-only Total MPTCP connection close(DATA_FIN) requests received.
mptcprxdatafinrate Read-only Rate (/s) counter for mptcptotrxdatafin
mptcptottxsffin Read-only MPTCP total subflow close requests.
mptcptxsffinrate Read-only Rate (/s) counter for mptcptottxsffin
mptcperrinvalcookie Read-only MPTCP invalid cookie received on MP_CAPABLE final ACK.
mptcperrinvalcookierate Read-only Rate (/s) counter for mptcperrinvalcookie
mptcperrextnflagset Read-only Extension flag is set on MP_CAPABLE request.
mptcperrextnflagsetrate Read-only Rate (/s) counter for mptcperrextnflagset
mptcperrresflagset Read-only MPTCP One or more reserved bits are set on MP_CAPABLE request.
mptcperrresflagsetrate Read-only Rate (/s) counter for mptcperrresflagset
mptcperrunknowntoken Read-only MPTCP invalid token received on MP_JOIN request.
mptcperrunknowntokenrate Read-only Rate (/s) counter for mptcperrunknowntoken
mptcperraddridexist Read-only MPTCP MP_JOIN request on existing address id.
mptcperraddridexistrate Read-only Rate (/s) counter for mptcperraddridexist
mptcperraddrid0 Read-only MPTCP MP_JOIN request on address id 0.
mptcperraddrid0rate Read-only Rate (/s) counter for mptcperraddrid0
mptcperrmaxsf Read-only MPTCP new MP_JOIN request after maximum configured subflows are established.
mptcperrmaxsfrate Read-only Rate (/s) counter for mptcperrmaxsf
mptcperrjointhreshold Read-only MPTCP Global pending MP_JOIN threshold limit is reached, new MP_JOIN request will be dropped sending RST
mptcperrjointhresholdrate Read-only Rate (/s) counter for mptcperrjointhreshold
mptcperrjoinafterfallback Read-only MPTCP New MP_JOIN request received after fallback to regular tcp.
mptcperrjoinafterfallbackrate Read-only Rate (/s) counter for mptcperrjoinafterfallback
mptcperrinvalmac Read-only MPTCP invalid MAC on MP_JOIN final ACK.
mptcperrinvalmacrate Read-only Rate (/s) counter for mptcperrinvalmac
mptcperrinvalopts Read-only MPTCP invalid mptcp option is received and is dropped.
mptcperrinvaloptsrate Read-only Rate (/s) counter for mptcperrinvalopts
mptcperroptiondiscarded Read-only Invalid subtype in MPTCP option field and hence discarded.
mptcperroptiondiscardedrate Read-only Rate (/s) counter for mptcperroptiondiscarded
mptcperroptsnosession Read-only MPTCP options sent on non existing connection/subflow PCBs.
mptcperroptsnosessionrate Read-only Rate (/s) counter for mptcperroptsnosession
mptcperrinvalremaddr Read-only MPTCP remove address request received on invalid/unknown address id.
mptcperrinvalremaddrrate Read-only Rate (/s) counter for mptcperrinvalremaddr
mptcperroptssendrst Read-only MPTCP sent RST on receiving improper option field.
mptcperroptssendrstrate Read-only Rate (/s) counter for mptcperroptssendrst
mptcperrremaddrself Read-only MPTCP remove address request for self address.
mptcperrremaddrselfrate Read-only Rate (/s) counter for mptcperrremaddrself
mptcperrrssffail Read-only Add RSS filter to steer traffic to right node on established MPTCP session failed.
mptcperrrssffailrate Read-only Rate (/s) counter for mptcperrrssffail
mptcperrnopayloadlenpkt Read-only MPTCP Payload length not specified in packet.
mptcperrnopayloadlenpktrate Read-only Rate (/s) counter for mptcperrnopayloadlenpkt
mptcperrunsupportedmssnegotiated Read-only MPTCP Unsupported MSS negotiated error.
mptcperrunsupportedmssnegotiatedrate Read-only Rate (/s) counter for mptcperrunsupportedmssnegotiated
mptcperrbadcksum Read-only MPTCP checksum failed. Connection will fallback to regular tcp.
mptcperrbadcksumrate Read-only Rate (/s) counter for mptcperrbadcksum
mptcperrcryptonotsupported Read-only MPTCP client crypto algorithm not supported.
mptcperrcryptonotsupportedrate Read-only Rate (/s) counter for mptcperrcryptonotsupported
mptcperrversionnotsupported Read-only MPTCP MP_CAPABLE request from unsupported mptcp client.
mptcperrversionnotsupportedrate Read-only Rate (/s) counter for mptcperrversionnotsupported
mptcpplainackrst Read-only MPTCP Sent RST on receiving plain ACK for DSS.
mptcpplainackrstrate Read-only Rate (/s) counter for mptcpplainackrst
mptcperrdatafinpassive Read-only MPTCP Data FIN received on passive subflow
mptcperrdatafinpassiverate Read-only Rate (/s) counter for mptcperrdatafinpassive
mptcperrfastclose Read-only MPTCP FAST CLOSE sent.
mptcperrfastcloserate Read-only Rate (/s) counter for mptcperrfastclose
mptcperrfastclosepassive Read-only MPTCP Fast close received on passive subflow.
mptcperrfastclosepassiverate Read-only Rate (/s) counter for mptcperrfastclosepassive
mptcperrfastclosekey Read-only MPTCP FAST_CLOSE received with invalid key and the packet is dropped.
mptcperrfastclosekeyrate Read-only Rate (/s) counter for mptcperrfastclosekey
mptcpmpfailsent Read-only MPTCP Total MP_FAIL sent due to checksum failure.
mptcpmpfailsentrate Read-only Rate (/s) counter for mptcpmpfailsent
mptcpmpfailrecvd Read-only MPTCP Total MP_FAIL received and fallback to regular TCP.
mptcpmpfailrecvdrate Read-only Rate (/s) counter for mptcpmpfailrecvd
mptcperrnomappktrcvd Read-only MPTCP Packet received with no Data Sequence Mapping.
mptcperrnomappktrcvdrate Read-only Rate (/s) counter for mptcperrnomappktrcvd
mptcptotmoredatarcvd Read-only MPTCP More data received than the available Data Sequence Mapping.
mptcpmoredatarcvdrate Read-only Rate (/s) counter for mptcptotmoredatarcvd
mptcperrbadmapconndrop Read-only MPTCP Drop the session incase of invalid Data Sequence map.
mptcperrbadmapconndroprate Read-only Rate (/s) counter for mptcperrbadmapconndrop
mptcperrdupmaprecvd Read-only MPTCP Duplicate maps in Data Sequence map table.
mptcperrdupmaprecvdrate Read-only Rate (/s) counter for mptcperrdupmaprecvd
mptcperrinvalidsfn Read-only MPTCP subflow map doesn’t exactly match MPTCP session mapping.
mptcperrinvalidsfnrate Read-only Rate (/s) counter for mptcperrinvalidsfn
mptcperrmapexists Read-only MPTCP sequence map already exists.
mptcperrmapexistsrate Read-only Rate (/s) counter for mptcperrmapexists
mptcperrretxpktrcvd Read-only Retransmitted Data Recevied on MPTCP session.
mptcperrretxpktrcvdrate Read-only Rate (/s) counter for mptcperrretxpktrcvd
mptcperrsfsessionallocfail Read-only Attaching the subflow to MPTCP session failed due to failure in allocating memory to subflow map table.
mptcperrsfsessionallocfailrate Read-only Rate (/s) counter for mptcperrsfsessionallocfail
mptcperrmpcapsessionallocfail Read-only Creating a MPTCP connection failed due to failure in allocating memory to MPTCP connection management structure.
mptcperrmpcapsessionallocfailrate Read-only Rate (/s) counter for mptcperrmpcapsessionallocfail
mptcptotmpcapsfpcballoc Read-only Allocating memory to TCP protocol control block(PCB) for subflow failed.
mptcpmpcapsfpcballocrate Read-only Rate (/s) counter for mptcptotmpcapsfpcballoc
mptcptotmpcballocfailed Read-only Allocating memory to MPTCP protocol control block failed.
mptcpmpcballocfailedrate Read-only Rate (/s) counter for mptcptotmpcballocfailed
mptcperrnsballocfailed Read-only Failed to allocate memory to output MPTCP packet.
mptcperrnsballocfailedrate Read-only Rate (/s) counter for mptcperrnsballocfailed
mptcperrnosffreensb Read-only MPTCP output a packet without any subflow PCB.
mptcperrnosffreensbrate Read-only Rate (/s) counter for mptcperrnosffreensb

Operations

(click to see Properties )

  • GET (ALL)

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 NetScaler appliance, the URL is as follows:

    http:// <netscaler-ip-address> /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 NetScaler 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 red and placeholder content is marked in green

get (all)

URL: http:// <netscaler-ip-address> /nitro/v1/stat/protocolmptcp

Query-parameters:

args

http:// <netscaler-ip-address> /nitro/v1/stat/protocolmptcp? args=detail: <Boolean_value> ,fullvalues: <Boolean_value> ,ntimes: <Double_value> ,logfile: <String_value> ,clearstats: <String_value>

Use this query-parameter to get protocolmptcp resources based on additional properties.

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 NetScaler-specific errors). The response payload provides details of the error

Response Header:

Content-Type:application/json

Response Payload:


{  "protocolmptcp": [ {
      "mptcperrinvalopts":<Double_value>,
      "mptcperraddrid0rate":<Double_value>,
      "mptcperrbadmapconndroprate":<Double_value>,
      "mptcperrrssffailrate":<Double_value>,
      "mptcpsfconnrate":<Double_value>,
      "mptcptotmpjoinsynacksent":<Double_value>,
      "mptcperrremaddrself":<Double_value>,
      "mptcperraddridexist":<Double_value>,
      "mptcperrunsupportedmssnegotiatedrate":<Double_value>,
      "mptcperrinvalcookie":<Double_value>,
      "mptcptotrxdss":<Double_value>,
      "mptcperrfastclosekey":<Double_value>,
      "mptcperrinvaloptsrate":<Double_value>,
      "mptcprxdssrate":<Double_value>,
      "mptcperrdatafinpassiverate":<Double_value>,
      "mptcperrjoinafterfallbackrate":<Double_value>,
      "mptcpconnestrate":<Double_value>,
      "mptcperrmaxsf":<Double_value>,
      "mptcperrinvalremaddr":<Double_value>,
      "mptcperrinvalidsfn":<Double_value>,
      "mptcpmpfailsent":<Double_value>,
      "mptcperrfastclosekeyrate":<Double_value>,
      "mptcperrrssffail":<Double_value>,
      "mptcpmpjoinfackrecvdrate":<Double_value>,
      "mptcpinfinitemaprecvdrate":<Double_value>,
      "mptcpdssmrate":<Double_value>,
      "mptcperroptssendrst":<Double_value>,
      "mptcpmpjoinsynacksentrate":<Double_value>,
      "mptcpcurpendingjoin":<Double_value>,
      "mptcperrjoinafterfallback":<Double_value>,
      "mptcperrinvalmacrate":<Double_value>,
      "mptcpmpcapsessionrate":<Double_value>,
      "mptcptotmpcapsynacksent":<Double_value>,
      "mptcperrextnflagset":<Double_value>,
      "mptcptotconnest":<Double_value>,
      "mptcppriobackuprxrate":<Double_value>,
      "mptcprxdatafinrate":<Double_value>,
      "mptcperrfastcloserate":<Double_value>,
      "mptcptotrxdatafin":<Double_value>,
      "mptcpaddrremovedrate":<Double_value>,
      "mptcppendsfreplacedrate":<Double_value>,
      "mptcperrfastclosepassiverate":<Double_value>,
      "mptcperrbadmapconndrop":<Double_value>,
      "mptcptxsffinrate":<Double_value>,
      "mptcpmpfailrecvd":<Double_value>,
      "mptcperrresflagsetrate":<Double_value>,
      "mptcptottxdss":<Double_value>,
      "mptcperrnopayloadlenpkt":<Double_value>,
      "mptcpplainackfallback":<Double_value>,
      "mptcpdatalessthandatalenrate":<Double_value>,
      "mptcperrextnflagsetrate":<Double_value>,
      "mptcptottxsffin":<Double_value>,
      "mptcptotfreshackfrwd":<Double_value>,
      "mptcperrnosffreensbrate":<Double_value>,
      "mptcperrnomappktrcvd":<Double_value>,
      "mptcptotmpjoinfackrecvd":<Double_value>,
      "mptcperrjointhreshold":<Double_value>,
      "mptcperroptsnosession":<Double_value>,
      "mptcpmpjoinsynrate":<Double_value>,
      "mptcptotestsfreplaced":<Double_value>,
      "mptcperroptiondiscarded":<Double_value>,
      "mptcperrmpcapsessionallocfailrate":<Double_value>,
      "mptcperrbadcksum":<Double_value>,
      "mptcptotmpjoinsyn":<Double_value>,
      "mptcperrdatafinpassive":<Double_value>,
      "mptcpplainackfallbackrate":<Double_value>,
      "mptcperrremaddrselfrate":<Double_value>,
      "mptcperroptiondiscardedrate":<Double_value>,
      "mptcperrfastclose":<Double_value>,
      "mptcpfreshackfrwdrate":<Double_value>,
      "mptcptotmpjoin4thacksent":<Double_value>,
      "mptcpmpjoinsteeredrate":<Double_value>,
      "mptcptotaddrremoved":<Double_value>,
      "mptcpplainackrstrate":<Double_value>,
      "mptcperrinvalidsfnrate":<Double_value>,
      "mptcpmpcapfackrecvdrate":<Double_value>,
      "mptcperraddrid0":<Double_value>,
      "mptcpmpfailsentrate":<Double_value>,
      "mptcpcurmpcapablesessions":<Double_value>,
      "mptcperrcryptonotsupportedrate":<Double_value>,
      "mptcptotmpcapsyn":<Double_value>,
      "mptcpcursesswithoutsfs":<Double_value>,
      "mptcpprioclearbackuprxrate":<Double_value>,
      "mptcperrversionnotsupportedrate":<Double_value>,
      "mptcpprioclearbackuprx":<Double_value>,
      "mptcperrmapexistsrate":<Double_value>,
      "mptcpmoredatarcvdrate":<Double_value>,
      "mptcpmpfailrecvdrate":<Double_value>,
      "mptcptotdssa":<Double_value>,
      "mptcptotdss":<Double_value>,
      "mptcperrnsballocfailed":<Double_value>,
      "mptcptotmpcapsfpcballoc":<Double_value>,
      "mptcperrunsupportedmssnegotiated":<Double_value>,
      "mptcperrmapexists":<Double_value>,
      "mptcpmpjoin4thacksentrate":<Double_value>,
      "mptcperrnsballocfailedrate":<Double_value>,
      "mptcppriobackuprx":<Double_value>,
      "mptcperrnomappktrcvdrate":<Double_value>,
      "mptcpmpcballocfailedrate":<Double_value>,
      "mptcpinfinitemaprecvd":<Double_value>,
      "mptcperrnopayloadlenpktrate":<Double_value>,
      "mptcperrsfsessionallocfail":<Double_value>,
      "mptcperroptsnosessionrate":<Double_value>,
      "mptcperrretxpktrcvdrate":<Double_value>,
      "mptcpdssarate":<Double_value>,
      "mptcptotmpcapfackrecvd":<Double_value>,
      "mptcptotmoredatarcvd":<Double_value>,
      "mptcptotsfconn":<Double_value>,
      "mptcptotmpjoinsteered":<Double_value>,
      "mptcperrunknowntokenrate":<Double_value>,
      "mptcpplainackrst":<Double_value>,
      "mptcperrinvalcookierate":<Double_value>,
      "mptcperrnosffreensb":<Double_value>,
      "mptcpdssrate":<Double_value>,
      "mptcptxdssrate":<Double_value>,
      "mptcpmpcapsynrate":<Double_value>,
      "mptcpmpcapsteeredrate":<Double_value>,
      "mptcpmpcapsfpcballocrate":<Double_value>,
      "mptcptotinfinitemapfrwd":<Double_value>,
      "mptcperrdupmaprecvd":<Double_value>,
      "mptcptotmpcapsteered":<Double_value>,
      "mptcperrretxpktrcvd":<Double_value>,
      "mptcptotmpcapsession":<Double_value>,
      "mptcperrunknowntoken":<Double_value>,
      "mptcptotmpcballocfailed":<Double_value>,
      "mptcptotdatalessthandatalen":<Double_value>,
      "mptcperrfastclosepassive":<Double_value>,
      "mptcperrinvalremaddrrate":<Double_value>,
      "mptcperrsfsessionallocfailrate":<Double_value>,
      "mptcperrjointhresholdrate":<Double_value>,
      "mptcperrresflagset":<Double_value>,
      "mptcperraddridexistrate":<Double_value>,
      "mptcpestsfreplacedrate":<Double_value>,
      "mptcpcursfconnections":<Double_value>,
      "mptcpinfinitemapfrwdrate":<Double_value>,
      "mptcpmpcapsynacksentrate":<Double_value>,
      "mptcperrinvalmac":<Double_value>,
      "mptcptotpendsfreplaced":<Double_value>,
      "mptcptotdssm":<Double_value>,
      "mptcperrversionnotsupported":<Double_value>,
      "mptcperrmpcapsessionallocfail":<Double_value>,
      "mptcperrdupmaprecvdrate":<Double_value>,
      "mptcperroptssendrstrate":<Double_value>,
      "mptcptottxdatafin":<Double_value>,
      "mptcperrcryptonotsupported":<Double_value>,
      "mptcperrbadcksumrate":<Double_value>,
      "mptcperrmaxsfrate":<Double_value>,
      "mptcptxdatafinrate":<Double_value>,
      "mptcpdssfreshackrate":<Double_value>,
      "mptcptotdssfreshack":<Double_value>
}]}

<!--NeedCopy-->
protocolmptcp