vnfs: Enable PVP using vhost-user
[vswitchperf.git] / test_spec / vswitchperf_ltd.md
old mode 100755 (executable)
new mode 100644 (file)
index 9c4d921..1d34167
@@ -306,6 +306,40 @@ The following represents possible deployments which can help to determine the pe
     +-----------------------------------------------------------------------------------------------------------+__|
 </code></pre>
 
+  - HOST 1(Physical port → virtual switch → VNF → virtual switch → Physical port) → HOST 2(Physical port → virtual switch → VNF → virtual switch → Physical port)
+
+<pre><code>
+
+ +--------------------------------------------+                 +------------------------------------------+
+ |   +---------------------------------+      |                 |    +--------------------------------+    |
+ |   |          Application            |      |                 |    |         Application            |    |
+ |   +----------------------------+----+      |                 |    +-------------------------+------+    |
+ |         ^                      |           |                 |           ^                  |           |
+ |         |                      v           |                 |           |                  v           |
+ | +-------+----------+  +------------------+ |                 | +---------+--------+  +----------------+ |
+ | | Logical port 0   |  | Logical port 1   | |                 | | Logical port 0   |  |Logical port 1  | |
+ +-+------------------+--+------------------+-+                 +-+------------------+--+------+---------+-+
+           ^                      |                                         ^                  |
+           |                      |                                         |                  |
+           |                      v                                         |                  v
+ +-+-------+----------+--+------------------+-+                 +-+---------+--------+--+----------------+-+
+ | | Logical port 0   |  |  Logical port 1  | |                 | | Logical port 0   |  | Logical port 1 | |
+ | +------------------+  +----------+-------+ |                 | +------------------+  +------+---------+ |
+ |          ^                       |         |                 |           ^                  |           |
+ |          |                       |         |                 |           |                  |           |
+ |          |       vswitch         v         |                 |           |     vswitch      v           |
+ | +--------+---------+  +------------------+ |                 | +---------+--------+  +----------------+ |
+ | |    phy port      |  |    phy port      | |                 | |  phy port        |  |  phy port      | |
+ +-+--------+---------+--+----------+-------+-+                 +-+---------+--------+--+------+---------+-+
+            ^                       +---------------------------------------+                  |
+            |                                                                                  v
+ +----------+----------------------------------------------------------------------------------+-----------+
+ |                                                                                                         |
+ |                                    traffic generator                                                    |
+ |                                                                                                         |
+ +---------------------------------------------------------------------------------------------------------+
+</code></pre>
+
 **Note:** For tests where the traffic generator and/or measurement receiver are implemented on VM and connected to the virtual switch through vNIC, the issues of shared resources and interactions between the measurement devices and the device under test must be considered.
 
  ####General Methodology:
@@ -321,7 +355,7 @@ The following represents possible deployments which can help to determine the pe
  - Reordering check: Tests should confirm that packets within a flow are not reordered.
  - Duplex: Unidirectional / Bidirectional. Default: Full duplex with traffic transmitting in both directions, as network traffic generally does not flow in a single direction. By default the data rate of transmitted traffic should be the same in both directions, please note that asymmetric traffic (e.g. downlink-heavy) tests will be mentioned explicitly for the relevant test cases.
  - Number of Flows: Default for non scalability tests is a single flow. For scalability tests the goal is to test with maximum supported flows but where possible will test up to 10 Million flows. Start with a single flow and scale up. By default flows should be added sequentially, tests that add flows simultaneously will explicitly call out their flow addition behaviour. Packets are generated across the flows uniformly with no burstiness.
- - Traffic Types: UDP, SCTP, RTP, GTP and UDP traffic.
+ - Traffic Types: UDP, SCTP, RTP and GTP traffic.
  - Deployment scenarios are:
    - Physical → virtual switch → physical.
    - Physical → virtual switch → VNF → virtual switch → physical.
@@ -335,7 +369,7 @@ The following represents possible deployments which can help to determine the pe
  **Note**: For throughput tests unless stated otherwise, test configurations should ensure that traffic traverses the installed flows through the switch, i.e. flows are installed and have an appropriate time out that doesn't expire before packet transmission starts.
 
 #####Flow Classification:
