MPTCP Working Group F. Duchene Internet-Draft UCLouvain Expires: April 21, 2016 C. Paasch Apple O. Bonaventure UCLouvain October 19, 2015 Multipath TCP MIB draft-duchene-mptcp-mib-00 Abstract This memo proposes a simple Management Information Base (MIB) that gathers statistics and counters about the operation of a Multipath TCP implementation. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on April 21, 2016. Copyright Notice Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of Duchene, et al. Expires April 21, 2016 [Page 1] Internet-Draft MPTCP MIB October 2015 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. The MPTCP Group . . . . . . . . . . . . . . . . . . . . . . . 2 3. IANA considerations . . . . . . . . . . . . . . . . . . . . . 8 4. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 9 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 6. Normative References . . . . . . . . . . . . . . . . . . . . 9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 1. Introduction Multipath TCP is an extension to TCP [RFC0793] that was specified in [RFC6824]. Multipath TCP allows hosts to use multiple paths to send and receive the data belonging to one connection. For this, a Multipath TCP is composed of several TCP connections that are called subflows. This memo proposes a simple Management Information Base (MIB) that gathers statistics and counters about the operation of a Multipath TCP implementation. They are designed to give a better understanding of Multipath TCP operations. In particular, the MIB covers the different failure conditions that might occur and would trigger a fallback to regular TCP of the MPTCP connection or the failure of a subflow. These failures have important operational implications. Further, several counters are defined to track the transmission and reception of data at the MPTCP-layer. These counters might help to understand the performance of MPTCP. 2. The MPTCP Group mptcp OBJECT IDENTIFIER ::= { mib-2 TBD } - TBD mptcpPassiveConn OBJECT-TYPE Duchene, et al. Expires April 21, 2016 [Page 2] Internet-Draft MPTCP MIB October 2015 SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP connections that made a direct transition to the ESTABLISHED state from the SYN-RECEIVED + MP_CAPABLE state. In this MIB, an MPTCP connection is defined as a TCP connection where both the SYN and the SYN + ACK segments contained the MP_CAPABLE options." ::= { mptcp 1 } mptcpActiveConn OBJECT-TYPE SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP connections that made a direct transition to the ESTABLISHED state from the SYN-SENT + MP_CAPABLE state." ::= { mptcp 2 } mptcpPassiveCsumEnabled OBJECT-TYPE SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP connections that made a direct transition to the ESTABLISHED state from the SYN-RECEIVED + MP_CAPABLE state with the DSS CHECKSUM enabled." ::= { mptcp 3 } mptcpActiveCsumEnabled OBJECT-TYPE Duchene, et al. Expires April 21, 2016 [Page 3] Internet-Draft MPTCP MIB October 2015 SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP connections that made a direct transition to the ESTABLISHED state from the SYN-SENT + MP_CAPABLE state with the DSS CHECKSUM enabled." ::= { mptcp 4 } mptcpPassiveRemovedSubflows OBJECT-TYPE SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP subflows that made a transition to the CLOSED state from the ESTABLISHED state upon reception of a segment containing REM_ADDR or RST." ::= { mptcp 5 } mptcpActiveRemovedSubflows OBJECT-TYPE SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP subflows that made a transition to the CLOSED state from the ESTABLISHED state upon emission of a segment containing REM_ADDR or RST." ::= { mptcp 6 } mptcpPassiveAddedSubflows OBJECT-TYPE SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP subflows that made a direct transition to the ESTABLISHED state from the SYN-RECEIVED + MP_JOIN state." ::= { mptcp 7 } mptcpActiveAddedSubflows OBJECT-TYPE Duchene, et al. Expires April 21, 2016 [Page 4] Internet-Draft MPTCP MIB October 2015 SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP subflows that made a transition to the ESTABLISHED state from the SYN-SENT + MP_JOIN state through the PRE_ESTABLISHED state." ::= { mptcp 8 } mptcpFailedToEstablishInitialSubflows OBJECT-TYPE SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of initial MPTCP subflows (i.e. the initial SYN segment contained the MP_CAPABLE option) that could not transition to the ESTABLISHED state from the SYN-RECEIVED or SYN-SENT states. The reason being one of: - the SYN+ACK didn't contain a MP_CAPABLE - the first ACK didn't contain a DATA_ACK or the first data-segment did not contain a DSS mapping - 4-way handshake didn't complete (SYN+ACK or ACK not received) Given these reasons, a connection could not get established or fell back to regular TCP. They are most likely due to middleboxes interfering with the connection." ::= { mptcp 9 } mptcpFailedToEstablishSubflows OBJECT-TYPE Duchene, et al. Expires April 21, 2016 [Page 5] Internet-Draft MPTCP MIB October 2015 SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of non-initial MPTCP subflows (i.e. subflows started with a SYN containing the MP_JOIN option) that could not transition to the ESTABLISHED state from the SYN-RECEIVED or SYN-SENT states. The reason being: - the SYN+ACK didn't contain a MP_JOIN - the first ACK didn't contain a DATA_ACK or the first data-segment did not contain a DSS mapping - The connection had already falled back to TCP - the 4-way handshake didn't complete (SYN+ACK or ACK not received) Given, these reasons a subflow could not get established. They are most likely due to middleboxes interfence." ::= { mptcp 10 } mptcpFallbackEstablishedConnections OBJECT-TYPE SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP connections that fell back to regular TCP while being already ESTABLISHED. The reason being one of: - Reception of more than a window worth of data without DSS - Reception of a segment with an incorrect DSS checksum This happens when a middlebox is interfering with the data flow after the connection has been successfully established." ::= { mptcp 11 } mptcpOtherFailures OBJECT-TYPE SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP connections were an invalid segment was received - Bad DSS-mapping (aka, the specified DSS-mapping does not map the TCP sequence numbers) - All other possible failures" ::= { mptcp 12 } Duchene, et al. Expires April 21, 2016 [Page 6] Internet-Draft MPTCP MIB October 2015 mptcpInvalidJoinReceived OBJECT-TYPE SYNTAX Counter UNITS "segments" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of SYN+MP_JOIN segments that were received but discarded due to : - Error in the HMAC - Token not found" ::= { mptcp 13 } mptcpFailRX OBJECT-TYPE SYNTAX Counter UNITS "connections" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MPTCP connections where the remote host initiated a fallback. This counter is triggered by the reception of a MP_FAIL." ::= { mptcp 14 } mptcpRetrans OBJECT-TYPE SYNTAX Counter UNITS "segments" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of segments that where retransmitted at the MPTCP (meta) level, including all the types of reinjections." ::= { mptcp 15 } mptcpFastCloseRX OBJECT-TYPE SYNTAX Counter UNITS "segments" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MP_FASTCLOSE received." ::= { mptcp 16 } mptcpFastCloseTX OBJECT-TYPE Duchene, et al. Expires April 21, 2016 [Page 7] Internet-Draft MPTCP MIB October 2015 SYNTAX Counter UNITS "segments" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of MP_FASTCLOSE emitted." ::= { mptcp 17 } mptcpReceivedInOrder OBJECT-TYPE SYNTAX Counter UNITS "segments" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of segments that were received in order at the MPTCP (meta) level." ::= { mptcp 18 } mptcpReceivedOutOfOrder OBJECT-TYPE SYNTAX Counter UNITS "segments" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of segments that were received out of order at the MPTCP (meta) level." ::= { mptcp 19 } mptcpSentSegments OBJECT-TYPE SYNTAX Counter UNITS "segments" MAX-ACCESS read-only STATUS current DESCRIPTION "The number of segments that were emitted at the MPTCP (meta) level." ::= { mptcp 20 } END 3. IANA considerations The MIB module in this document uses the following IANA-assigned OBJECT IDENTIFIER values recorded in the SMI Numbers registry: Duchene, et al. Expires April 21, 2016 [Page 8] Internet-Draft MPTCP MIB October 2015 Descriptor OBJECT IDENTIFIER value ------------ ----------------------- mptcp { mib-2 TBD} RFC Editor: The IANA is requested to assign a value for "TBD" under the 'mib-2' subtree and to record the assignment in the SMI Numbers registry. When the assignment has been made, the RFC Editor is asked to replace "TBD" (here and in the MIB module) with the assigned value and to remove this note. 4. Conclusion This document has proposed a simple Management Information Base (MIB) to manage Multipath TCP. 5. Acknowledgements This work was partially supported by the FP7 Trilogy-2 project funded by the EC. 6. Normative References [RFC0793] Postel, J., "Transmission Control Protocol", STD 7, RFC 793, DOI 10.17487/RFC0793, September 1981, . [RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure, "TCP Extensions for Multipath Operation with Multiple Addresses", RFC 6824, DOI 10.17487/RFC6824, January 2013, . Authors' Addresses Fabien Duchene UCLouvain Email: fabien.duchene@uclouvain.be Christoph Paasch Apple Email: cpaasch@apple.com Duchene, et al. Expires April 21, 2016 [Page 9] Internet-Draft MPTCP MIB October 2015 Olivier Bonaventure UCLouvain Email: Olivier.Bonaventure@uclouvain.be Duchene, et al. Expires April 21, 2016 [Page 10]