summaryrefslogtreecommitdiff
path: root/cleopatre/doc/mme_specs
diff options
context:
space:
mode:
Diffstat (limited to 'cleopatre/doc/mme_specs')
-rw-r--r--cleopatre/doc/mme_specs/Makefile7
-rw-r--r--cleopatre/doc/mme_specs/chapter_hpav_mme.rst89
-rw-r--r--cleopatre/doc/mme_specs/chapter_mme_principles.rst108
-rw-r--r--cleopatre/doc/mme_specs/chapter_ms_mme.rst269
-rw-r--r--cleopatre/doc/mme_specs/chapter_vs_mme.rst5650
-rw-r--r--cleopatre/doc/mme_specs/mme_specs.rst36
6 files changed, 6159 insertions, 0 deletions
diff --git a/cleopatre/doc/mme_specs/Makefile b/cleopatre/doc/mme_specs/Makefile
new file mode 100644
index 0000000000..b50a04d8e6
--- /dev/null
+++ b/cleopatre/doc/mme_specs/Makefile
@@ -0,0 +1,7 @@
+GLOSSARY=y
+
+BASE = ../../..
+
+DOCS = mme_specs
+
+include $(BASE)/common/doc/template/doc.mk
diff --git a/cleopatre/doc/mme_specs/chapter_hpav_mme.rst b/cleopatre/doc/mme_specs/chapter_hpav_mme.rst
new file mode 100644
index 0000000000..31ff1ffcd6
--- /dev/null
+++ b/cleopatre/doc/mme_specs/chapter_hpav_mme.rst
@@ -0,0 +1,89 @@
+HomePlug HPAV MME
+*****************
+
+Presentation
+============
+These MME are official HomePlug AV MME which are allowed to cross the H1 interface. It means that these MME can be transmitted from 1 PC to a remote AV station through the ethernet AND the PLC medium.
+
+They are typically usable for an external management software application (SPiDMonitor300) or for an embedded software on ARM side.
+
+HomePlug AV MME list
+====================
+
+The standard HPAV MME are listed here for reference (see the HomePlug AV specifications for details).
+
+"From H1" means that the MME can be received from the ethernet and bridged to the PLC.
+
+"To H1" means that the MME can be received from PLC and bridged to the ethernet.
+
++--------+--------------------------+-------------------+-----------------+-----------+
+| MMTYPE | Label | From H1 Interface | To H1 Interface | CCO level |
++========+==========================+===================+=================+===========+
+| 0x0000 | CC_CCO_APPOINT.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CC_CCO_APPOINT.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x0008 | CC_LINK_INFO.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CC_LINK_INFO.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x0014 | CC_DISCOVER_LIST.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CC_DISCOVER_LIST.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x002C | CC_WHO_RU.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CC_WHO_RU.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x6000 | CM_UNASSOCIATED_STA.IND | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x6004 | CM_ENCRYPTED_PAYLOAD.IND | Yes | Yes | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_ENCRYPTED_PAYLOAD.RSP | Yes | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x6008 | CM_SET_KEY.REQ | Yes | Yes | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_SET_KEY.CNF | Yes | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x600C | CM_GET_KEY.REQ | Yes | Yes | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_GET_KEY.CNF | Yes | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x601C | CM_AMP_MAP.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_AMP_MAP.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x6020 | CM_BRIDGE_INFO.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_BRIDGE_INFO.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x6030 | CM_CONN_INFO.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_CONN_INFO.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x6034 | CM_STA_CAP.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_STA_CAP.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x6038 | CM_NW_INFO.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_NW_INFO.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x603C | CM_GET_BEACON.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_GET_BEACON.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x6040 | CM_HFID.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_HFID.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x6044 | CM_MME_ERROR.IND | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x6048 | CM_NW_STATS.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_NW_STATS.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
+| 0x604c | CM_LINK_STATS.REQ | Yes | No | |
++ +--------------------------+-------------------+-----------------+-----------+
+| | CM_LINK_STATS.CNF | No | Yes | |
++--------+--------------------------+-------------------+-----------------+-----------+
diff --git a/cleopatre/doc/mme_specs/chapter_mme_principles.rst b/cleopatre/doc/mme_specs/chapter_mme_principles.rst
new file mode 100644
index 0000000000..d070cdb52b
--- /dev/null
+++ b/cleopatre/doc/mme_specs/chapter_mme_principles.rst
@@ -0,0 +1,108 @@
+MME principles
+**************
+
+Description
+===========
+
+The format of Management Messages is based on the standard Ethernet frame format, with a unique Ethertype assigned to HomePlug.
+
+HomePlug AV has a different Ethertype assignment than the Ethertype assigned to HomePlug 1.0.1.
+
+Management Messages are used for station- to-station control communication, but also may be used for control messages to and from a Higher Layer Entity (HLE).
+
+The Ethernet format enables messages to HLEs across an Ethernet network.
+
+Format
+======
+
+.. list-table:: MME format
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (bits)
+ - Definition
+
+ * - ODA
+ - 0 \- 5
+ - 48
+ - Original Destination Address
+
+ * - OSA
+ - 6 \- 11
+ - 48
+ - Original Source Address
+
+ * - VLAN Tag
+ - 12 \- 15
+ - 32
+ - IEEE 802.1Q VLAN Tag (optional)
+
+ * - MTYPE
+ - 16 \- 17
+ - 16
+ - 0x88e1 (IEEE\-assigned Ethertype)
+
+ Note: 0x88 is transmitted in the least\-significant octet and 0xe1 is transmitted in the most\-significant octet in conformance with IEEE 802.3.
+
+ * - MMV
+ - 18
+ - 8
+ - Management Message Version
+
+ * - MMTYPE
+ - 19 \- 20
+ - 16
+ - Management Message Type
+
+ * - FMI
+ - 21
+ - 4
+ - Fragmentation Management Information – 4 MSBs are Number of Fragments (NF_MI) of the MMENTRY
+
+ 0x00 = MMENTRY is not Fragmented
+
+ 0x01 = MMENTRY is Fragmented into two parts
+
+ 0x02 = MMENTRY is Fragmented into three parts
+
+ ...
+
+ * -
+ -
+ - 4
+ - 4 LSBs are Fragment Number (FN_MI) of the MMENTRY
+
+ 0x00 = First or Only Fragment
+
+ 0x01 = Second Fragment
+
+ ...
+
+ * -
+ - 22
+ - 8
+ - Fragmentation Message Sequence Number (FMSN)
+
+ * - MMENTRY
+ - 23 \- 25
+ - 24
+ - SPiDCOM OUI (0x00\-0x13\-0xd7) or Transaction ID
+
+ * -
+ - 26 \- ...
+ - \-
+ - Management Message Entry Data
+
+ * - MME PAD
+ - \-
+ - 0 \- 46
+ - MME PAD
+
+**Warning:** HomePlug AV messages do not contain a SPiDCOM OUI or transaction ID field.
+Message body directly starts at MMENTRY index.
+
+Vendor Specific and Manufacturing Specific messages contain a SPiDCOM OUI field at index 23 – 25. This OUI is 0x00-0x13-0xd7.
+
+Driver messages contain a Transaction ID field at index 23 - 25. This transaction ID field is used to allow multiplexing of several messages with the same MTYPE.
diff --git a/cleopatre/doc/mme_specs/chapter_ms_mme.rst b/cleopatre/doc/mme_specs/chapter_ms_mme.rst
new file mode 100644
index 0000000000..5a34de68d1
--- /dev/null
+++ b/cleopatre/doc/mme_specs/chapter_ms_mme.rst
@@ -0,0 +1,269 @@
+Manufacturer specific MME
+*************************
+
+
+Presentation
+============
+
+All manufacturer specific messages are able to transmitted through the Ethernet medium only.
+They are all destinated to the PLC daemon running under Linux and must not be forwarded to the PLC layer.
+
+They are used by an external software application during the manufacturing process.
+
+**Warning:** MMENTRY part of vendor specific messages contain 3 bytes of SPiDCOM OUI (0x00-0x13-0xd7).
+
+Manufacturer specific MME list
+==============================
+
++--------+---------------------+-----------+
+| MMTYPE | Label | CCO level |
++========+=====================+===========+
+| 0x800C | MS_SET_NVRAM.REQ | 0 |
++ +---------------------+ +
+| | MS_SET_NVRAM.CNF | |
++--------+---------------------+-----------+
+| 0x8010 | MS_SET_SELFTEST.REQ | 0 |
++ +---------------------+ +
+| | MS_SET_SELFTEST.CNF | |
++ +---------------------+ +
+| | MS_SET_SELFTEST.IND | |
++--------+---------------------+-----------+
+| 0x8014 | MS_SET_IMAGE.REQ | 0 |
++ +---------------------+ +
+| | MS_SET_IMAGE.CNF | |
++--------+---------------------+-----------+
+| 0x8018 | MS_SET_TONEMASK.REQ | 0 |
++ +---------------------+ +
+| | MS_SET_TONEMASK.CNF | |
++--------+---------------------+-----------+
+
+Manufacturer specific MME description
+=====================================
+
+Set the NVRAM content (MS_SET_NVRAM)
+------------------------------------
+
+MS_SET_NVRAM.REQ (0x800C)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Block Index
+ - 0
+ - 1
+ - NVRAM 1024kB block index. Writing to block #0 implies the whole NVRAM space erasing.
+
+ 0x00 – 0x3f = block index
+
+ 0x40 \- 0xff = Reserved
+
+ * - Data
+ - 1
+ - 1024
+ - NVRAM data
+
+MS_SET_NVRAM.CNF (0x800D)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+Start the self-test process (MS_SET_SELFTEST)
+---------------------------------------------
+
+MS_SET_SELFTEST.REQ (0x8010)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Test
+ - 0
+ - 2
+ - Self\-test mask:
+
+ 0x0001 = SDRAM test
+
+ 0x0002 = UART0 test (need loopback plug)
+
+ 0x0004 = UART1 test (need loopback plug)
+
+ 0x0008 = ETH PHY loopback test
+
+ 0x0010 = PCM test
+
+ 0x0020 = I2S test
+
+ 0x0040 = MPEG test
+
+ 0x0100 = customer's auto\-test
+
+MS_SET_SELFTEST.CNF (0x8011)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+MS_SET_SELFTEST.IND (0x0812)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Report
+ - 0
+ - ...
+ - Self\-test report in text format.
+
+Switch current software image (MS_SET_IMAGE)
+--------------------------------------------
+
+MS_SET_IMAGE.REQ (0x8014)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Image Index
+ - 0
+ - 1
+ - Index of image to set as current.
+
+ 0x00 = image #0
+
+ 0x01 = image #1
+
+ 0x02 \- 0xfe = Reserved
+
+ 0xff = switch images
+
+MS_SET_IMAGE.CNF (0x8015)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 = Chosen image not valid
+
+ 0x03 \- 0xff = Reserved
+
+ * - Image Index
+ - 1
+ - 1
+ - New current image index.
+
+Set the tonemask (MS_SET_TONEMASK)
+----------------------------------
+
+MS_SET_TONEMASK.REQ (0x8018)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Tonemask
+ - 0
+ - 192
+ - Tonemask bitfield for the 1536 carriers from 0 MHz to 37.5 MHzwith:
+
+ 0b0 = carrier is unmasked
+
+ 0b1 = carrier is masked
+
+ The byte 0 contains the activation bits for the first 8 carriers, the byte 1 contains the activation bits for the second 8 carriers, and so on.
+
+MS_SET_TONEMASK.CNF (0x8019)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
diff --git a/cleopatre/doc/mme_specs/chapter_vs_mme.rst b/cleopatre/doc/mme_specs/chapter_vs_mme.rst
new file mode 100644
index 0000000000..0639f20179
--- /dev/null
+++ b/cleopatre/doc/mme_specs/chapter_vs_mme.rst
@@ -0,0 +1,5650 @@
+Vendor specific MME
+*******************
+
+Presentation
+============
+
+All vendor specific messages are able to transmitted through the ethernet AND through the PLC medium.
+It means that a vendor specific MME can be sent by an external application on a software to a remote station, even if this station is not on same AVLN (through an ethernet bridge).
+
+**Warning**: MMENTRY part of vendor specific messages contains 3 bytes of SPiDCOM OUI (0x00-0x13-0xd7).
+
+Vendor specific MME list
+========================
+
++--------+-------------------------------------+-----------+
+| MMTYPE | Label | CCO level |
++========+=====================================+===========+
+| 0xA000 | VS_GET_VERSION.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_VERSION.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA004 | VS_FCALL.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_FCALL.CNF | |
++ +-------------------------------------+ +
+| | VS_FCALL.IND | |
++--------+-------------------------------------+-----------+
+| 0xA008 | VS_RESET.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_RESET.CNF | |
++ +-------------------------------------+ +
+| | VS_RESET.IND | |
++--------+-------------------------------------+-----------+
+| 0xA00C | VS_SET_KEY.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_SET_KEY.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA010 | VS_GET_NVRAM.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_NVRAM.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA014 | VS_GET_LOOPBACK.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_LOOPBACK.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA018 | VS_SET_LOOPBACK.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_SET_LOOPBACK.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA01C | VS_GET_TONEMASK.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_TONEMASK.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA020 | VS_GET_ETH_PHY.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_ETH_PHY.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA024 | VS_ETH_STATS.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_ETH_STATS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA02C | VS_SNIFFER.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_SNIFFER.CNF | |
++ +-------------------------------------+ +
+| | VS_SNIFFER.IND | |
++--------+-------------------------------------+-----------+
+| 0xA030 | VS_GET_STATUS.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_STATUS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA034 | VS_GET_TONEMAP.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_TONEMAP.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA038 | VS_GET_SNR.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_SNR.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA03C | VS_GET_SPECTRUM.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_SPECTRUM.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA040 | VS_GET_LINK_STATS.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_LINK_STATS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA044 | VS_GET_AMP_MAP.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_AMP_MAP.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA048 | VS_GET_STATS.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_STATS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA04C | VS_GET_CLASSIFIER.REQ | 1 |
++ +-------------------------------------+-----------+
+| | VS_GET_CLASSIFIER.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA050 | VS_SET_CLASSIFIER.REQ | 1 |
++ +-------------------------------------+ +
+| | VS_SET_CLASSIFIER.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA054 | VS_GET_SERVICE.REQ | 1 |
++ +-------------------------------------+ +
+| | VS_GET_SERVICE.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA058 | VS_SET_SERVICE.REQ | 1 |
++ +-------------------------------------+ +
+| | VS_SET_SERVICE.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA05C | VS_GET_PORT_VLAN.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_PORT_VLAN.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA060 | VS_SET_PORT_VLAN.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_SET_PORT_VLAN.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA064 | VS_UPDATE_START.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_UPDATE_START.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA068 | VS_UPDATE_TRANSFER.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_UPDATE_TRANSFER.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA06C | VS_UPDATE_END.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_UPDATE_END.CNF | |
++ +-------------------------------------+ +
+| | VS_UPDATE_END.IND | |
++--------+-------------------------------------+-----------+
+| 0xA070 | VS_ENCRYPTED_PAYLOAD.IND | 0 |
++--------+-------------------------------------+-----------+
+| 0xA074 | VS_GET_CE_STATS.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_CE_STATS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA08C | VS_EOC_GET_TOPO.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_GET_TOPO.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA090 | VS_EOC_GET_DEVICE_INFO.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_GET_DEVICE_INFO.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA094 | VS_EOC_CCO_SET_WL.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_CCO_SET_WL.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA098 | VS_EOC_CCO_GET_WL.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_CCO_GET_WL.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA09E | VS_EOC_CCO_SET_OUT_LEV.IND | N.A. |
++--------+-------------------------------------+-----------+
+| 0xA0A0 | VS_EOC_CCO_SET_SERVICES.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_CCO_SET_SERVICES.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0A4 | VS_EOC_CCO_GET_SERVICES.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_CCO_GET_SERVICES.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0A8 | VS_EOC_SET_PORTS.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_SET_PORTS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0AC | VS_EOC_CCO_GET_PORTS.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_CCO_GET_PORTS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0B0 | VS_EOC_SET_CLASSIFIER.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_SET_CLASSIFIER.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0B4 | VS_EOC_AUTOCONF_START.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_AUTOCONF_START.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0B8 | VS_EOC_AUTOCONF_TRANSFER.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_AUTOCONF_TRANSFER.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0BC | VS_EOC_AUTOCONF_END.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_AUTOCONF_END.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0C4 | VS_EOC_GET_INFO.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_GET_INFO.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0C8 | VS_EOC_DIAGNOSTIC_INFO.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_DIAGNOSTIC_INFO.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0CC | VS_EOC_GET_REAL_TIME_STATISTICS.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_GET_REAL_TIME_STATISTICS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0D0 | VS_EOC_SET_NETWORK_PARAMETERS.REQ | N.A. |
++ +-------------------------------------+ +
+| | VS_EOC_SET_NETWORK_PARAMETERS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0D4 | VS_EOC_GET_NETWORK_PARAMETERS.REQ | N.A |
++ +-------------------------------------+ +
+| | VS_EOC_GET_NETWORK_PARAMETERS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0D8 | VS_GET_PB_STATS.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_PB_STATS.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0DC | VS_GET_MACTOTEI.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_GET_MACTOTEI.CNF | |
++--------+-------------------------------------+-----------+
+| 0xA0E0 | VS_FACTORY.REQ | 0 |
++ +-------------------------------------+ +
+| | VS_FACTORY.CFG | |
++--------+-------------------------------------+-----------+
+| 0xA0E4 | VS_EOC_GET_CPEIPMAC_LIST.REQ | N.A |
++ +-------------------------------------+ +
+| | VS_EOC_GET_CPEIPMAC_LIST.CNF | |
++--------+-------------------------------------+-----------+
+
+Vendor specific MME description
+===============================
+
+Get version (VS_GET_VERSION)
+----------------------------
+
+VS_GET_VERSION.REQ (0xA000)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_GET_VERSION.CNF (0xA001)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Device ID
+ - 1
+ - 2
+ - Device ID:0x0001 = SPC300
+
+ * - Image Index
+ - 3
+ - 1
+ - Current image index
+
+ * - Applicative Version
+ - 4
+ - 16
+ - Current applicative layer version string.
+
+ * - AV Stack Version
+ - 20
+ - 64
+ - Current AV stack version string.
+
+ * - Applicative Alternate
+ - 84
+ - 16
+ - Alternate applicative layer version string.
+
+Process a function call (VS_FCALL)
+----------------------------------
+
+VS_FCALL.REQ (0xA004)
+^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Length
+ - 3
+ - 2
+ - Fcall message length (with header and data)0 \- 1492 = lengthother = reserved
+
+ * - Msg version
+ - 5
+ - 1
+ - 0x02 = version 2
+
+ Other = reserved
+
+ * - Msg type
+ - 6
+ - 1
+ - 0x00 = reserved
+
+ 0x01 = request
+
+ 0x02 \- 0xff = reserved
+
+ * - Msg ID
+ - 7
+ - 2
+ - Message unique ID (for each fcall request)
+
+ * - Param NB
+ - 9
+ - 1
+ - Number of fcall parameters
+
+ * - Msg flags
+ - 10
+ - 1
+ - Fcall flags :
+
+ 0x00 = none
+
+ 0x01 = failed
+
+ * - Reserved
+ - 11
+ - 2
+ - Reserved (contains 0x0000)
+
+ * - Msg Payload
+ - 13
+ - var
+ - Fcall message body
+
+VS_FCALL.CNF (0xA005)
+^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Length
+ - 3
+ - 2
+ - Fcall message length (with header and data)0 \- 1492 = lengthother = reserved
+
+ * - Msg version
+ - 5
+ - 1
+ - 0x02 = version 2
+
+ Other = reserved
+
+ * - Msg type
+ - 6
+ - 1
+ - 0x00 \- 0x01 = reserved
+
+ 0x02 = response
+
+ 0x03 \- 0xff = reserved
+
+ * - Msg ID
+ - 7
+ - 2
+ - Message unique ID (same as previous fcall request)
+
+ * - Param NB
+ - 9
+ - 1
+ - Number of fcall parameters
+
+ * - Msg flags
+ - 10
+ - 1
+ - Fcall flags :
+
+ 0x00 = none
+
+ 0x01 = failed
+
+ * - Reserved
+ - 11
+ - 2
+ - Reserved (contains 0x0000)
+
+ * - Msg Payload
+ - 13
+ - var
+ - Fcall message body
+
+VS_FCALL.IND (0xA006)
+^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Length
+ - 3
+ - 2
+ - Fcall message length (with header and data)0 \- 1492 = lengthother = reserved
+
+ * - Msg version
+ - 5
+ - 1
+ - 0x02 = version 2
+
+ Other = reserved
+
+ * - Msg type
+ - 6
+ - 1
+ - 0x00 \- 0x01 = reserved
+
+ 0x02 = response
+
+ 0x03 \- 0xff = reserved
+
+ * - Msg ID
+ - 7
+ - 2
+ - Message unique ID (same as previous fcall request)
+
+ * - Param NB
+ - 9
+ - 1
+ - Number of fcall parameters
+
+ * - Msg flags
+ - 10
+ - 1
+ - Fcall flags :
+
+ 0x00 = none
+
+ 0x01 = failed
+
+ * - Reserved
+ - 11
+ - 2
+ - Reserved (contains 0x0000)
+
+ * - Msg Payload
+ - 13
+ - var
+ - Fcall message body
+
+Fcall message payload
+^^^^^^^^^^^^^^^^^^^^^
+
+All payloads of fcall message follow the same format :
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Function ID
+ - 13
+ - var
+ - ID of the called function as a null terminated string
+
+ * - Parameter List
+ - var
+ - var
+ - Suite of function parameters
+
+Each element of the parameter list is composed of :
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Parameter ID
+ - var
+ - var
+ - ID of the parameter as a null terminated string
+
+ * - Parameter Length
+ - var
+ - 2
+ - Length of parameter data
+
+ * - Parameter Data
+ - var
+ - var
+ - Data content of the parameter, with length equals to "Parameter Length".
+
+Reset (VS_RESET)
+----------------
+
+VS_RESET.REQ (0xA008)
+^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_RESET.CNF (0xA009)
+^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+VS_RESET.IND (0xA00A)
+^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+Set NMK (VS_SET_KEY)
+--------------------
+
+VS_SET_KEY has to be encapsulated in a VS_ENCRYPTED_PAYLOAD.IND MME, using PID = 0x00, and encrypted with the DAK of the STA which MAC address is the MME destination MAC address.
+
+VS_SET_KEY.REQ (0xA00C)
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Request
+ - 0
+ - 1
+ - 0x00 change NMK with current STA NMK
+
+ 0x01 change NMK and NID
+
+ 0x02 change MNK and SL
+
+ * - Request ID
+ - 1
+ - 1
+ - Request ID for asynchronous confirmation (random number)
+
+ * - DAK
+ - 2
+ - 16
+ - Device Access Key of the STA on which NMK has to be changed (can be the local or a remote STA)\- in binary format
+
+ * - MAC Address
+ - 18
+ - 6
+ - MAC address of the STA on which NMK has to be changed (can be the local or a remote STA) \- if unknown use 0xffffffffffff
+
+ * - NMK
+ - 24
+ - 16
+ - New Network Membership Key of a remote STA \- in binary format
+
+ This field has a signification only if Request = 0x01 or 0x02
+
+ * - NID
+ - 40
+ - 7
+ - Network Identifier (including SL) to associate with this new NMK
+
+ This field has a signification only if Request = 0x01
+
+ * - SL
+ - 47
+ - 1
+ - Security Level of this new NMK
+
+ This field has a signification only if Request = 0x02
+
+VS_SET_KEY.CNF (0xA00D)
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = No response (timeout)
+
+ 0x02 = Aborted
+
+ 0x03 \- 0xff = Reserved
+
+ * - Request ID
+ - 1
+ - 1
+ - Request ID of the VS_SET_KEY.REQ to which this is a confirmation
+
+Get NVRAM (VS_GET_NVRAM)
+------------------------
+
+VS_GET_NVRAM.REQ (0xA010)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Index
+ - 0
+ - 1
+ - NVRAM 1024 bytes block index
+
+ 0x00 - 0x3f = block index
+
+ 0x40 - 0xff = reserved
+
+VS_GET_NVRAM.CNF (0xA011)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 = Bad index
+
+ 0x02 \- 0xff = Reserved
+
+ * - Index
+ - 1
+ - 1
+ - Requested NVRAM 1024 bytes block index
+
+ 0x00 - 0x3f = block index
+
+ 0x40 - 0xff = reserved
+
+ * - Data
+ - 2
+ - 1024
+ - NVRAM block data of 1024 bytes.
+
+Get loopback status (VS_GET_LOOPBACK)
+-------------------------------------
+
+VS_GET_LOOPBACK.REQ (0xA014)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_GET_LOOPBACK.CNF (0xA015)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Loopback mode
+ - 1
+ - 1
+ - 0x00 = loopback mode enabled
+
+ 0x01 = loopback mode disabled
+
+ * - Duration
+ - 2
+ - 1
+ - If loopback mode enabled : remaining duration in secondsElse : 0
+
+Set loopback mode (VS_SET_LOOPBACK)
+-----------------------------------
+
+VS_SET_LOOPBACK.REQ (0xA018)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Duration
+ - 0
+ - 1
+ - Loopback mode duration in seconds (from 0 to 60)
+
+ * - Length of data
+ - 1
+ - 2
+ - Length of data to send for each received packet
+
+ * - Data
+ - 3
+ - 60 \- 1480
+ - Data to send for each received packet
+
+VS_SET_LOOPBACK.CNF (0xA019)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure : bad duration
+
+ 0x02 = Failure : bad data length
+
+ 0x03 \- 0xff = Reserved
+
+Get the current tonemask (VS_GET_TONEMASK)
+------------------------------------------
+
+VS_GET_TONEMASK.REQ (0xA01C)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_GET_TONEMASK.CNF (0xA01D)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Tonemask
+ - 1
+ - 192
+ - Tonemask bitfield for the 1536 carriers from 0 MHz to 37.5 MHz, with:
+
+ 0b0 = carrier is unmasked
+
+ 0b1 = carrier is masked
+
+ The byte 0 contains the activation bits for the first 8 carriers, the byte 1 contains the activation bits for the second 8 carriers, and so on.
+
+Get ethernet PHY status (VS_GET_ETH_PHY)
+----------------------------------------
+
+VS_GET_ETH_PHY.REQ (0xA020)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_GET_ETH_PHY.CNF (0xA021)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Link
+ - 1
+ - 1
+ - 0x00 = disconnected
+
+ 0x01 = connected
+
+ * - Speed
+ - 2
+ - 1
+ - 0x00 = 10Mbps
+
+ 0x01 = 100Mbps
+
+ 0x02 = 1000Mbps
+
+ * - Duplex
+ - 3
+ - 1
+ - 0x00 = half\-duplex
+
+ 0x01 = full\-duplex
+
+Get/clear ethernet statistics (VS_ETH_STATS)
+--------------------------------------------
+
+VS_ETH_STATS.REQ (0xA024)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Command
+ - 0
+ - 1
+ - 0x00 = get statistics
+
+ 0x01 = clear statistics
+
+VS_ETH_STATS.CNF (0xA025)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Rx bytes
+ - 1
+ - 8
+ - Total bytes received
+
+ * - Rx packets
+ - 9
+ - 8
+ - Total packets received with no error
+
+ * - Rx errors
+ - 17
+ - 4
+ - Total packets received with error
+
+ * - Rx dropped
+ - 21
+ - 4
+ - Packets dropped when received (not enough buffers)
+
+ * - Rx overruns
+ - 25
+ - 4
+ - Packets removed due to hardware overrun
+
+ * - Rx frames
+ - 29
+ - 4
+ - Bad frame received
+
+ * - Tx bytes
+ - 33
+ - 8
+ - Total bytes transmitted
+
+ * - Tx packets
+ - 41
+ - 8
+ - Total packets transmitted with no error
+
+ * - Tx errors
+ - 49
+ - 4
+ - Total packets transmitted with error
+
+ * - Tx dropped
+ - 53
+ - 4
+ - Packets dropped before transmit (not enough buffers)
+
+ * - Tx fifo
+ - 57
+ - 4
+ - Packets dropped due to transmit underflow
+
+ * - Tx collisions
+ - 61
+ - 4
+ - Packets transmit error due to a collision on medium
+
+ * - Tx carrier
+ - 65
+ - 4
+ - No carrier when packet has been transmitted
+
+Sniffer function (VS_SNIFFER)
+-----------------------------
+
+Description
+^^^^^^^^^^^
+
+VS_SNIFFER allows an external management software to sniff internal powerline data that are not transmitted on ethernet side.
+These data types are :
+
+- beacon
+
+- MME
+
+- FC
+
+- MPDU (implies FC, but also report data of unencrypted ROBO frames)
+
+The management software subscribe to receive sniff packet by sending a VS_SNIFFER.REQ with inside the type of wanted packets (beacon/MME, Rx/Tx).
+If the station already has a subscriber, it sends a "failed" VS_SNIFFER.CNF with the MAC address of current subscriber.
+Else, the subscription has succeeded and the station starts to send a VS_SNIFFER.IND packet each time a MME or beacon is received or transmitted.
+
+To cancel a current subscription and become the current subscriber, the software must send a VS_SNIFFER.REQ with a NULL command.
+Then it can send a VS_SNIFFER.REQ with new wanted sniff packet types.
+
+Notes: FC and MPDU modes are only available on the "FC sniffer" embedded utility, not inside the regular firmware releases.
+
+VS_SNIFFER.REQ (0xA02C)
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Command
+ - 0
+ - 1
+ - Bitfield command of which type of data is sniffed.
+
+ Several types of packets can be sniffed by adding (OR) command bits.
+
+ Set command to 0 to disable the sniffer.
+
+ 0b00000001 = MME Tx
+
+ 0b00000010 = MME_Rx
+
+ 0b00000100 = Beacon Tx
+
+ 0b00001000 = Beacon Rx
+
+ 0b00100000 = FC Rx
+
+ 0b10000000 = MPDU content Rx
+
+ "FC" and "MPDU" modes are not available on regular firmwares (see notes).
+
+VS_SNIFFER.CNF (0xA02D)
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Status
+ - 1
+ - 1
+ - Bitfield status of which type of data is currently sniffed. See VS_SNIFFER.REQ.
+
+ * - DA
+ - 2
+ - 6
+ - Destination MAC address of Sniffer indication packets; no meaning if sniffer if disabled (status = 0)
+
+VS_SNIFFER.IND (0xA02E)
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Type
+ - 0
+ - 1
+ - 0x00 = MME
+
+ 0x01 = Beacon
+
+ 0x02 = MPDU
+
+ 0x03 \- 0xff = Reserved
+
+ * - Direction
+ - 1
+ - 1
+ - 0x00 = transmitted
+
+ 0x01 = received
+
+For MME or Beacon:
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 0
+
+ * - Data
+ - 2
+ - 0 \- 1480
+ - MME or beacon body.Received beacons have their FC included; other packets have only payload (without FC).
+
+For MPDU:
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 0
+
+ * - Options
+ - 2
+ - 2
+ - Bitfield:bit 0: FC1.0 CRC is badbit 1: FC AV CRC is badbit 2: PB CRC is bad
+
+ * - PBTotal
+ - 4
+ - 1
+ - Number of PB for this MPDU. Only one PB is sent in each MME. Several MME will be sent if the MPDU contains more than one PB.
+
+ * - PBIndex
+ - 5
+ - 1
+ - Index of the sent PB. If the MME contains a PB, this is its index.
+
+ * - Date
+ - 6
+ - 4
+ - Modem date at MPDU preamble start in ticks (25 MHz).
+
+ * - FC10
+ - 10
+ - 4
+ - HP 1.0 Frame control.
+
+ * - FC
+ - 14
+ - 16
+ - HP AV Frame control.
+
+ * - PBHeader
+ - 30
+ - 4 or 0
+ - PB header.
+
+ * - PBContent
+ - 34
+ - 512 or 128 or 0
+ - PB content.
+
+Get station status (VS_GET_STATUS)
+----------------------------------
+
+VS_GET_STATUS.REQ (0xA030)
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_GET_STATUS.CNF (0xA031)
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Status
+ - 1
+ - 1
+ - 0x00 = unassociated
+
+ 0x01 = associated
+
+ 0x02 = authenticated
+
+ * - CCO
+ - 2
+ - 1
+ - 0x00 = is not CCO (station only)
+
+ 0x01 = is CCO
+
+ * - Preferred CCO
+ - 3
+ - 1
+ - 0x00 = is not CCO preferred
+
+ 0x01 = is CCO preferred
+
+ * - Backup CCO
+ - 4
+ - 1
+ - 0x00 = is not backup CCO
+
+ 0x01 = Is backup CCO
+
+ * - Proxy CCO
+ - 5
+ - 1
+ - 0x00 = is not proxy CCO
+
+ 0x01 = is proxy CCO
+
+ * - Simple Connect
+ - 6
+ - 1
+ - 0x00 = is not processing Simple Connect
+
+ 0x01 = processing Simple Connect
+
+Get tonemap information (VS_GET_TONEMAP)
+----------------------------------------
+
+Description
+^^^^^^^^^^^
+
+VS_GET_TONEMAP.REQ allows a management software to get the currently used tonemaps and modulations of a station when communicating with another station (peer-to-peer tonemaps).
+
+At first, management software must get the list of tonemap index and interval used.
+A VS_GET_TONEMAP.REQ is sent with the MAC-address of the remote station of the peer, and with TMI=0xff.
+
+Station answers with a VS_GET_TONEMAP.CNF containing the list of valid tonemap indexes and valid intervals, and an identifier (INT Id).
+This identifier if linked to the provided information lists and must be used for each following request.
+
+To get a tonemap content, a VS_GET_TONEMAP.REQ is sent with the current valid identifier (INT Id) and the needed tonemap index (TMI) gotten from previously received tonemap index list.
+
+The requested tonemap content is added at the end of the VS_GET_TONEMAP.CNF.
+
+The validity of the currently used tonemap intervals can change inside the station, so a requested tonemap index may not fit the originally sent tonemap index list.
+Identifier (TMI Id) is used to keep the coherence between the tonemap interval list index and the requested index.
+If the tonemap interval list has been updated, the tonemap identifier is incremented.
+The next request with the old identifier will fail with "bad tonemap interval list identifier" result code.
+The new tonemap identifier, index list and interval list are provided inside the answer message.
+
+VS_GET_TONEMAP.REQ (0xA034)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Station address
+ - 0
+ - 6
+ - MAC address of remote peer station where is applied the requested tonemap
+
+ * - TMI
+ - 6
+ - 1
+ - 0x00 - 0x03 = reserved
+
+ 0x04 - 0x01f = tonemap index of wanted tonemap
+
+ 0x20 - 0xfe = reserved
+
+ 0xff = get valid tonemap indexes and intervals lists only.
+
+ * - INT Id
+ - 7
+ - 1
+ - Current tonemap interval list identifier. No meaning if TMI=0xff.
+
+ * - Direction
+ - 8
+ - 1
+ - 0x00 = Tx tonemap (local to remote station)
+
+ 0x01 = Rx tonemap (remote to local station)
+
+VS_GET_TONEMAP.CNF (0xA035)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 = Bad tonemap interval list identifier (list has been updated)
+
+ 0x03 \- 0xff = Reserved
+
+ * - Reserved
+ - 1
+ - 4
+ - Reserved.
+
+ * - INT Id
+ - 5
+ - 1
+ - Current tonemap interval list identifier.
+
+ * - TMI default
+ - 6
+ - 1
+ - 0x00 - 0x1f = tonemap index of default tonemap
+
+ * - TMI length
+ - 7
+ - 1
+ - 0x00 \- 0x07 = number of entries in valid tonemap index list (T)
+
+ * - TMI[0]
+ - 8
+ - 1
+ - 0x00 - 0x1f = valid tonemap index #0
+
+ * - ...
+ - ...
+ - ...
+ -
+
+ * - TMI[T\-1]
+ -
+ - 1
+ - 0x00 - 0x1f = valid tonemap index #T\-1
+
+ * - INT length
+ -
+ - 1
+ - 0x00 - 0x20 = number of entries in interval list (I)
+
+ * - INT ET[0]
+ -
+ - 2
+ - End time of interval #0 in allocation time unit (10.24us)
+
+ * - INT TMI[0]
+ -
+ - 1
+ - 0x00 - 0x03 = reserved
+
+ 0x04 - 0x1f = tonemap index used during interval #
+
+ 0x20 - 0xfd = reserved
+
+ 0xfe = no tonemap
+
+ 0xff = unusable interval
+
+ * - ...
+ - ...
+ - ...
+ -
+
+ * - INT ET[I\-1]
+ -
+ - 2
+ - End time of interval #I\-1 in allocation time unit (10.24us)
+
+ * - INT MI[I\-1]
+ -
+ - 1
+ - Tonemap index used during interval #I\-1
+
+ * - TMI
+ -
+ - 1
+ - 0x00 - 0x03 = reserved
+
+ 0x04 - 0x1f = tonemap index used during interval
+
+ 0x20\- 0xfe = reserved
+
+ 0xff = invalid requested tonemap; next informations are invalid
+
+ * - TM FEC
+ -
+ - 1
+ - FEC code rate of requested tonemap
+
+ 0x00 = ½ code rate
+
+ 0x01 = 16/21 code rate
+
+ 0x02 \- 0xff = reserved
+
+ * - TM GI
+ -
+ - 1
+ - Guard interval of requested tonemap
+
+ 0x00 = GI417 (5.56us)
+
+ 0x01 = GI567 (7.56us)
+
+ 0x02 = GI3534 (47.12us)
+
+ 0x03 \- 0xff = reserved
+
+ * - Modulation list
+ -
+ - 768
+ - List of the modulations used for the 1536 max possible carriers (from 0MHz to 37.5MHz), in a suite of nibbles (4 bits).
+
+ 0x0 = empty tone
+
+ 0x1 = BPSK
+
+ 0x2 = QPSK
+
+ 0x3 = 8\-QAM
+
+ 0x4 = 16\-QAM
+
+ 0x5 = 64\-QAM
+
+ 0x6 = 256\-QAM
+
+ 0x7 = 1024\-QAM
+
+ 0x8 - 0xf = reserved
+
+Get signal over noise ratio (VS_GET_SNR)
+----------------------------------------
+
+Description
+^^^^^^^^^^^
+
+VS_GET_SNR.REQ allows a management software to get the current signal / noise ratio (SNR) measured during communications.
+These values are available for each carrier per tonemap interval.
+
+At first, management software must get the list of tonemap intervals used.
+A VS_GET_SNR.REQ is sent with the MAC-address of the remote station of the peer, and with INT=0xff.
+
+Station answers with a VS_GET_SNR.CNF containing the list of valid tonemap intervals and an identifier (INT Id).
+This identifier is linked to the provided interval list and must be used for each following request.
+
+To get SNR data, a VS_GET_SNR.REQ is sent with the current valid identifier (INT Id) and the needed tonemap interval index (INT) gotten from previously received tonemap interval list.
+The carrier group modulo 8 is also required, as all carriers cannot fit into 1 MME packet.
+For instance, group 2 provided SNR for carriers 2, 10, 18 ..., 1530. 8 requests are needed to get all SNR data for a tonemap interval.
+
+The validity of the currently used tonemap interval list indentifier can change inside the station, so a requested SNR for an interval may not fit the originally sent interval list.
+Identifier (INT Id) is used to keep the coherence between the tonemap interval list and the requested interval index.
+If the tonemap interval list has been updated, the tonemap interval list identifier is incremented.
+The next request with the old identifier will fail with "bad tonemap interval list identifier" result code.
+The new tonemap interval list identifier and interval list are provided inside the answer message.
+
+VS_GET_SNR.REQ (0xA038)
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Station address
+ - 0
+ - 6
+ - MAC address of remote peer station where is applied the requested SNR
+
+ * - INT
+ - 6
+ - 1
+ - 0x00 - 0x1f= tonemap interval index
+
+ 0x20 - 0xfe = reserved
+
+ 0xff = get current intervals lists only.
+
+ * - INT Id
+ - 7
+ - 1
+ - Current tonemap interval list identifier. No meaning if INT=0xff.
+
+ * - Carrier group
+ - 8
+ - 1
+ - 0x00 - 0x07 = carrier group modulo 8
+
+ 0x08 \- 0xff = reserved
+
+VS_GET_SNR.CNF (0xA039)
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 = Bad tonemap interval list identifier (list has been updated)
+
+ 0x03 \- 0xff = Reserved
+
+ * - INT Id
+ - 1
+ - 1
+ - Current tonemap interval list identifier.
+
+ * - INT length
+ - 2
+ - 1
+ - 0x00 - 0x20 = number of entries in interval list (I)
+
+ * - INT ET[0]
+ - 3
+ - 2
+ - End time of interval #0 in allocation time unit (10.24us)
+
+ * - ...
+ - ...
+ - ...
+ -
+
+ * - INT ET[I\-1]
+ -
+ - 2
+ - End time of interval #I\-1 in allocation time unit (10.24us)
+
+ * - TM BER
+ -
+ - 2
+ - Average Bit Error Rate. Bit numbers in little\-endian unsigned 16 bits integer.
+
+ * - Carrier group
+ -
+ - 1
+ - 0x00 - 0x07 = carrier group modulo 8
+
+ 0x08 \- 0xff = reserved
+
+ * - SNR
+ -
+ - 768
+ - List of SNR for requested carrier group modulo inside the 1536 max possible carriers (from 0MHz to 37.5MHz).Each SNR is an little\-endian unsigned 32 bits integer.
+
+Get attenuation (VS_GET_SPECTRUM)
+---------------------------------
+
+Description
+^^^^^^^^^^^
+
+VS_GET_SPECTRUM is used by a management software to get spectrum information data of the currently used medium.
+
+Spectrum is gotten from data received from a remote station.
+Time offset from the start of beacon period when the data has been received is provided to know which interval fits.
+
+Provided spectrum values are in mantissa + exponent format, where the exponent is common for all the mantissa values.
+The get the real value, application must process :
+
+- value = mantissa * 2 ^ (exponent + 2)
+
+As all data cannot fit into a MME message, spectrum must be read by carrier group modulo 8. For instance, requesting group 3 will provide spectrum of carriers 3, 11, 19, ... 1531.
+
+VS_GET_SPECTRUM.REQ (0xA03C)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Station address
+ - 0
+ - 6
+ - MAC address of remote peer station where is applied the requested spectrum
+
+ * - Carrier group
+ - 6
+ - 1
+ - 0x00 - 0x07 = carrier group modulo 8
+
+ 0x08 - 0xfe = reserved
+
+ 0xff = get AGC only
+
+VS_GET_SPECTRUM.CNF (0xA03D)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Time offset
+ - 1
+ - 2
+ - Time offset of received data used for spectrum, in allocation time unit (10.24us) from start of beacon period (unsigned integer).
+
+ * - AGC
+ - 3
+ - 1
+ - AGC value
+
+ * - Exponent
+ - 4
+ - 1
+ - Common exponent for all spectrum mantissa values (signed integer)
+
+ * - Carrier group
+ - 5
+ - 1
+ - 0x00 - 0x07 = carrier group modulo 8
+
+ 0x08 - 0xfe = reserved
+
+ 0xff = get AGC only
+
+ * - Spectrum
+ - 6
+ - 768
+ - List of spectrum mantissa values (channel effect) for requested carrier group modulo inside the 1536 max possible carriers (from 0MHz to 37.5MHz),
+
+Each spectrum value is defined as :
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Imaginary
+ - 0
+ - 2
+ - Imaginary part in little\-endian signed 16 bits integer.
+
+ * - Real
+ - 2
+ - 2
+ - Real part in little\-endian signed 16 bits integer.
+
+Get extended link statistics (VS_GET_LINK_STATS)
+------------------------------------------------
+
+VS_GET_LINK_STATS.REQ (0xA040)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - ReqType
+ - 0
+ - 1
+ - Request Type
+
+ 0x00 = reset statistics for the corresponding Link
+
+ 0x01 = get statistics for the corresponding Link
+
+ 0x02 = get and reset statistics for the corresponding Link
+
+ 0x03 \- 0xFF = reserved
+
+ * - ReqID
+ - 1
+ - 1
+ - Request Identifier
+
+ The ReqID field is set by the sender of this MME such that the same value is not recently used between the sender and the receiver of this MME.
+
+ Request ID is used to bind this request with the corresponding response.
+
+ * - NID
+ - 2
+ - 7
+ - Network Identifier of the STA(s) whose connection statistics are being requested.
+ The least\-significant 54 bits of this field contains the NID.
+
+ The remaining 2 bits are set to 0b00.
+
+ * - LID
+ - 9
+ - 1
+ - Link Identifier
+
+ This field is valid only when the Mgmt_Flag is set to 0x00.
+
+ * - TLFlag
+ - 10
+ - 1
+ - Transmit Link Flag
+
+ 0x00 = transmit Link
+
+ 0x01 = receive Link
+
+ 0x02 \- 0xFF = reserved
+
+ * - Mgmt_Flag
+ - 11
+ - 1
+ - Management Link
+
+ 0x00 = not management Link
+
+ 0x01 = management Link
+
+ 0x02 \- 0xFF = reserve
+
+ * - DA/SA
+ - 12\-17
+ - 6
+ - Indicate the Destination MAC Address when TLFlag is set to 0x00.Indicate the Source Mac Address when TLFlag is set to 0x01.
+
+VS_GET_LINK_STATS.CNF (0xA041)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Req Id
+ - 0
+ - 1
+ - Request Identifier copied from the corresponding request
+
+ * - Result
+ - 1
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Bad CRC
+ - 2
+ - 4
+ - Bad CRC number from received PBs.
+
+Get amplitude map (VS_GET_AMP_MAP)
+----------------------------------
+
+VS_GET_AMP_MAP.REQ (0xA044)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ - 0
+ -
+ - No data
+
+VS_GET_AMP_MAP.CNF (0xA045)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - AMLEN
+ - 1
+ - 2
+ - Number of amplitude map data entries
+
+ * - AM list
+ - 3
+ - 768
+ - List of the amplitude map data used for the 1536 max possible carriers (from 0MHz to 37.5MHz), in a suite of nibbles (4 bits).
+
+Get vendor specifics statistics (VS_GET_STATS)
+----------------------------------------------
+
+VS_GET_STATS.REQ (0xA048)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Page
+ - 0
+ - 1
+ - Page number requested. The first page available is 0.
+
+ * - Reserved
+ - 1
+ - 1
+ - Reserved (contains 0x00)
+
+VS_GET_STATS.CNF (0xA049)
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Nb_Pages
+ - 1
+ - 1
+ - Total number of pages available (minimum is 1).
+
+ * - Stats
+ - 2
+ - var
+ - This fields contain a string where each stat is recorded with the following pattern: "<name>:<hexadecimal value>"Patterns are separated with spaces.If the page contains no statistic associated this field is empty.The last char of the string is a NULL char (0x00).The max size for this field is 1023 octets.
+
+Classifier rules
+----------------
+
+Description
+^^^^^^^^^^^
+
+A classifier rule is used by the station during packet inspection.
+Station tries to match the content of processed packet header with one of the defined classifier rules.
+
+If match has been successful, the process rule (service, cspec,...) referring to this classifier rule is executed.
+
+A classifier rule is a set of matching field rules, linked all together with a logical operation and a layer level (to allow some logical groups).
+
+Definition of classifier field rule:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - operand
+ - 0
+ - 1
+ - Operand to apply on the rule:
+
+ 0x00: true (no operand)
+
+ 0x01: and
+
+ 0x02: or
+
+ 0x03 - 0xff: reserved
+
+ * - level
+ - 1
+ - 1
+ - Group / parenthesis depth level
+
+ * - field_id
+ - 2
+ - 1
+ - Id of packet field type. See field id table.
+
+ * - equal
+ - 3
+ - 1
+ - Equality between field and value:
+
+ 0x00: not equal
+
+ 0x01: equal
+
+ 0x02 - 0xff: reserved
+
+ * - value
+ - 4
+ - ...
+ - value to match. See field id table.
+
+Field ID table:
+^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Name
+ - Identifier
+ - Value Size (Octets)
+ - Interpretation
+
+ * - Ethernet Destination Address
+ - 0x00
+ - 6
+ - This parameter indicates the Destination Address of the Ethernet frame. The format of this parameter is described in the IEEE Standard 802\-2001. The least\-significant bit of the least significant octet of this parameter is the Individual/Group (I/G) bit of the 48\-bit Ethernet MAC address.
+
+ * - Ethernet Source Address
+ - 0x01
+ - 6
+ - This parameter indicates the Source Address of the Ethernet frame. The format of this parameter is described in the IEEE Standard 802\-2001. The least\-significant bit of the least significant octet of this parameter is the Individual/Group (I/G) bit of the 48\-bit Ethernet MAC address.
+
+ * - VLAN User Priority
+ - 0x02
+ - 1
+ - The 3 least\-significant bits of this parameter indicates the user_priority contained in the Ethernet VLAN Tag as defined in the IEEE Std 802.1Q\-1998 (Virtual Bridged Local Area Networks. The remaining 5 bits shall be set to 0b00000. A value of 0x00 shall indicate a user priority of 0. A value of 0x01 shall indicate a user priority of 1 and so on.
+
+ * - VLAN ID
+ - 0x03
+ - 2
+ - The 12 least\-significant bits of this parameter indicate the VLAN identifier (VID) contained in the VLAN Tag as defined in the IEEE Std 802.1Q\-1998. The remaining 4 bits shall be set to 0x0.A value of 0x0000 shall indicate null VID. A value of 0x0001 shall indicate the default PVID value used for classifying frames on ingress through a Bridge Port, and so on.
+
+ * - IPv4 Type of Service
+ - 0x04
+ - 1
+ - This parameter indicates the Type of Service (TOS) field in the IPv4 header.The format of this parameter is described in the RFC 791 (Internet Protocol). The most\-significant bit of this parameter shall correspond to the most\-significant bit in the IPv4 TOS field.
+
+ * - IPv4 Protocol
+ - 0x05
+ - 1
+ - This parameter indicates the Protocol field in the IPv4 header.The format of this parameter is described in the RFC 791. The most\-significant bit of this parameter shall correspond to the most\-significant bit in the IPv4 Protocol field. Thus, a value of 0b00000110 in this parameter indicates Transmission Control Protocol (TCP).
+
+ * - IPv4 Source Address
+ - 0x06
+ - 4
+ - This parameter indicates the Source Address of the IP Version 4 packet. The format of this parameter is described in the RFC 791. The most\-significant bit in the least significant octet of this parameter shall correspond to the most\-significant bit in the IPv4 Source Address. Thus, a value of 0b0 in the most\-significant bit in the least significant octet of this parameter indicates a Class A IP source address.
+
+ * - IPv4 Destination Address
+ - 0x07
+ - 4
+ - This parameter indicates the Destination Address of the IP Version 4 packet. The format of this parameter is described in the RFC 791. The most\-significant bit in the least significant octet of this parameter shall correspond to the most\-significant bit in the IPv4 Destination Address. Thus, a value of 0b0 in the most\-significant bit in the least significant octet of this parameter indicates a Class A IP destination address.
+
+ * - IPv6 Traffic Class
+ - 0x08
+ - 1
+ - This parameter indicates the Traffic Class of the IPv6 packet.The format of this field is as described in RFC 2460 (Internet Protocol Version 6 [IPv6] specification). The most\-significant bit in the least significant octet of this parameter shall correspond to the most\-significant bit in the IPv6 Traffic Class.
+
+ * - IPv6 Flow Label
+ - 0x09
+ - 3
+ - The 20 least\-significant bits of this parameter indicates the Flow label of the IPv6 packet. The remaining 4 bit shall be set to 0x0.The format of this field is as described in RFC 2460. The most\-significant bit in the least significant octet of this parameter shall correspond to the most\-significant bit in the IPv6 Flow Label.
+
+ * - IPv6 Source Address
+ - 0x0A
+ - 16
+ - This parameter indicates the Source Address of the IP Version 6 packet.The format of this field is as described in RFC 2460. The most\-significant bit in the least significant octet of this parameter shall correspond to the most\-significant bit in the IPv6 Source Address.
+
+ * - IPv6 Destination Address
+ - 0x0B
+ - 16
+ - This parameter indicates the Destination Address of the IP Version 6 packet.The format of this field is as described in RFC 2460. The most\-significant bit in the least significant octet of this parameter shall correspond to the most\-significant bit in the IPv6 Destination Address.
+
+ * - TCP Source Port
+ - 0x0C
+ - 2
+ - This parameter indicates the Source Port of the TCP packet. The format of this field is as described in RFC 793 (Transmission Control Protocol). The most\-significant bit in the least significant octet of this parameter shall correspond to the most\-significant bit of the TCP Source Port.
+
+ * - TCP Destination Port
+ - 0x0D
+ - 2
+ - This parameter indicates the Destination Port of the TCP packet. The format of this field is as described in RFC 793. The most\-significant bit in the least significant octet of this parameter shall correspond to the most\-significant bit of the TCP Destination Port.
+
+ * - UDP Source Port
+ - 0x0E
+ - 2
+ - This parameter indicates the Source Port of the UDP packet. The format of this field is as described in RFC 768 (User Datagram Protocol). The most\-significant bit in the least significant octet of this parameter shall correspond to the most\-significant bit of the UDP Source Port.
+
+ * - UDP Destination Port
+ - 0x0F
+ - 2
+ - This parameter indicates the Destination Port of the UDP packet. The format of this field is as described in RFC 768. The most\-significant bit in the least significant octet of this parameter shall correspond to the most\-significant bit of the UDP Destination Port.
+
+ * - \-
+ - 0x10 - 0xDF
+ - \-
+ - Reserved for future use
+
+ * - Organizationally Unique Identifier (OUI)
+ - 0xE0
+ - 3
+ - The IEEE\-assigned OUI as described in reference [4]. The bit and octet order of the OUI is identical to the bit and octet order of the MAC address as described in Section 4.1.2. The OUI is used to determine the interpretation of the vendor specific classifier parameters i.e., Parameter Identifiers 0xE2 - 0xFF.OUI shall be present whenever vendor specific classifier parameters are present.
+
+ * - Bridge destination address
+ - 0xE1
+ - 6
+ - This parameter indicates the Address of station which will bridge the Ethernet frame from the PLC/cable medium to the Ethernet.The format of this parameter is described in the IEEE Standard 802\-2001. The least\-significant bit of the least significant octet of this parameter is the Individual/Group (I/G) bit of the 48\-bit Ethernet MAC address.
+
+ * - Bridge source address
+ - 0xE2
+ - 6
+ - This parameter indicates the Address of station which has bridge the Ethernet frame from the Ethernet medium to the PLC/cable.The format of this parameter is described in the IEEE Standard 802\-2001. The least\-significant bit of the least significant octet of this parameter is the Individual/Group (I/G) bit of the 48\-bit Ethernet MAC address.
+
+ * - NULL
+ - 0xE3
+ - 0
+ - Operand with no rule
+
+ * - Reserved
+ - 0xE4 - 0xFF
+ - \-
+ - Reserved
+
+Classifier rule example
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The following classifier rule:
+
+- ((vlan.vid == 0x10) or (vlan.vid == 0x20)) and ((ether.dst == 00:a3:45:00:25:c1) or (bridge.src != 00:13:d7:00:39:be))
+
+means:
+
+- a 802.1Q packet with VID = 0x10 or VID = 0x20 and its Ethernet destination = 00:a3:45:00:25:c1 or its source station != 00:13:d7:00:39:be
+
+can be translated in a set of 5 field rules:
+
+- 00 (true) 01 (level 1) 03 (VID) 01 (equal) 10 00 (0x10 in little endian)
+
+- 02 (or) 01 (level 1) 03 (VID) 01 (equal) 20 00 (0x20 in little endian)
+
+- 01 (or) 00 (level 0) e3 (NULL id) 00 (not equal, no meaning here)
+
+- 00 (true) 01 (level 1) 00 (ether.dst) 01 (equal) 00 a3 45 00 25 c1
+
+- 02 (or) 01 (level 1) e2 (bridge.src) 00 (not equal) 00 13 d7 00 39 be
+
+Get classifier rules (VS_GET_CLASSIFIER)
+----------------------------------------
+
+VS_GET_CLASSIFER.REQ (0xA04C)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - first_index
+ - 0
+ - 1
+ - First index of classifier rule to get.
+
+ * - rule_nb
+ - 1
+ - 1
+ - Number of rule to get.
+
+VS_GET_CLASSIFER.CNF (0xA04D)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - total_nb
+ - 1
+ - 1
+ - Total rule number in classifier table
+
+ * - rule_nb
+ - 3
+ - 1
+ - Number of returned rules
+
+ * - rule_index[0]
+ - 4
+ - 1
+ - Index of rule 0
+
+ * - field_rule_nb[0]
+ - 5
+ - 1
+ - Number of field rules inside classifier rule definition 0
+
+ * - field_rule_table[0]
+ - 6
+ -
+ - List of field rules 0 (see classifier rule definition)
+
+ * - ...
+ - ...
+ - ...
+ - ...
+
+ * - rule_index[n\-1]
+ -
+ - 1
+ - Index of rule n\-1
+
+ * - field_rule_nb[n\-1]
+ -
+ - 1
+ - Number of field rules inside classifier rule definition n\-1
+
+ * - field_rule_table[n\-1]
+ -
+ -
+ - List of field rules (see classifier rule definition) n\-1
+
+Set classifier rules (VS_SET_CLASSIFIER)
+----------------------------------------
+
+VS_SET_CLASSIFER.REQ (0xA050)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - command
+ - 0
+ - 1
+ - Action to do:
+
+ 0x00: add rules
+
+ 0x01: remove rules
+
+ 0x02: flush all rules
+
+ * - rule_nb
+ - 3
+ - 1
+ - Number of rules to set
+
+ * - rule_index[0]
+ - 4
+ - 1
+ - Index of rule 0
+
+ * - field_rule_nb[0]
+ - 5
+ - 1
+ - Number of field rules inside classifier rule definition 0
+
+ * - field_rule_table[0]
+ - 6
+ -
+ - List of field rules (see classifier rule definition) 0
+
+ * - ...
+ - ...
+ - ...
+ - ...
+
+ * - rule_index[n\-1]
+ -
+ - 1
+ - Index of rule n\-1
+
+ * - field_rule_nb[n\-1]
+ -
+ - 1
+ - Number of field rules inside classifier rule definition n\-1
+
+ * - field_rule_table[n\-1]
+ -
+ -
+ - List of field rules (see classifier rule definition) n\-1
+
+VS_SET_CLASSIFER.CNF (0xA051)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+Service rules
+-------------
+
+Description
+^^^^^^^^^^^
+
+A service rule is used to define the type of communication to apply on a station according to the type of ethernet packet to receive or transmit from/to the PLC/cable medium.
+
+To know which service to apply to which communication type, a classifier rule is attached to allow a matching between the service and the packets from focused data types.
+
+Service can be created for this communication type manually (created by the network administrator) or automatically (created when the first packet matching the rules is processed).
+
+The automatic way is referred as ACS (Auto-Connection Service).
+
+A service can be applied inside the CSMA (contention) period (only for PLC) or inside the TDMA (contention-free) period (PLC and cable).
+If applied to the CSMA, a QOS priority for medium access can also be defined (for 0 to 3).
+
+A service rule contains several parameters, as a set of id/value pairs, which define the characteristics of the service connection.
+
+Service parameter definition
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - id
+ - 0
+ - 1
+ - Id of parameter. See parameter id table.
+
+ * - length
+ - 1
+ - 1
+ - Value length in bytes.
+
+ * - value
+ - 2
+ - ...
+ - Parameter value.
+
+Service parameter ID
+^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Name
+ - Identifier
+ - Value Size (Octets)
+ - Definition
+
+ * - Latency
+ - 0x00
+ - 4
+ - Maximum amount of time allowed to transport an MSDU, measured from the time the MSDU arrives at the Convergence Layer SAP of the transmit station until the time is transmitted or retransmitted successfully across the powerline network and delivered out of the Convergence Layer SAP of the receive station(s). Unit is microseconds.0x00000000 = 0 microseconds, and so on
+
+ * - Jitter
+ - 0x01
+ - 4
+ - Maximum difference in the delay experienced by an MSDU. Delay is measured from the time the MSDU arrives at the Convergence Layer SAP of the transmit station until it is successfully delivered out of the Convergence Layer SAP of the receive station(s). Unit is microseconds.0x00000000 = 0 microseconds and so on
+
+ * - Min datarate
+ - 0x05
+ - 4
+ - The minimum application data rate specified at the CL SAP that is required for transport of MSDUs belonging to this Link. This does not include the MAC and PHY overhead incurred in transferring the MSDU. Units in multiples of 10 Kilobits per second (kbps).0x0000 = 0 Kbps, 0x0001 = 10 Kbps and so on.
+
+ * - Max datarate
+ - 0x06
+ - 4
+ - The maximum application data rate specified at the CL SAP that is required for transport of MSDUs belonging to this Link. This does not include the MAC and PHY overhead incurred in transferring the MSDU. Units in multiples of 10 Kilobits per second (kbps).0x0000 = 0 Kbps, 0x0001 = 10 Kbps and so on.
+
+Get service rules (VS_GET_SERVICE)
+----------------------------------
+
+VS_GET_SERVICE.REQ (0xA054)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - first_index
+ - 0
+ - 1
+ - First index of service rule to get.
+
+ * - rule_nb
+ - 1
+ - 1
+ - Number of rule to get.
+
+VS_GET_SERVICE.CNF (0xA055)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - total_nb
+ - 1
+ - 1
+ - Total rule number of existing service rules
+
+ * - rule_nb
+ - 2
+ - 1
+ - Number of returned rules
+
+ * - service_index[0]
+ - 3
+ - 1
+ - Index of rule 0
+
+ * - acs[0]
+ - 4
+ - 1
+ - Auto connection service:
+
+ 0x00: no ACS (manual setting)
+
+ 0x01: ACS enable for this service
+
+ * - classifier_id[0]
+ - 5
+ - 1
+ - Id of classifier rule to match the service.
+
+ * - type[0]
+ - 6
+ - 1
+ - Type of service
+
+ 0x00: CSMA
+
+ 0x01: TDMA
+
+ 0x02 - 0xff: reserved
+
+ * - qos[0]
+ - 7
+ - 1
+ - CSMA priority for transmission
+
+ 0x00 - 0x03: priority (the higher is the most prioritary)
+
+ 0x04 - 0xff: reserved
+
+ * - parameter_nb[0]
+ - 5
+ - 1
+ - Number of parameters inside service rule definition 0
+
+ * - parameter_list[0]
+ - 6
+ -
+ - List of parameters 0 (see service parameter definition)
+
+ * - ...
+ - ...
+ - ...
+ - ...
+
+ * - service_index[n\-1]
+ -
+ - 1
+ - Index of rule n\-1
+
+ * - acs[n\-1]
+ -
+ - 1
+ - Auto connection service:
+
+ 0x00: no ACS (manual setting)
+
+ 0x01: ACS enable for this service
+
+ * - classifier_id[n\-1]
+ -
+ - 1
+ - Id of classifier rule to match the service.
+
+ * - type[n\-1]
+ -
+ - 1
+ - Type of service
+
+ 0x00: CSMA
+
+ 0x01: TDMA
+
+ 0x02 - 0xff: reserved
+
+ * - qos[n\-1]
+ -
+ - 1
+ - CSMA priority for transmission
+
+ 0x00 - 0x03: priority (the higher is the most prioritary)
+
+ 0x04 - 0xff: reserved
+
+ * - parameter_nb[n\-1]
+ -
+ - 1
+ - Number of parameters inside service rule definition n\-1
+
+ * - parameter_list[n\-1]
+ -
+ -
+ - List of parameters n\-1 (see service parameter definition)
+
+Set service rules (VS_SET_SERVICE)
+----------------------------------
+
+VS_SET_SERVICE.REQ (0xA058)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - command
+ - 0
+ - 1
+ - Action to do:
+
+ 0x00: add rules
+
+ 0x01: remove rules
+
+ 0x02: flush all rules
+
+ * - rule_nb
+ - 2
+ - 1
+ - Number rule to process
+
+ * - service_index[0]
+ - 3
+ - 1
+ - Index of rule 0
+
+ * - acs[0]
+ - 4
+ - 1
+ - Auto connection service:
+
+ 0x00: no ACS (manual setting)
+
+ 0x01: ACS enable for this service
+
+ * - classifier_id[0]
+ - 5
+ - 1
+ - Id of classifier rule to match the service.
+
+ * - type[0]
+ - 6
+ - 1
+ - Type of service
+
+ 0x00: CSMA
+
+ 0x01: TDMA
+
+ 0x02 - 0xff: reserved
+
+ * - qos[0]
+ - 7
+ - 1
+ - CSMA priority for transmission
+
+ 0x00 - 0x03: priority (the higher is the most prioritary)
+
+ 0x04 - 0xff: reserved
+
+ * - parameter_nb[0]
+ - 5
+ - 1
+ - Number of parameters inside service rule definition 0
+
+ * - parameter_list[0]
+ - 6
+ -
+ - List of parameters 0 (see service parameter definition)
+
+ * - ...
+ - ...
+ - ...
+ - ...
+
+ * - service_index[n\-1]
+ -
+ - 1
+ - Index of rule n\-1
+
+ * - acs[n\-1]
+ -
+ - 1
+ - Auto connection service:
+
+ 0x00: no ACS (manual setting)
+
+ 0x01: ACS enable for this service
+
+ * - classifier_id[n\-1]
+ -
+ - 1
+ - Id of classifier rule to match the service.
+
+ * - type[n\-1]
+ -
+ - 1
+ - Type of service
+
+ 0x00: CSMA
+
+ 0x01: TDMA
+
+ 0x02 - 0xff: reserved
+
+ * - qos[n\-1]
+ -
+ - 1
+ - CSMA priority for transmission
+
+ 0x00 - 0x03: priority (the higher is the most prioritary)
+
+ 0x04 - 0xff: reserved
+
+ * - parameter_nb[n\-1]
+ -
+ - 1
+ - Number of parameters inside service rule definition n\-1
+
+ * - parameter_list[n\-1]
+ -
+ -
+ - List of parameters n\-1 (see service parameter definition)
+
+VS_SET_SERVICE.CNF (0xA059)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+VLAN port rules
+---------------
+
+Description
+^^^^^^^^^^^
+
+A VLAN port rule is a rule defining the way how ethernet ports are managing the data packets with VLAN properties.
+
+VLAN rules are not "matching rules" like defined and used into classifier part.
+They are rules defining actions to apply to the packets:
+
+- ingress (incoming packets): filtering and/or untagging of VLAN part
+
+- egress (outgoing packets): tagging with VLAN tag or over-writing of existing tag
+
+For each ethernet port existing into the station, only 1 VLAN rule can be attached.
+
+Each rule has an action mode:
+
+- transparent: no action; packet crosses the ethernet port without filtering or modification
+
+- access: incoming packets are encapsulated with a predefined VLAN tag; outgoing packets are filtered according to a VLAN id list, then untagged
+
+- trunk: incoming packets are filtered according to the defined VLAN id list; packets stays unmodified
+
+- hybrid: like trunk mode, but if untag flag is set, the outgoing packet arriving with the corresponding VLAN id is untagged.
+ If tag flag is set, the outgoing and incoming packets are overwritten with provided VLAN tag.
+
+VLAN rule
+^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - index
+ - 0
+ - 1
+ - Index of VLAN port rule.
+
+ * - model
+ - 1
+ - 1
+ - VLAN port action mode:
+
+ 0x00: transparent
+
+ 0x01: access
+
+ 0x02: trunk
+
+ 0x03: hybrid
+
+ 0x04 - 0xff: reserved
+
+ * - encaps tag
+ - 2
+ - 2
+ - Complete VLAN tag to insert when encapsulating
+
+ * - vlan id nb
+ - 4
+ - 1
+ - Number of VLAN id defined inside the following table
+
+ * - vlan_id[0]
+ - 5
+ - 2
+ - VLAN id and action description:
+
+ action flag field (4 bits):
+
+ 0b0000: no action
+
+ 0b0001: untag (for hybrid mode only)
+
+ VLAN id (12 bits):
+
+ 0: VLAN id 0 (802.1p priority only)
+
+ 1 - 4094: VLAN id
+
+ 4095: reserved
+
+ * - ...
+ - ...
+ - ...
+ - ...
+
+ * - vlan_id[n\-1]
+ - 5
+ - 2
+ - VLAN id and action description:
+
+ action flag field (4 bits):
+
+ 0b0001: untag (for hybrid mode only)
+
+ 0b0010: tag (for hybrid mode only)
+
+ VLAN id (12 bits):
+
+ 0: VLAN id 0 (802.1p priority only)
+
+ 1 - 4094: VLAN id
+
+ 4095: reserved
+
+Get VLAN port rules (VS_GET_PORT_VLAN)
+--------------------------------------
+
+VS_GET_PORT_VLAN.REQ (0xA05C)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - first_index
+ - 0
+ - 1
+ - First index of VLAN port rule to get.
+
+ * - rule_nb
+ - 1
+ - 1
+ - Number of rule to get.
+
+VS_GET_PORT_VLAN.CNF (0xA05D)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - total_nb
+ - 1
+ - 1
+ - Total ethernet port number
+
+ * - rule_nb
+ - 2
+ - 1
+ - Number of returned rules
+
+ * - vlan rule[0]
+ - 3
+ - ...
+ - 1st returned VLAN port rule
+
+ * - ...
+ - ...
+ - ...
+ - ...
+
+ * - vlan rule[n\-1]
+ - ...
+ - ...
+ - N\-1th returned VLAN port rule
+
+Set VLAN port rules (VS_SET_VLAN_PORT)
+--------------------------------------
+
+VS_SET_VLAN_PORT.REQ (0xA060)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - rule_nb
+ - 0
+ - 1
+ - Number of rules to set
+
+ * - vlan rule[0]
+ - 2
+ - ...
+ - 1st VLAN port rule
+
+ * - ...
+ - ...
+ - ...
+ - ...
+
+ * - vlan rule[n\-1]
+ - ...
+ - ...
+ - N\-1th VLAN port rule
+
+VS_SET_VLAN_PORT.CNF (0xA061)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+Start software update process (VS_UPDATE_START)
+-----------------------------------------------
+
+VS_UPDATE_START.REQ (0xA064)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Protocol Version
+ - 0
+ - 1
+ - Version of update protocol (first version is 1)
+
+ * - Version
+ - 1
+ - 16
+ - Version of image to transfer
+
+ * - Architecture
+ - 17
+ - 4
+ - Modem chipset architecture type
+
+ 0x00 = spc300
+
+ * - Update Type
+ - 21
+ - 4
+ - Update type
+
+ 0x00 = normal image
+
+ 0x01 - 0xff = reserved
+
+ * - Board type
+ - 25
+ - 32
+ - Board type of the image to transfer
+
+ * - Image name
+ - 57
+ - 128
+ - Name of image for update
+
+ * - Server IP
+ - 185
+ - 4
+ - Server IP
+
+ * - Server port
+ - 189
+ - 6
+ - Server port
+
+ * - MD5sum
+ - 195
+ - 16
+ - MD5 sum generated on the Client side
+
+VS_UPDATE_START.CNF (0xA065)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Start Update
+ - 0
+ - 1
+ - 0x00 = OK (success) \- start update (update allowed)
+
+ 0x01 = Version already installed (update deferred)
+
+ 0x02 = Bad architecture (update deferred)
+
+ 0x03 = Bad type of update (update deferred)
+
+ 0x04 = Modem busy (one update already in progress \- update deferred)
+
+ 0x05 = Update protocol too high
+
+ 0x06 = Bad board type
+
+ 0x07 \- 0xff = Reserved
+
+Send update data (VS_UPDATE_TRANSFER)
+-------------------------------------
+
+VS_UPDATE_TRANSFER.REQ (0xA068)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Block Number
+ - 0
+ - 4
+ - Bloclk ID of of data to be sent
+
+ * - Length
+ - 4
+ - 4
+ - Length of data to be sent
+
+ * - Data
+ - 8
+ - Length (given above) in octets
+ - Actual data of a data block that is sent from client to server
+
+VS_UPDATE_TRANSFER.CNF (0xA069)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Ack
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Next Block
+ - 1
+ - 4
+ - Block ID number that server is expecting to come next
+
+VS_UPDATE_TRANSFER.IND (0xA069)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+Terminate software update process (VS_UPDATE_END)
+-------------------------------------------------
+
+VS_UPDATE_END.REQ (0xA06C)
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - MD5sum
+ - 0
+ - 16
+ - MD5 sum generated on the Client side
+
+VS_UPDATE_END.CNF (0xA06D)
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = MD5 error \- sum does not match
+
+ 0x02 = Version error - image transfer is different from START.REQ
+
+ 0x03 \- 0xff = Reserved
+
+VS_UPDATE_END.IND (0xA06E)
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success (Flash well written)
+
+ 0x01 = Failure (Flash can not be written)
+
+ 0x02 = Timeout (Server was expecting packet, client never sent)
+
+ 0x04 = TFTP update success
+
+ 0x05 = TFTP update failure
+
+ 0x06 \- 0xff = Reserved
+
+Encrypted Vendor Specific MME (VS_ENCRYPTED_PAYLOAD)
+----------------------------------------------------
+
+This MME is based on CM_ENCRYPTED_PAYLOAD.
+
+VS_ENCRYPTED_PAYLOAD.IND (0xA072)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - PEKS
+ - 0
+ - 1
+ - Payload Encryption Key Select (Unencrypted)
+
+ 0x00 = Encryption with Destination STA's DAK.
+
+ 0x01 \- 0xFF = Reserved
+
+ * - Reserved
+ - 1
+ - 1
+ - Unused
+
+ * - PID
+ - 2
+ - 1
+ - Protocol ID (Unencrypted)
+
+ 0x00 = Provision STA with NMK using DAK
+
+ 0x01 \- 0xFF = Reserved
+
+ * - PRN
+ - 3
+ - 2
+ - Protocol Run Number (Unencrypted)
+
+ * - PMN
+ - 5
+ - 1
+ - Protocol Message Number (Unencrypted)
+
+ * - IV
+ - 6
+ - 16
+ - AES encryption Initialization Vector (Unencrypted)
+
+ * - Len
+ - 22
+ - 2
+ - Length of Payload, in octets (Unencrypted)
+
+ * - RF
+ - 24
+ - 0\-15
+ - Random Filler: A random number (between 0 and 15) of random filler octets included in Encrypted Payload to make position of Protocol fields unpredictable (Encrypted Payload)
+
+ * - Payload
+ - \-
+ - Var
+ - can be any legal Management Message except VS_ENCRYPTED_PAYLOAD.IND (Encrypted Payload)
+
+ * - CRC
+ - \-
+ - 4
+ - Checksum on Payload (Encrypted Payload)
+
+ * - PID
+ - \-
+ - 1
+ - Protocol ID (Encrypted Payload)
+
+ * - PRN
+ - \-
+ - 2
+ - Protocol Run Number (Encrypted Payload)
+
+ * - PMN
+ - \-
+ - 1
+ - Protocol Message Number (Encrypted Payload)
+
+ * - Padding
+ - \-
+ - 0\-15
+ - To adjust size of Encrypted Payload to 128 bit boundary (Encrypted Payload)
+
+ * - RFLen
+ - \-
+ - 1
+ - 0x00 - 0x0F = Length of Random Filler (Bit numbers are before encryption and after decryption). (Encrypted Payload)
+
+Get statistics of CE (VS_GET_CE_STATS)
+--------------------------------------
+
+Description
+^^^^^^^^^^^
+
+The purpose of this MME is to get some statistics from the CE module of one station when it communicates with another station (one link, in one direction).
+This will help debugging and have some feedback of how the CE is doing.
+
+The behavior is quite simple, you send the VS_GET_CE_STATS.REQ to a desired station.
+The MME will specify of which station it should returns statistics.
+
+For example, if you have two stations (A and B) and they are communicating between each others, sending the MME to station A and specifying station B as MAC address will return statistics of the CE RX of station A for station B (i.e. data sent by station B and received by station A).
+
+The answer (VS_GET_CE_STATS.CNF) will contain all the statistics.
+
+VS_GET_CE_STATS.REQ (0xA074)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Peer
+ - 0
+ - 6
+ - MAC address of remote peer station for which CE statistics will be get
+
+VS_GET_CE_STATS.CNF (0xA075)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The answer is quite complex.
+
+There are two parts in the MME:
+
+- The first part describes the states of the CE (version, default TMI, list of intervals...)
+
+- The second part describes each FSM and their current states.
+
+To better understand, intervals repeat themselves (because noises tend to be periodic, this is more efficient to manage intervals by modulo).
+For example, you can have 24 intervals, but they repeat themselves each 6 intervals, i.e: interval 1, 7, 13, 19 are managed by the same FSM.
+Note that they can be no interval.
+
+Each FSM are identified by a FSM id.
+The first FSM, with the FSM id set to 0 does not manage any intervals.
+It manages the whole channel and decide if we need to switch in intervals mode or not.
+This FSM is always present in the MME.
+The FSM id is not the TMI (because we can have the same TMI (ROBO) for many intervals).
+
+More information on quantification can be found in the CE bit-loading documentation in the Cesar repository (in cesar/ce/rx/bitloading/doc).
+
+The second part of the table is repeated **interval_count** times.
+
+The third part of the table is repeated for each fsm_id found in the interval list plus once for the fsm_id 0.
+
+Some information marked with an asterix (*) on the third part of the table can be set to invalid value (0 or maximum value) when there is no previous tone map for example.
+
+The Version column indicates if this field is available only in some version of the MME (corresponding to the version_id field).
+0 was the first version.
+
+.. list-table::
+ :widths: 23 6 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet Number
+ - Field Size (Octets)
+ - Version
+ - Definition
+
+ * - version_id
+ - 0
+ - 1
+ - all
+ - Version of the MME. 1 is the most recent version.
+
+ * - result
+ - 1
+ - 1
+ - all
+ - 0x00 = Success,
+
+ 0x01 = Failure, In this case, the rest of the MME is invalid and should not be inspected.
+
+ 0x02 \- 0xff = Reserved.
+
+ * - default_tmi
+ - 2
+ - 1
+ - all
+ - The default TMI of the main FSM. It is stored on 8 bits.
+
+ * - interval_count
+ - 3
+ - 1
+ - all
+ - Number of intervals used by the CE.
+
+.. list-table::
+ :widths: 23 6 6 6 60
+ :header-rows: 0
+
+ * - end_offset_atu_0
+ - 4
+ - 2
+ - all
+ - The offset end of the first interval, in ATU.
+
+ * - fsm_id_0
+ - 6
+ - 1
+ - all
+ - The ID of the FSM which manage the first interval.
+
+.. list-table::
+ :widths: 23 6 6 6 60
+ :header-rows: 0
+
+ * - fsm_id_header_0
+ - \-
+ - 1
+ - all
+ - The identifier of the first FSM id to describe. It must be 0 for the first FSM.
+
+ * - fsm_state_0
+ - \-
+ - 1
+ - all
+ - This FSM state value. The value can change depending on the version of the FSM used in Cesar.
+
+ * - TMI_0
+ - \-
+ - 1
+ - all
+ - The TMI used and managed by this FSM. This includes ROBO tone maps and all the other values defined by the norm. But it also includes specific values used by software team:
+
+ 240 / 0xF0: sound complete (sound has been sent, waiting for tone map),
+
+ 252 / 0xFC: error in tone map (detected by PBProc),
+
+ 253 / 0xFD: initial start (sound has not been sent yet).
+
+ * - fec_rate_0
+ - \-
+ - 1
+ - all
+ - The FEC rate of the tone map:
+
+ 0: 1/2
+
+ 1: 16/21
+
+ * - ble_0
+ - \-
+ - 1
+ - all
+ - The Bit Loading Estimate of the tone map.
+
+ * - simple_tm_0
+ - \-
+ - 16
+ - all
+ - A simplified representation of the tone map: This field contains 8 tupples of 2 octets. Each tupple represents the number of tones with a specific modulation. For example, first tupple count the number of tones with modulation 0, the second, the number of tones with modulation 1, ...
+
+ * - ber_target_0
+ - \-
+ - 8
+ - all
+ - The BER target at the input of the bit loading algorithm. This is a quantified value.
+
+ * - ber_target_reached_0
+ - \-
+ - 8
+ - all
+ - The BER target reached (BER at the output of the bit loading algorithm). This corresponds to the BER the tone map should theoretically respect. This is a quantified value.
+
+ * - nb_frame_0
+ - \-
+ - 4
+ - all
+ - Total number of frames received using this tone map. A few notes: CE can drop some frames is memory is too low. Frames dropped are not counted by this statistic. Also note that this counter can overflow.
+
+ * - nb_pb_0
+ - \-
+ - 4
+ - all
+ - Total number of PB received using this tone map. The same notes as nb_frame_0 apply to this field.
+
+ * - curr_nb_pb_0
+ - \-
+ - 1
+ - all
+ - Number of PB in the last frame received by this tone map.
+
+ * - curr_nb_pb_crc_false_0
+ - \-
+ - 1
+ - all
+ - Number of PB with CRC false in the last frame received by this tone map.
+
+ * - curr_ber_sum_0
+ - \-
+ - 4
+ - all
+ - BER sum of the last frame received by this tone map. The BER is not quantified but correspond to the number of bit corrected in the frame, as reported by the hardware.
+
+ * - curr_ber_mean_slow_0
+ - \-
+ - 8
+ - all
+ - The BER mean slow of the tone map. This is a quantified value computed by the CE for each received frames with this tone map.
+
+ * - curr_ber_mean_fast_0
+ - \-
+ - 8
+ - all
+ - The BER mean fast of the tone map. This is a quantified value computed by the CE for each received frames with this tone map.
+
+ * - curr_pberr_rate_mean_0
+ - \-
+ - 4
+ - all
+ - The PB error rate mean of the tone map. This is a quantified value computed by the CE for each received frames with this tone map.
+
+ * - restart_ber_0
+ - \-
+ - 4
+ - all
+ - Number of restarts because BER was too low done by this FSM. This counter can overflow.
+
+ * - restart_pb_err_0
+ - \-
+ - 4
+ - all
+ - Number of restarts because PB error rate is too high done by this FSM. This counter can overflow.
+
+ * - restart_peer_0
+ - \-
+ - 4
+ - all
+ - Number of restarts because the peer has requested a restart (by sending some sound again - expiration of tone map on the other side for example). This counter can overflow.
+
+ * - restart_tmu_0
+ - \-
+ - 4
+ - all
+ - Number of restarts by this FSM for a tone map update. This counter can overflow.
+
+ * - restart_bmu_0
+ - \-
+ - 4
+ - since 1
+ - Number of restarts by this FSM for a BER margin update. This counter can overflow.
+
+ * - optimization_failed_count
+ - \-
+ - 4
+ - since 1
+ - Count of times the bit\-loading algorithm failed to optimize the generated tone\-map: failure occurs when the algorithm goes out of the optimization table before reaching BER target.
+
+ * - prev_ber_target_0
+ - \-
+ - 8
+ - all
+ - BER target of the previous tone map (*).
+
+ * - prev_ber_target_reached_0
+ - \-
+ - 8
+ - all
+ - BER target reached of the previous tone map (*).
+
+ * - prev_ber_mean_slow_0
+ - \-
+ - 8
+ - all
+ - BER mean slow of the previous tone map (*).
+
+ * - prev_ber_mean_fast_0
+ - \-
+ - 8
+ - all
+ - BER mean fast of the previous tone map (*).
+
+ * - prev_pberr_rate_mean_0
+ - \-
+ - 4
+ - all
+ - PB error rate of the previous tone map (*).
+
+ * - prev_restart_reason_0
+ - \-
+ - 1
+ - all
+ - Last reason of restart:
+
+ 0: BER is too low
+
+ 1: PB error rate is too high
+
+ 2: Peer send some sound frames
+
+ 3: Tone map update
+
+ 4: BER margin update (only in version 1)
+
+ 255: no restart yet
+
+Get network topology from CCo (VS_EOC_GET_TOPO)
+-----------------------------------------------
+
+VS_EOC_GET_TOPO.REQ (0xA08C)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_EOC_GET_TOPO.CNF (0xA08D)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - STA\-s Number
+ - 1
+ - 1
+ - Number of STA\-s connected on CCo.
+
+ * - MAC Address [0]
+ - 2
+ - 6
+ - MAC address of STA#1
+
+ * - Authorization Status [0]
+ - 8
+ - 1
+ - 0 : STA#1 is unassociated
+
+ 1 : STA#1 is associated
+
+ 2 : STA#1 is authenticated
+
+ 3 : STA#1 is authenticated first time or has been reset between two successive GET_TOPO calls
+
+ * - Upstream Attenuation [0]
+ - 9
+ - 1
+ - Attenuation between CCo and STA#1Unit: dB
+
+ * - ...
+ - ...
+ - ...
+ - ...
+
+ * - MAC Address [STA\-s Number \- 1]
+ - ...
+ - 6
+ - MAC address of STA#n
+
+ * - Authorization Status [STA\-s Number \- 1]
+ - ...
+ - 1
+ - 0 : STA#n is unassociated 1 : STA#n is associated 2 : STA#n is authenticated3 : STA#n is authenticated first time or has been reset between two successive GET_TOPO calls
+
+ * - Upstream Attenuation [STA\-s Number \- 1]
+ - ...
+ - 1
+ - Attenuation between CCo and STA#nUnit: dB
+
+Get device informations (VS_EOC_GET_DEVICE_INFO)
+------------------------------------------------
+
+VS_EOC_GET_DEVICE_INFO.REQ (0xA090)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_EOC_GET_DEVICE_INFO.CNF (0xA091)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Model Number
+ - 1
+ - 64
+ - String description for model number
+
+ * - Software Version
+ - 65
+ - 64
+ - String description for software version
+
+ * - Downstream Attenuation
+ - 129
+ - 1
+ - Attenuation between STA and CCoUnit: dB
+
+ * - Port Amount
+ - 130
+ - 1
+ - Number of ports available
+
+Set EoC station information in the White List (VS_EOC_CCO_SET_WL)
+-----------------------------------------------------------------
+
+VS_EOC_CCO_SET_WL.REQ (0xA094)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This message is used to gather information about stations present in the White List.
+Information for one or more stations can be collected using one MME.
+
+For each station, information includes station properties and action required for station entry in Cesar: add/update or remove entry.
+
+Number of stations depends on maximum MME size (in order to avoid fragmentation of MMEs).
+Since maximum available MME size is 1492 bytes (total 1518 bytes - header 26 bytes) and size of information for one slave is 98 bytes, one MME can hold information for maximum of 15 slaves.
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - StaNum
+ - 0
+ - 1
+ - Number of stations with information given = N (1 ≤ N ≤15)
+
+ * - MAC address #1
+ - 1
+ - 6
+ - MAC address of station #1
+
+ * - TEI #1
+ - 7
+ - 1
+ - TEI of station #1
+
+ * - Authorization #1
+ - 8
+ - 1
+ - Authorization status of station #1
+
+ * - Output level #1
+ - 9
+ - 1
+ - RF output level of station #1
+
+ * - Start time #1
+ - 10
+ - 4
+ - Start of time limitation for station #1
+
+ * - End time #1
+ - 14
+ - 4
+ - End of time limitation for station #1
+
+ * - StaDAK #1
+ - 18
+ - 16
+ - Device Access Key for station #1
+
+ * - StaDPW #1
+ - 34
+ - 64
+ - Device Password for station #1
+
+ * - Action #1
+ - 98
+ - 1
+ - Action required for station #1:
+
+ 0x00 = add/update entry for station
+
+ 0x01 = remove entry for station
+
+ * - ...
+ -
+ -
+ -
+
+ * - MAC address #N
+ - \-
+ - 6
+ - MAC address of station #N
+
+ * - ...
+ -
+ -
+ -
+
+ * - Action #N
+ - \-
+ - 1
+ - Action required for station #N
+
+VS_EOC_CCO_SET_WL.CNF (0xA095)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+Read EoC station information from White List (VS_EOC_CCO_GET_WL)
+----------------------------------------------------------------
+
+VS_EOC_CCO_GET_WL.REQ (0xA098)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - first_wl_index_nb
+ - 0
+ - 1
+ - Index of the first entry to be read from the Cesar white_list
+
+-
+
+VS_EOC_CCO_GET_WL.CNF (0xA099)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - total_wl_index_nb
+ - 1
+ - 1
+ - Total number of the white_list entries on Cesar
+
+ * - first_wl_index_nb
+ - 2
+ - 1
+ - Index of the first entry to be read from the Cesar white_list
+
+ * - wl_index_nb
+ - 3
+ - 1
+ - Number of the white_list entries contained within current VS_EOC_CCO_GET_WL.CNF mme
+
+ * - MAC address #1
+ - 4
+ - 6
+ - MAC address of station #1
+
+ * - TEI #1
+ - 10
+ - 1
+ - TEI of station #1
+
+ * - Authorization #1
+ - 11
+ - 1
+ - Authorization status of station #1
+
+ * - Output level #1
+ - 12
+ - 1
+ - RF output level of station #1
+
+ * - Start time #1
+ - 13
+ - 4
+ - Start of time limitation for station #1
+
+ * - End time #1
+ - 17
+ - 4
+ - End of time limitation for station #1
+
+ * - StaDAK #1
+ - 21
+ - 16
+ - Device Access Key for station #1
+
+ * - StaDPW #1
+ - 37
+ - 64
+ - Device Password for station #1
+
+ * - Action #1
+ - 101
+ - 1
+ - Action required for station #1:
+
+ 0x00 = add/update entry for station
+
+ 0x01 = remove entry for station
+
+ * - ...
+ -
+ -
+ -
+
+ * - MAC address #N
+ - \-
+ - 6
+ - MAC address of station #wl_index_nb
+
+ * - ...
+ -
+ -
+ -
+
+ * - Action #N
+ - \-
+ - 1
+ - Action required for station #wl_index_nb
+
+Set Output Level on a Station (VS_EOC_CCO_SET_OUT_LEV)
+------------------------------------------------------
+
+VS_EOC_CCO_SET_OUT_LEV.IND (0xA09E)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Output Level
+ - 0
+ - 1
+ - Output level value to set
+
+Setting service parameters on master EoC
+----------------------------------------
+
+Services available on EoC network are specified in service.conf file of master modem.
+To each service one classifier rule is attached along with parameters of the service.
+Service list is transferred to Cesar upon power up and initialization.
+
+EoC classifier rules
+^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Name
+ - Identifier
+ - Value Size (Octets)
+ - Definition
+
+ * - None
+ - 0x00
+ - 1
+ - No classification rule, all MSDUs coming across CL SAP are treated equally
+
+ * - VLAN ID
+ - 0x01
+ - 2
+ - Virtual LAN identifier, 12 bitsValue range 1 to 4094
+
+ * - VLAN prio
+ - 0x02
+ - 1
+ - Virtual LAN priority indicator , 3 bits, Vlan identifier set to 0. Value range 0 (lowest) to 7 (highest)
+
+ * - Tos / DSF
+ - 0x03
+ - 1
+ - Type of Service (RFC 1349) or Differentiated Service field (RFC 2474 & RFC 2475) specify requests such as priority, delay, path, etc. in routing of IP packet
+
+EoC service parameters
+^^^^^^^^^^^^^^^^^^^^^^^
+
+Each service is specified with some or all parameters from following list.
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Name
+ - Identifier
+ - Value Size (Octets)
+ - Definition
+
+ * - Latency
+ - 0x00
+ - 2
+ - Maximum amount of time allowed to transport an MSDU, measured from the time the MSDU arrives at the Convergence Layer SAP of the transmit station until the time is transmitted or retransmitted successfully across the cable network and delivered out of the Convergence Layer SAP of the receive station(s). Unit is milliseconds.0x0000 = 0 milliseconds, and so on
+
+ * - Jitter
+ - 0x01
+ - 2
+ - Maximum difference in the delay experienced by an MSDU. Delay is measured from the time the MSDU arrives at the Convergence Layer SAP of the transmit station until it is successfully delivered out of the Convergence Layer SAP of the receive station(s). Unit is milliseconds.0x0000 = 0 milliseconds, and so on
+
+ * - Download datarate (PIR)
+ - 0x02
+ - 2
+ - The maximum data rate (in master to slave direction) allowed for transport of MSDUs belonging to this Connection. This does not include the MAC and PHY overhead incurred in transferring the MSDU. Units in multiples of 10 Kilobits per second (kbps).0x0000 = 0 Kbps, 0x0001 = 10 Kbps and so on.
+
+ * - Upload datarate (PIR)
+ - 0x03
+ - 2
+ - The maximum data rate (in slave to master direction) allowed for transport of MSDUs belonging to this Connection. This does not include the MAC and PHY overhead incurred in transferring the MSDU. Units in multiples of 10 Kilobits per second (kbps).0x0000 = 0 Kbps, 0x0001 = 10 Kbps and so on.
+
+ * - Download datarate (CIR)
+ - 0x04
+ - 2
+ - The minimum data rate (in master to slave direction) promised for transport of MSDUs belonging to this Connection. This does not include the MAC and PHY overhead incurred in transferring the MSDU. Units in multiples of 10 Kilobits per second (kbps).0x0000 = 0 Kbps, 0x0001 = 10 Kbps and so on.
+
+ * - Upload datarate (CIR)
+ - 0x05
+ - 2
+ - The minimum data rate (in slave to master direction) promised for transport of MSDUs belonging to this Connection. This does not include the MAC and PHY overhead incurred in transferring the MSDU. Units in multiples of 10 Kilobits per second (kbps).0x0000 = 0 Kbps, 0x0001 = 10 Kbps and so on.
+
+ * - QoS Priority
+ - 0x06
+ - 2
+ - Determines transmission queue in which to put MSDUs belonging to this Connection. Four priority values from 0 (lowest) to 3 (highest)
+
+VS_EOC_CCO_SET_SERVICES.REQ (0xA0A0)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 20 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - command
+ - 0
+ - 1
+ - Action to do:
+
+ 0x00: add services
+
+ 0x01: remove services
+
+ 0x02: remove all services
+
+ * - service_nb
+ - 1
+ - 1
+ - Number of services sent in this message
+
+ * - service_index[0]
+ - 2
+ - 1
+ - Index of service 0
+
+ * - classifier_rule[0]
+ - 3
+ - 1
+ - Classifier rule ID for service 0
+
+ * - classifier_value[0]
+ - 4\-5
+ - 2
+ - Classifier rule value
+
+ * - acs[0]
+ - 6
+ - 1
+ - Automatic Connection Service enabled / disabled
+
+ * - parameter_list[0]
+ - 7
+ - 14
+ - List of parameters for service 0, each member of parameter list is 2 octets in size and specifies value of EoC service parameter starting from the lowest parameter identifier to the highest.
+
+ * - service_index[n\-1]
+ -
+ - 1
+ - Index of service n\-1
+
+ * - classifier_rule[n\-1]
+ -
+ - 1
+ - Classifier rule ID for service n\-1
+
+ * - classifier_value[n\-1]
+ -
+ - 2
+ - Classifier rule value
+
+ * - acs[n\-1]
+ -
+ - 1
+ - Automatic Connection Service enabled / disabled
+
+ * - parameter_list[n\-1]
+ -
+ - 14
+ - List of parameters for service n\-1, each member of parameter list is 2 octets in size and specifies value of EoC service parameter starting from the lowest parameter identifier to the highest.
+
+VS_EOC_CCO_SET_SERVICES.CNF (0xA0A1)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+VS_EOC_CCO_GET_SERVICES.REQ (0xA0A4)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - first_index
+ - 0
+ - 1
+ - Index of the first service to get.
+
+ * -
+ -
+ -
+ -
+
+VS_EOC_CCO_GET_SERVICES.CNF (0xA0A5)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - total_nb
+ - 1
+ - 1
+ - Total number of existing services
+
+ * - first_index
+ - 2
+ - 1
+ - Index of the first service to get
+
+ * - service_nb
+ - 3
+ - 1
+ - Number of returned services in this message
+
+ * - service_index[0]
+ - 4
+ - 1
+ - Index of service 0
+
+ * - classifier_rule[0]
+ - 5
+ - 1
+ - Classifier rule ID for service 0
+
+ * - classifier_value[0]
+ - 6\-7
+ - 2
+ - Classifier rule value
+
+ * - acs[0]
+ - 8
+ - 1
+ - Automatic Connection Service enabled / disabled
+
+ * - parameter_list[0]
+ - 9
+ - 14
+ - List of parameters for service 0, each member of parameter list is 2 octets in size, and specifies value of EoC service parameter starting from the lowest parameter identifier to the highest.
+
+ * - service_index[n\-1]
+ -
+ - 1
+ - Index of service n\-1
+
+ * - classifier_rule[n\-1]
+ -
+ - 1
+ - Classifier rule ID for service n\-1
+
+ * - classifier_value[n\-1]
+ -
+ - 2
+ - Classifier rule value
+
+ * - acs[n\-1]
+ -
+ - 1
+ - Automatic Connection Service enabled / disabled
+
+ * - parameter_list[n\-1]
+ -
+ - 14
+ - List of parameters for service n\-1, each member of parameter list is 2 octets in size and specifies value of EoC service parameter starting from the lowest parameter identifier to the highest.
+
+Sending port configuration of EoC slaves
+----------------------------------------
+
+Connection between services slaves have and the ports assigned to these services is stored in port.conf file of master modem.
+Upon master power up and initialization this information is conveyed to Cesar.
+
+VS_EOC_SET_PORTS.REQ (0xA0A8)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 20 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - stas_nb
+ - 0
+ - 1
+ - Number of stations to set ports for
+
+ * - MAC address[0]
+ - 1
+ - 6
+ - MAC address of a station 0
+
+ * - port1\-ed [0]
+ - 7
+ - 1
+ - State of port 1, enabled / disabled
+
+ * - port1\-service[0]
+ - 8
+ - 1
+ - Index of service attached to port 1, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port2\-ed[0]
+ - 9
+ - 1
+ - State of port 2, enabled / disabled
+
+ * - port2\-service[0]
+ - 10
+ - 1
+ - Index of service attached to port 2, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port3\-ed [0]
+ - 11
+ - 1
+ - State of port 3, enabled / disabled
+
+ * - port3\-service[0]
+ - 12
+ - 1
+ - Index of service attached to port 3, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port4\-ed[0]
+ - 13
+ - 1
+ - State of port 4, enabled / disabled
+
+ * - port4\-service[0]
+ - 14
+ - 1
+ - Index of service attached to port 4, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port5\-ed[0]
+ - 15
+ - 1
+ - State of port 5, enabled / disabled
+
+ * - port5\-service[0]
+ - 16
+ - 1
+ - Index of service attached to port 5, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - MAC address[n\-1]
+ -
+ - 6
+ - MAC address of a station n\-1
+
+ * - port1\-ed [n\-1]
+ -
+ - 1
+ - State of port 1, enabled / disabled
+
+ * - port1\-service[n\-1]
+ -
+ - 1
+ - Index of service attached to port 1, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port2\- ed[n\-1]
+ -
+ - 1
+ - State of port 2, enabled / disabled
+
+ * - port2\-service[n\-1]
+ -
+ - 1
+ - Index of service attached to port 2, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port3\-ed [n\-1]
+ -
+ - 1
+ - State of port 3, enabled / disabled
+
+ * - port3\-service[n\-1]
+ -
+ - 1
+ - Index of service attached to port 3, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port4\- ed[n\-1]
+ -
+ - 1
+ - State of port 4, enabled / disabled
+
+ * - port4\-service[n\-1]
+ -
+ - 1
+ - Index of service attached to port 4, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port5\- ed[n\-1]
+ -
+ - 1
+ - State of port 5, enabled / disabled
+
+ * - port5\-service[n\-1]
+ -
+ - 1
+ - Index of service attached to port 5, index is taken from table of services. For disabled ports this value is undetermined.
+
+VS_EOC_SET_PORTS.CNF (0xA0A9)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+VS_EOC_CCO_GET_PORTS.REQ (0xA0AC)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - first_MAC_index
+ - 0
+ - 1
+ - Index of the first station MAC address to be returned
+
+VS_EOC_CCO_GET_PORTS.CNF (0xA0AD)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 17 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - total_nb
+ - 1
+ - 1
+ - Total number of stations
+
+ * - first_MAC_index
+ - 2
+ - 1
+ - Index of the first station MAC address to be returned
+
+ * - stas_nb
+ - 3
+ - 1
+ - Number of stations whose port state is following
+
+ * - MAC address[0]
+ - 4
+ - 6
+ - MAC address of a station 0
+
+ * - port1\-ed [0]
+ - 10
+ - 1
+ - State of port 1, enabled / disabled
+
+ * - port1\-service[0]
+ - 11
+ - 1
+ - Index of service attached to port 1, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port2\-ed[0]
+ - 12
+ - 1
+ - State of port 2, enabled / disabled
+
+ * - port2\-service[0]
+ - 13
+ - 1
+ - Index of service attached to port 2, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port3\-ed [0]
+ - 14
+ - 1
+ - State of port 3, enabled / disabled
+
+ * - port3\-service[0]
+ - 15
+ - 1
+ - Index of service attached to port 3, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port4\-ed[0]
+ - 16
+ - 1
+ - State of port 4, enabled / disabled
+
+ * - port4\-service[0]
+ - 17
+ - 1
+ - Index of service attached to port 4, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port5\-ed[0]
+ - 18
+ - 1
+ - State of port 5, enabled / disabled
+
+ * - port5\-service[0]
+ - 19
+ - 1
+ - Index of service attached to port 5, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - MAC address[n\-1]
+ -
+ - 6
+ - MAC address of a station n\-1
+
+ * - port1\-ed [n\-1]
+ -
+ - 1
+ - State of port 1, enabled / disabled
+
+ * - port1\-service[n\-1]
+ -
+ - 1
+ - Index of service attached to port 1, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port2\-ed[n\-1]
+ -
+ - 1
+ - State of port 2, enabled / disabled
+
+ * - port2\-service[n\-1]
+ -
+ - 1
+ - Index of service attached to port 2, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port3\-ed [n\-1]
+ -
+ - 1
+ - State of port 3, enabled / disabled
+
+ * - port3\-service[n\-1]
+ -
+ - 1
+ - Index of service attached to port 3, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port4\-ed[n\-1]
+ -
+ - 1
+ - State of port 4, enabled / disabled
+
+ * - port4\-service[n\-1]
+ -
+ - 1
+ - Index of service attached to port 4, index is taken from table of services. For disabled ports this value is undetermined.
+
+ * - port5\-ed[n\-1]
+ -
+ - 1
+ - State of port 5, enabled / disabled
+
+ * - port5\-service[n\-1]
+ -
+ - 1
+ - Index of service attached to port 5, index is taken from table of services. For disabled ports this value is undetermined.
+
+Set classifier rules on EoC slave
+----------------------------------
+
+VS_EOC_SET_CLASSIFIER.REQ (A0B0)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 12 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - command
+ - 0
+ - 1
+ - Action to do:
+
+ 0x00: add classifier rules
+
+ 0x01: remove classifier rules
+
+ 0x02: remove all classifier rules
+
+ * - Number of rules
+ - 1
+ - 1
+ - Number of classifier rules, n
+
+ * - classifier_rule[0]
+ - 2
+ - 1
+ - Classifier rule ID
+
+ * - classifier_value[0]
+ - 3\-4
+ - 2
+ - Classifier rule value
+
+ * - link_id[0]
+ - 5
+ - 1
+ - Link identifier for data matching rule 0.
+
+ Value range is that of Local Link ID (0x04 \- 0x7f)
+
+ * - acs[0]
+ - 6
+ - 1
+ - Automatic Connection Service enabled / disabled
+
+ * - classifier_rule[n\-1]
+ -
+ - 1
+ - Classifier rule ID
+
+ * - classifier_value[n\-1]
+ -
+ - 2
+ - Classifier rule value
+
+ * - link_id[n\-1]
+ -
+ - 1
+ - Link identifier for data matching rule n\-1.Value range is that of Local Link ID (0x04 \- 0x7f)
+
+ * - acs[n\-1]
+ -
+ - 1
+ - Automatic Connection Service enabled / disabled
+
+VS_EOC_SET_CLASSIFIER.CNF (A0B1)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+Start slave configuration process (VS_EOC_AUTOCONF_START)
+---------------------------------------------------------
+
+VS_EOC_AUTOCONF_START.REQ (0xA0B4)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Protocol Version
+ - 0
+ - 1
+ - Version of update protocol (first version is 1)
+
+ * - MD5sum
+ - 0
+ - 16
+ - MD5 sum generated on the master side
+
+VS_EOC_AUTOCONF_START.CNF (0xA0B5)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Start Configuration
+ - 0
+ - 1
+ - 0x00 = OK (success) \- start slave configuration
+
+ 0x01 = Modem busy (another configuration already in progress)
+
+ 0x02 = Configuration protocol too high
+
+ 0x03 = Can't open configuration file
+
+ 0x04 = Auto\-configuration already exist
+
+ 0x05 \- 0xff = Reserved
+
+Send configuration data (VS_EOC_AUTOCONF_TRANSFER)
+--------------------------------------------------
+
+VS_EOC_AUTOCONF_TRANSFER.REQ (0xA0B8)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Block Number
+ - 0
+ - 4
+ - Block ID of data to be sent
+
+ * - Length
+ - 4
+ - 4
+ - Length of data to be sent
+
+ * - Data
+ - 8
+ - Length
+ - Actual data of a data block that is sent from client to server
+
+VS_EOC_AUTOCONF_TRANSFER.CNF (0xA0B9)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Acknowledge
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+ * - Next Block
+ - 1
+ - 4
+ - Block ID number that server is expecting to come next
+
+Terminate slave configuration process (VS_EOC_AUTOCONF_END)
+-----------------------------------------------------------
+
+VS_EOC_AUTOCONF_END.REQ (0xA0BC)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - MD5sum
+ - 0
+ - 16
+ - MD5 sum generated on the master side
+
+VS_EOC_AUTOCONF_END.CNF (0xA0BD)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = MD5 error (sum does not match)
+
+ 0x02 = Auto\-configuration failed
+
+ 0x03 \- 0xff = Reserved
+
+Get informations on STA's up/down link speed, mpdu frames statistics, snr, attenuation and tei(VS_EOC_GET_INFO)
+---------------------------------------------------------------------------------------------------------------
+
+VS_EOC_GET_INFO.REQ (0xA0C4)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Internal EoC index
+ - 0
+ - 1
+ - 0
+
+ * - Control
+ - 1
+ - 1
+ - 0 - read the counter
+
+ 1 - clear the counter
+
+VS_EOC_GET_INFO.CNF (0xA0C5)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Status
+ - 0
+ - 1
+ - "00" represent response right. The values below can work. Other values represent error.
+
+ * - Tei
+ - 1\-2
+ - 2
+ - EOC slave identifier, values range from 0 to 1024.
+
+ * - Attenuation
+ - 3
+ - 1
+ - The average attenuation between EOC master and slave, measured in dB, values range from 0 to 80.
+
+ * - SNR
+ - 4
+ - 1
+ - EOC current signal\-to\-noise, measured in dB, values range from 0 to 100.
+
+ * - Phy Up Link Speed
+ - 5\-6
+ - 2
+ - EOC current average uplink speed, measured in Mbps, values range from 0 to 512.
+
+ * - Phy Down Link Speed
+ - 7\-8
+ - 2
+ - EOC current average downlink speed, measured in Mbps, values range from 0 to 512.
+
+ * - Output Power
+ - 9
+ - 1
+ - EOC current launching power, measured in dBuV, values range from 0 to 130.
+
+ * - Tx Success Counter
+ - 10\-13
+ - 4
+ - Counter of EOC current MPDU frames which are sent rightly.
+
+ * - Tx CRC Error Counter
+ - 14\-17
+ - 4
+ - Counter of EOC current CRC error MPDU frames which are sent.
+
+ * - Tx Other Error Counter
+ - 18\-21
+ - 4
+ - Counter of EOC current other error MPDU frames which are sent.
+
+ * - Rx Success Counter
+ - 22\-25
+ - 4
+ - Counter of EOC current MPDU frames which are received.
+
+ * - Rx CRC Error Counter
+ - 26\-29
+ - 4
+ - Counter of EOC current CRC error MPDU frames which are received.
+
+ * - Rx Other Error Counter
+ - 30\-33
+ - 4
+ - Counter of EOC current other error MPDU frames which are received.
+
+Get informations on STA's state, assoc / auth / leave statistics, master MAC address, nid and beacon slots(VS_EOC_DIAGNOSTIC_INFO)
+----------------------------------------------------------------------------------------------------------------------------------
+
+VS_EOC_DIAGNOSTIC_INFO.REQ (0xA0C8)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Internal EoC index
+ - 0
+ - 1
+ - 0
+
+ * - Control
+ - 1
+ - 1
+ - 0 - read the counter
+
+ 1 - clear the counter
+
+VS_EOC_DIAGNOSTIC_INFO.CNF (0xA0C9)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Status
+ - 0
+ - 1
+ - "00" represent response right. The values below can work. Other values represent error.
+
+ * - Assoc Stat
+ - 1
+ - 1
+ - associated device State00 disconnect01 associated and unauthenticated02 authenticated
+
+ * - Nid
+ - 2\-8
+ - 7
+ - Net identifier, the least 54 bits represent identifier.
+
+ * - Num Slots
+ - 9
+ - 1
+ - Beacon Solts, values range from 0x00 to 0x07.
+
+ * - He Mac Address
+ - 10\-15
+ - 6
+ - EOC master MAC address
+
+ * - Est Avg Phy Rate
+ - 16\-17
+ - 2
+ - EOC current PHY speed estimated value. Measured in Mbps, values range from 0 to 512.
+
+ * - Num Good Assoc Auth
+ - 18
+ - 1
+ - Counter of EOC associated and authenticated.
+
+ * - Num Bad Could Not Assoc
+ - 19\-20
+ - 2
+ - Counter of EOC’s associated requests but no response.
+
+ * - Num Bad Assoc Failure
+ - 21\-24
+ - 4
+ - Counter of EOC’s associated requests which are refused by master.
+
+ * - Num Bad Could Not Auth
+ - 25\-28
+ - 4
+ - Counter of EOC’s authenticated requests but no response.
+
+ * - Num Leave
+ - 29\-32
+ - 4
+ - Counter of EOC was disconnected by master.
+
+Get informations on the real time statistics from a station (VS_EOC_GET_REAL_TIME_STATISTICS)
+---------------------------------------------------------------------------------------------
+
+VS_EOC_GET_REAL_TIME STATISTICS.REQ (0xA0CC)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Control
+ - 0
+ - 1
+ - 0 - read the counters
+
+ 1 - clear the counters
+
+VS_EOC_GET_REAL_TIME_STATISTICS.CNF (0xA0CD)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 22 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Status
+ - 0
+ - 1
+ - "00" represent response right. The values below can work. Other values represent error.
+
+ * - nb_unicast_packets_rx
+ - 1\-4
+ - 4
+ - Number of unicast packets received
+
+ * - nb_unicast_packets_tx
+ - 5\-8
+ - 4
+ - Number of unicast packets sent
+
+ * - total_nb_bytes_rx
+ - 9\-12
+ - 4
+ - Total number of bytes received
+
+ * - total_nb_bytes_tx
+ - 13\-16
+ - 4
+ - Total number of bytes sent
+
+ * - nb_broadcast_packets_rx
+ - 17\-20
+ - 4
+ - Number of broadcast packets received
+
+ * - nb_broadcast_packets_tx
+ - 21\-24
+ - 4
+ - Number of broadcast packets sent
+
+ * - nb_multicast_packets_rx
+ - 25\-28
+ - 4
+ - Number of multicast packets received
+
+ * - nb_multicast_packets_tx
+ - 29\-32
+ - 4
+ - Number of multicast packets sent
+
+ * - nb_packets_rx_crc
+ - 33\-36
+ - 4
+ - Number of packets received CRC
+
+ * - nb_packets_rx_short
+ - 37\-40
+ - 4
+ - Number of packets recived short
+
+ * - nb_packets_tx_short
+ - 41\-44
+ - 4
+ - Number of packets sent short
+
+ * - nb_packets_tx_dropped
+ - 45\-48
+ - 4
+ - Number of dropped packets sent
+
+ * - nb_packets_rx_discarded
+ - 49\-52
+ - 4
+ - Number of discarded packets received
+
+ * - avg_pre_fec_bit_error_rate
+ - 53\-56
+ - 4
+ - Average pre\-FEC bit error rate
+
+Set network parameters (VS_EOC_SET_NETWORK_PARAMETERS)
+------------------------------------------------------
+
+VS_EOC_SET_NETWORK_PARAMETERS.REQ (0xA0D0)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Interfaces
+ - 0
+ - 1
+ - 0x00 = br0
+
+ 0x01 = plc0
+
+ 0x02 = eth0
+
+ * - IP address
+ - 1\-4
+ - 4
+ - IP address
+
+ * - Netmask
+ - 5\-8
+ - 4
+ - Netmask
+
+ * - Broadcast
+ - 9\-12
+ - 4
+ - Broadcast
+
+ * - Gateway
+ - 13\-16
+ - 4
+ - Gateway
+
+ * - Mode
+ - 17
+ - 1
+ - 0x00 = static
+
+ 0x01 = dhcp
+
+VS_EOC_SET_NETWORK_PARAMETERS.CNF (0xA0D1)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failed
+
+ 0x02 \- 0xff = Reserved
+
+Get network parameters (VS_EOC_GET_NETWORK_PARAMETERS)
+------------------------------------------------------
+
+VS_EOC_GET_NETWORK_PARAMETERS.REQ (0xA0D4)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Interfaces
+ - 0
+ - 1
+ - 0x00 = br0
+
+ 0x01 = plc0
+
+ 0x02 = eth0
+
+VS_EOC_GET_NETWORK_PARAMETERS.CNF (0xA0D5)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failed
+
+ 0x02 \- 0xff = Reserved
+
+ * - IP address
+ - 1\-4
+ - 4
+ - IP address
+
+ * - Netmask
+ - 5\-8
+ - 4
+ - Netmask
+
+ * - Broadcast
+ - 9\-12
+ - 4
+ - Broadcast
+
+ * - Gateway
+ - 13\-16
+ - 4
+ - Gateway
+
+ * - Mode
+ - 17
+ - 1
+ - 0x00 = static
+
+ 0x01 = dhcp
+
+Get PS Statistics (VS_GET_PB_STATS)
+-----------------------------------
+
+VS_GET_PB_STATS.REQ (0xA0D8)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - stei filter
+ - 0
+ - 1
+ - 0xff = No filter
+
+ Other means TEI filter enable on a specific STEI.
+
+VS_GET_PB_STATS.CNF (0xA0D9)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This MME can be fragmented
+
+Max PB per MPDU is 236 in AV (less in EoC)
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Status
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failed
+
+ 0x02 = Not Supported
+
+ 0x03 \- 0xff = Reserved
+
+ * - Nb measure
+ - 1
+ - 2
+ - Number of mpdu statistic recorded.
+
+ * - Date [N]
+ - (N*40) \+ 3
+ - 4
+ - Reception mpdu date synchronize with CCO (ntb clock)
+
+ * - STEI [N]
+ - (N*40) \+ 7
+ - 1
+ - Source Terminal Equipment Identifier
+
+ * - Nb_PB [N]
+ - (N*40) \+ 8
+ - 1
+ - Number of PB on this mpdu. Max : 236
+
+ * - fl_av [N]
+ - (N*40) \+ 9
+ - 2
+ - Payload Length in multiples of 1.28 μsec. Max is 0x0FFF.
+
+ * - PB's bitMap [N]
+ - (N*40) \+ 11
+ - 32
+ - String composed of '0' and '1', which indicate the crc status on every PB on this mpdu.(1 = OK / O = NOK).
+
+Get MAC to TEI table (VS_GET_MACTOTEI)
+--------------------------------------
+
+VS_GET_MACTOTEI.REQ (0xA0DC)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_GET_MACTOTEI.CNF (0xA0DD)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This MME can be fragmented
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - nb_entry
+ - 0
+ - 2
+ - Number of entry transmitted in this mme.
+
+ * - MAC [N]
+ - 8*N\+2
+ - 6
+ - Mac address of the entry N found in the mactotei table.
+
+ * - TEI [N]
+ - 8*N\+8
+ - 1
+ - TEI of the entry N found in the mactotei table.
+
+ * - Tag [N]
+ - 8*N\+9
+ - 1
+ - Tag of the entry N found in the mactotei table.
+
+Factory (VS_FACTORY)
+--------------------
+
+VS_FACTORY.REQ (0xA0E0)
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_FACTORY.CNF (0xA0E1)
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failure
+
+ 0x02 \- 0xff = Reserved
+
+Get CPE IP MAC list (VS_EOC_GET_CPEIPMAC_LIST)
+----------------------------------------------
+
+VS_EOC_GET_CPEIPMAC_LIST.REQ (0xA0E4)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - NULL
+ -
+ - 0
+ - no data
+
+VS_EOC_GET_CPEIPMAC_LIST.CNF (0xA0E5)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. list-table::
+ :widths: 7 6 6 60
+ :header-rows: 1
+
+ * - Field
+ - Octet number
+ - Field size (octets)
+ - Definition
+
+ * - Result
+ - 0
+ - 1
+ - 0x00 = Success
+
+ 0x01 = Failed
+
+ 0x02 \- 0xff = Reserved
+
+ * - Number of elements
+ - 1
+ - 1
+ - Number of CPE IP/MAC pairs sent
+
+ * - IP [N]
+ - N*10\+2
+ - 4
+ - IP address of entry N in the CPE list
+
+ * - MAC [N]
+ - N*10\+6
+ - 6
+ - MAC address of entry N in the CPE list
diff --git a/cleopatre/doc/mme_specs/mme_specs.rst b/cleopatre/doc/mme_specs/mme_specs.rst
new file mode 100644
index 0000000000..ddde067cf0
--- /dev/null
+++ b/cleopatre/doc/mme_specs/mme_specs.rst
@@ -0,0 +1,36 @@
+|Title| - |Version|
++++++++++++++++++++
+
+.. |Title| replace:: MME specifications
+.. |Version| replace:: A62
+
+.. include:: header.rst
+
+Introduction
+************
+
+Forewords
+=========
+
+This document contains the MME specifications.
+
+References
+==========
+
+.. _REF:
+
++----------+-----------------------------------------------------+
+|Reference |
++==========+=====================================================+
+| REF 1 | NA |
++----------+-----------------------------------------------------+
+
+.. include:: glossary.rst
+
+.. include:: chapter_mme_principles.rst
+
+.. include:: chapter_hpav_mme.rst
+
+.. include:: chapter_vs_mme.rst
+
+.. include:: chapter_ms_mme.rst