-Virtual switches group packets into flows by processing and matching particular header fields in the packet or frame, or by matching packets based on the input ports into the vSwitch. Thus a flow is considered to be a sequence of packets that have a shared set of header field values or have arrived on the same port. Performance results can vary based on the parameters the vSwitch uses to match for a flow. The recommended  flow classification parameters for any vSwitch performance tests are: the input port, the source IP address, the destination IP address and the Ethernet protocol type field. It is essential to increase the flow time-out time on a vSwitch before conducting any performance tests that do not measure the flow set-up time. Normally the first packet of a particular flow will install the flow in the vSwitch which adds an additional latency, subsequent packets of the same flow are not subject to this latency if the flow is already installed on the vSwitch.
+Virtual switches classify packets into flows by processing and matching particular header fields in the packet/frame and/or the input port where the packets/frames arrived. The vSwitch then carries out an action on the group of packets that match the classification parameters. Thus a flow is considered to be a sequence of packets that have a shared set of header field values or have arrived on the same port and have the same action applied to them. Performance results can vary based on the parameters the vSwitch uses to match for a flow. The recommended  flow classification parameters for L3 vSwitch performance tests are: the input port, the source IP address, the destination IP address and the Ethernet protocol type field. It is essential to increase the flow time-out time on a vSwitch before conducting any performance tests that do not measure the flow set-up time. Normally the first packet of a particular flow will install the flow in the vSwitch which adds an additional latency, subsequent packets of the same flow are not subject to this latency if the flow is already installed on the vSwitch.
 
  #####Test Priority
   Tests will be assigned a priority in order to determine which tests should be implemented immediately and which tests implementations can be deferred.
@@ -574,7 +608,7 @@ The starting point for defining the suite of tests for benchmarking the performa
   - Hardware details including:
     - Platform details.
     - Processor details.
-    - Memory information (type and size).
+    - Memory information (see below)
     - Number of enabled cores.
     - Number of cores used for the test.
     - Number of physical NICs, as well as their details (manufacturer, versions, type and the PCI slot they are plugged into).
@@ -588,6 +622,7 @@ The starting point for defining the suite of tests for benchmarking the performa
     - Selected vSwitch, version number or commit id used.
       - vSwitch launch command line if it has been parameterised.
       - Memory allocation to the vSwitch – which NUMA node it is using, and how many memory channels.
+      - Where the vswitch is built from source: compiler details including versions and the flags that were used to compile the vSwitch.
     - DPDK or any other SW dependency version number or commit id used.
     - Memory allocation to a VM - if it's from Hugpages/elsewhere.
     - VM storage type: snapshot/independent persistent/independent non-persistent.
@@ -597,6 +632,18 @@ The starting point for defining the suite of tests for benchmarking the performa
     - Number vNIC interrupt configuration.
     - Thread affinitization for the applications (including the vSwitch itself) on the host.
     - Details of Resource isolation, such as CPUs designated for Host/Kernel (isolcpu) and CPUs designated for specific processes (taskset).
+  - Memory Details
+    - Total memory
+    - Type of memory
+    - Used memory
+    - Active memory
+    - Inactive memory
+    - Free memory
+    - Buffer memory
+    - Swap cache
+    - Total swap
+    - Used swap
+    - Free swap
   - Test duration.
   - Number of flows.
   - Traffic Information:
@@ -762,7 +809,7 @@ The starting point for defining the suite of tests for benchmarking the performa
 
   **Description**:
 
-  The aim of this test is to characterize the ability of the DUT to process back-to-back frames. For each frame size previously defined under [Default Test Parameters](#DefaultParams), a burst of traffic is sent to the DUT with the minimum inter-frame gap between each frame. If the number of received frames equals the number of frames that were transmitted, the burst size should be increased and traffic is sent to the DUT again. The value measured is the back-to-back value, that is the maximum burst size the DUT can handle without any frame loss. 
+  The aim of this test is to characterize the ability of the DUT to process back-to-back frames. For each frame size previously defined under [Default Test Parameters](#DefaultParams), a burst of traffic is sent to the DUT with the minimum inter-frame gap between each frame. If the number of received frames equals the number of frames that were transmitted, the burst size should be increased and traffic is sent to the DUT again. The value measured is the back-to-back value, that is the maximum burst size the DUT can handle without any frame loss.
 
   **Expected Result**:
 
@@ -780,8 +827,8 @@ The starting point for defining the suite of tests for benchmarking the performa
    - Physical → virtual switch → physical.
 
 <br/>
-  - #####Test ID: LTD.Throughput.RFC2544.Soak
-  **Title**: RFC 2544 X% packet loss Throughput Soak Test
+  - #####Test ID: LTD.Throughput.RFC2889.Soak
+  **Title**: RFC 2889 X% packet loss Throughput Soak Test
 
   **Prerequisite Test** LTD.Throughput.RFC2544.PacketLossRatio
 
@@ -802,26 +849,22 @@ The starting point for defining the suite of tests for benchmarking the performa
   The following are the metrics collected for this test:
 
    - Throughput stability of the DUT.
-     - This means reporting the number of packets lost per time interval and reporting any time intervals with packet loss. An interval of 60s is suggested.
+     - This means reporting the number of packets lost per time interval and reporting any time intervals with packet loss. The [RFC2889] Forwarding Rate shall be measured in each interval. An interval of 60s is suggested.
    - CPU and memory utilization may also be collected as part of this test, to determine the vSwitch's performance footprint on the system.
    - The [RFC5481] PDV form of delay variation on the traffic flow, using the 99th percentile.
 
 <br/>
 
-  - #####Test ID: LTD.Throughput.RFC2544.SoakFrameModification
-  **Title**: RFC 2544 X% packet loss Throughput Soak Test with Frame Modification
+  - #####Test ID: LTD.Throughput.RFC2889.SoakFrameModification
+  **Title**: RFC 2889 Throughput Soak Test with Frame Modification
 
-  **Prerequisite Test** LTD.Throughput.RFC2544.PacketLossRatioFrameModification
+  **Prerequisite Test** LTD.Throughput.RFC2544.PacketLossRatioFrameModification (0% Packet Loss)
 
   **Priority**:
 
   **Description**:
 
-  The aim of this test is to understand the Throughput stability over an extended test duration in order to uncover any outliers. To allow for an extended test duration, the test should ideally run for 24 hours or, if this is not possible, for at least 6 hour. For this test, each frame size must be sent at the highest Throughput with X% packet loss, as determined in the prerequisite test. The default loss percentages to be tested are:
-    - X = 0%
-    - X = 10^-7%
-
-  Note: Other values can be tested if required by the user.
+  The aim of this test is to understand the throughput stability over an extended test duration in order to uncover any outliers. To allow for an extended test duration, the test should ideally run for 24 hours or, if this is not possible, for at least 6 hour. For this test, each frame size must be sent at the highest Throughput with 0% packet loss, as determined in the prerequisite test.
 
   During this test, the DUT must perform the following operations on the traffic flow:
 
@@ -829,11 +872,11 @@ The starting point for defining the suite of tests for benchmarking the performa
    - Perform any relevant address look-ups on the DUT's ingress ports.
    - Modify the packet header before forwarding the packet to the DUT's egress port. Packet modifications include:
      - Modifying the Ethernet source or destination MAC address.
-     - Modifying/adding a VLAN tag.
+     - Modifying/adding a VLAN tag (Recommended).
      - Modifying/adding a MPLS tag.
      - Modifying the source or destination ip address.
      - Modifying the TOS/DSCP field.
-     - Modifying the source or destination ports for UDP/TCP/SCTP  (Recommended).
+     - Modifying the source or destination ports for UDP/TCP/SCTP.
      - Modifying the TTL.
 
   **Expected Result**:
@@ -843,8 +886,7 @@ The starting point for defining the suite of tests for benchmarking the performa
   The following are the metrics collected for this test:
 
    - Throughput stability of the DUT.
-   - Any outliers in the Throughput stability.
-   - Any unexpected variation in Throughput stability.
+     - This means reporting the number of packets lost per time interval and reporting any time intervals with packet loss. The [RFC2889] Forwarding Rate shall be measured in each interval. An interval of 60s is suggested.
    - CPU and memory utilization may also be collected as part of this test, to determine the vSwitch's performance footprint on the system.
    - The [RFC5481] PDV form of delay variation on the traffic flow, using the 99th percentile.
 
@@ -920,7 +962,7 @@ The starting point for defining the suite of tests for benchmarking the performa
 
   **Description**:
 
-  This test measures the DUT's Max Forwarding Rate when the Offered Load is varied between the throughput and the Maximum Offered Load for fixed length frames at a fixed time interval. The selected frame sizes are those previously defined under [Default Test Parameters](#DefaultParams). The throughput is the maximum offered load with 0% frame loss (measured by the prerequisite test), and the Maximum Offered Load (as defined by [RFC2885]) is _"the highest number of frames per second that an external source can transmit to a DUT/SUT for forwarding to a specified output interface or interfaces"_.
+  This test measures the DUT's Max Forwarding Rate when the Offered Load is varied between the throughput and the Maximum Offered Load for fixed length frames at a fixed time interval. The selected frame sizes are those previously defined under [Default Test Parameters](#DefaultParams). The throughput is the maximum offered load with 0% frame loss (measured by the prerequisite test), and the Maximum Offered Load (as defined by [RFC2285]) is _"the highest number of frames per second that an external source can transmit to a DUT/SUT for forwarding to a specified output interface or interfaces"_.
 
   Traffic should be sent to the DUT at a particular rate (TX rate) starting with TX rate equal to the throughput rate. The rate of successfully received frames at the destination counted (in FPS). If the RX rate is equal to the TX rate, the TX rate should be increased by a fixed step size and the RX rate measured again until the Max Forwarding Rate is found.
 
@@ -1028,10 +1070,11 @@ The starting point for defining the suite of tests for benchmarking the performa
   **Description**:
 
   The aim of this test is to determine whether the DUT will propagate any erroneous frames it receives or whether it is capable of filtering out the erroneous frames. Traffic should be sent with erroneous frames included within the flow at random intervals. Illegal frames that must be tested include:
-    - Undersize Frames.
     - Oversize Frames.
-    - CRC error frames.
-    - Fragment Frames.
+    - Undersize Frames.
+    - CRC Errored Frames.
+    - Dribble Bit Errored Frames
+    - Alignment Errored Frames
 
   The traffic flow exiting the DUT should be recorded and checked to determine if the erroneous frames where passed through the DUT.
 
@@ -1061,15 +1104,53 @@ The starting point for defining the suite of tests for benchmarking the performa
 
   The aim of this test is to determine the maximum forwarding rate of the DUT when forwarding broadcast traffic. For each frame previously defined under [Default Test Parameters](#DefaultParams), the traffic should be set up as broadcast traffic. The traffic throughput of the DUT should be measured.
 
+  The test should be conducted with at least 4 physical ports on the DUT. The number of ports used MUST be recorded.
+
+  As broadcast involves forwarding a single incoming packet to several destinations, the latency of a single packet is defined as the average of the latencies for each of the broadcast destinations.
+
+  The incoming packet is transmitted on each of the other physical ports, it is not transmitted on the port on which it was received. The test MAY be conducted using different broadcasting ports to uncover any performance differences.
+
   **Expected Result**:
 
-  **Metrics collected**
+  **Metrics collected**:
 
   The following are the metrics collected for this test:
 
    - The forwarding rate of the DUT when forwarding broadcast traffic.
+   - The minimum, average & maximum packets latencies observed.
+
+  **Deployment scenario**:
+
+   - Physical → virtual switch  3x physical.
 
 <br/>
+ - #####Test ID: LTD.MemoryBandwidth.RFC2544.0PacketLoss.Scalability
+  **Title**: RFC 2544 0% loss Memory Bandwidth Scalability test
+
+  **Prerequisite Tests**:
+
+  **Priority**:
+
+  **Description**:
+
+  The aim of this test is to understand how the DUT's performance is affected by cache sharing and memory bandwidth between processes.
+
+  During the test all cores not used by the vSwitch should be running a memory intensive application. This application should read and write random data to random addresses in unused physical memory. The random nature of the data and addresses is intended to consume cache, exercise main memory access (as opposed to cache) and exercise all memory buses equally. Furthermore:
+  - the ratio of reads to writes should be recorded. A ratio of 1:1 SHOULD be used.
+  - the reads and writes MUST be of cache-line size and be cache-line aligned.
+  - in NUMA architectures memory access SHOULD be local to the core's node. Whether only local memory or a mix of local and remote memory is used MUST be recorded.
+  - the memory bandwidth (reads plus writes) used per-core MUST be recorded; the test MUST be run with a per-core memory bandwidth equal to half the maximum system memory bandwidth divided by the number of cores. The test MAY be run with other values for the per-core memory bandwidth.
+  - the test MAY also be run with the memory intensive application running on all cores.
+
+  Under these conditions the DUT's 0% packet loss throughput is determined as per LTD.Throughput.RFC2544.PacketLossRatio.
+
+  **Expected Result**:
+
+  **Metrics Collected**:
+
+  The following are the metrics collected for this test:
+
+  - The DUT's 0% packet loss throughput in the presence of cache sharing and memory bandwidth between processes.
 ----
 <a name="LatencyTests"></a>
 ####2.3.2 Packet Latency tests
@@ -1080,13 +1161,19 @@ The starting point for defining the suite of tests for benchmarking the performa
  - #####Test ID: LTD.PacketLatency.InitialPacketProcessingLatency
   **Title**: Initial Packet Processing Latency
 
-   **Prerequisite Test**: N\A
+  **Prerequisite Test**: N\A
 
   **Priority**:
 
   **Description**:
 
-  In some virtual switch architectures, the first packets of a flow will take the system longer to process than subsequent packets in the flow. This test determines the latency for these packets. The test will measure the latency of the packets as they are processed by the flow-setup-path of the DUT. This test will send a single packet to the DUT after a fixed interval of time. The time interval will be equivalent to the amount of time it takes for a flow to time out in the virtual switch. Average packet latency will be determined over 1,000,000 packets.
+  In some virtual switch architectures, the first packets of a flow will take the system longer to process than subsequent packets in the flow. This test determines the latency for these packets. The test will measure the latency of the packets as they are processed by the flow-setup-path of the DUT. There are two methods for this test, a recommended method and a nalternative method that can be used if it is possible to disable the fastpath of the virtual switch.
+
+  Recommended method: This test will send 64,000 packets to the DUT, each belonging to a different flow. Average packet latency will be determined over the 64,000 packets.
+
+  Alternative method: This test will send a single packet to the DUT after a fixed interval of time. The time interval will be equivalent to the amount of time it takes for a flow to time out in the virtual switch plus 10%. Average packet latency will be determined over 1,000,000 packets.
+
+  This test is intended only for non-learning switches; For learning switches use RFC2889.
 
   For this test, only unidirectional traffic is required.
 
@@ -1102,6 +1189,29 @@ The starting point for defining the suite of tests for benchmarking the performa
  **Deployment scenario**:
 
   - Physical → Virtual Switch → Physical.
+<br/>
+ - #####Test ID: LTD.PacketDelayVariation.RFC3393.Soak
+  **Title**: Packet Delay Variation Soak Test
+
+  **Prerequisite Tests**: LTD.Throughput.RFC2544.PacketLossRatio (0% Packet Loss)
+
+  **Priority**:
+
+  **Description**:
+
+  The aim of this test is to understand the distribution of packet delay variation for different frame sizes over an extended test duration and to determine if there are any outliers. To allow for an extended test duration, the test should ideally run for 24 hours or, if this is not possible, for at least 6 hour. For this test, each frame size must be sent at the highest possible throughput with 0% packet loss, as determined in the prerequisite test.
+
+  **Expected Result**:
+
+  **Metrics Collected**:
+
+  The following are the metrics collected for this test:
+
+   - The packet delay variation value for traffic passing through the DUT.
+   - The [RFC5481] PDV form of delay variation on the traffic flow, using the 99th percentile, for each 60s interval during the test.
+   - CPU and memory utilization may also be collected as part of this test, to determine the vSwitch's performance footprint on the system.
+
+
 <br/>
 ----
 <a name="ScalabilityTests"></a>
@@ -1122,18 +1232,18 @@ The starting point for defining the suite of tests for benchmarking the performa
 
   **Description**:
 
-  The aim of this test is to measure how throughput changes as the number of flows in the DUT increases.
+  The aim of this test is to measure how throughput changes as the number of flows in the DUT increases. The test will measure the throughput through the fastpath, as such the flows need to be installed on the DUT before passing traffic.
 
   For each frame size previously defined under [Default Test Parameters](#DefaultParams) and for each of the following number of flows:
 
   - 1,000
   - 2,000
-  - 2,000
   - 4,000
   - 8,000
   - 16,000
   - 32,000
   - 64,000
+  - Max supported number of flows.
 
   The maximum 0% packet loss throughput should be determined in a manner identical to LTD.Throughput.RFC2544.PacketLossRatio.
 
@@ -1145,6 +1255,92 @@ The starting point for defining the suite of tests for benchmarking the performa
 
    - The maximum number of frames per second that can be forwarded at the specified number of flows and the specified frame size, with zero packet loss.
 <br/>
+----
+<a name="CPDPTests"></a>
+#####2.3.5 Coupling between control path and datapath Tests
+
+  The following tests aim to determine how tightly coupled the datapath and the control path are within a virtual switch.
+
+  The following list is not exhaustive but should indicate the type of tests that should be required. It is expected that more will be added.
+
+ - #####Test ID: LTD.CPDPCouplingFlowAddition
+  **Title**: Control Path and Datapath Coupling
+
+  **Prerequisite Test**:
+
+  **Priority**:
+
+  **Description**:
+
+  The aim of this test is to understand how exercising the DUT's control path affects datapath performance.
+
+  Initially a certain number of flow table entries are installed in the vSwitch. Then over the duration of an RFC2544 throughput test flow-entries are added and removed at the rates specified below. No traffic is 'hitting' these flow-entries, they are simply added and removed.
+
+  The test MUST be repeated with the following initial number of flow-entries installed:
+  - < 10
+  - 1000
+  - 100,000
+  - 10,000,000 (or the maximum supported number of flow-entries)
+
+  The test MUST be repeated with the following rates of flow-entry addition and deletion per second:
+  - 0
+  - 1 (i.e. 1 addition plus 1 deletion)
+  - 100
+  - 10,000
+
+  **Expected Result**:
+
+  **Metrics Collected**:
+
+  The following are the metrics collected for this test:
+
+   - The maximum forwarding rate in Frames Per Second (FPS) and Mbps of the DUT.
+   - The average latency of the traffic flow when passing through the DUT (if testing for latency, note that this average is different from the test specified in Section 26.3 of [RFC2544]).
+   - CPU and memory utilization may also be collected as part of this test, to determine the vSwitch's performance footprint on the system.
+
+  **Deployment scenario**:
+
+   - Physical → virtual switch → physical.
+
+
+<br/>
+
+
+<a name="CPUTests"></a>
+####2.3.4 CPU and memory consumption
+
+  The following tests will profile a virtual switch's CPU and memory
+  utilization under various loads and circumstances.
+
+    The following list is not exhaustive but should indicate the type of tests
+    that should be required. It is expected that more will be added.
+
+<br/>
+ - #####Test ID: LTD.CPU.RFC2544.0PacketLoss
+  **Title**: RFC 2544 0% Loss Compute Test
+
+  **Prerequisite Test**:
+
+  **Priority**:
+
+  **Description**:
+
+  The aim of this test is to understand the overall performance of the system when a CPU intensive application is run on the same DUT as the Virtual Switch. For each frame size, an LTD.Throughput.RFC2544.PacketLossRatio (0% Packet Loss) test should be performed. Throughout the entire test a CPU intensive application should be run on all cores on the system not in use by the Virtual Switch. For NUMA system only cores on the same NUMA node are loaded.
+
+  It is recommended that stress-ng be used for loading the non-Virtual Switch cores but any stress tool MAY be used.
+
+  **Expected Result**:
+
+  **Metrics Collected**:
+
+  The following are the metrics collected for this test:
+
+   - CPU utilization of the cores running the Virtual Switch.
+   - The number of identity of the cores allocated to the Virtual Switch.
+   - The configuration of the stress tool (for example the command line parameters used to start it.)
+
+----
+
 
 <a name="SummaryList"></a>
 ####2.3.9 Summary List of Tests
@@ -1167,7 +1363,7 @@ The starting point for defining the suite of tests for benchmarking the performa
 ----
 [RFC1242]:(http://www.ietf.org/rfc/rfc1242.txt)
 [RFC2544]:(http://www.ietf.org/rfc/rfc2544.txt)
-[RFC2885]:(http://www.ietf.org/rfc/rfc2885.txt)
+[RFC2285]:(http://www.ietf.org/rfc/rfc2285.txt)
 [RFC2889]:(http://www.ietf.org/rfc/rfc2889.txt)
 [RFC5481]:(http://www.ietf.org/rfc/rfc5481.txt)
 [RFC6201]:(http://www.ietf.org/rfc/rfc6201.txt)