Commit c5528d0b authored by Jeff Morriss's avatar Jeff Morriss Committed by Anders Broman

Make some more Diameter AVP names unique.

In some cases this means using the correct (updated?) name from the
specification. In others it means prepending the application- or vendor-name
to force uniqueness.

Remove a few more "Unassigned" AVPs from the XML files.

Change-Id: I61d55ef97ff8efc3317c91bf79e73031735f740a
Reviewed-on: https://code.wireshark.org/review/15949Reviewed-by: 's avatarAnders Broman <a.broman58@gmail.com>
parent e5517317
......@@ -28,19 +28,19 @@
</avp>
<!-- ************************** SCAP AVPS, see 155 19-FAY 112 51/2 rev B ********************* -->
<avp name="Currency-Code" code="544" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Currency-Code" code="544" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="Unsigned32"/>
</avp>
<avp name="Subscription-Id" code="553" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Subscription-Id" code="553" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<grouped>
<gavp name="Subscription-Id-Data"/>
<gavp name="Subscription-Id-Type"/>
<gavp name="SCAP-Subscription-Id-Data"/>
<gavp name="SCAP-Subscription-Id-Type"/>
</grouped>
</avp>
<avp name="Subscription-Id-Data" code="554" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Subscription-Id-Data" code="554" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="UTF8String"/>
</avp>
<avp name="Subscription-Id-Type" code="555" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Subscription-Id-Type" code="555" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="Enumerated"/>
<enum name="End User MSISDN" code="0"/>
<enum name="End User IMSI" code="1"/>
......@@ -50,8 +50,8 @@
</avp>
<avp name="Original-Subscription-Id" code="559" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<grouped>
<gavp name="Subscription-Id-Data"/>
<gavp name="Subscription-Id-Type"/>
<gavp name="SCAP-Subscription-Id-Data"/>
<gavp name="SCAP-Subscription-Id-Type"/>
</grouped>
</avp>
......@@ -60,43 +60,43 @@
<enum name="Service Element Termination" code="0"/>
<enum name="Connection to User Broken" code="1"/>
</avp>
<avp name="Final-Unit-Indication" code="601" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Final-Unit-Indication" code="601" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="Unsigned32"/>
</avp>
<avp name="Granted-Service-Unit" code="602" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Granted-Service-Unit" code="602" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<grouped>
<gavp name="Unit-Type"/>
<gavp name="Unit-Value"/>
<gavp name="Currency-Code"/>
<gavp name="SCAP-Unit-Type"/>
<gavp name="SCAP-Unit-Value"/>
<gavp name="SCAP-Currency-Code"/>
</grouped>
</avp>
<avp name="Cost" code="603" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="Float64"/>
</avp>
<avp name="Cost-Information" code="604" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Cost-Information" code="604" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<grouped>
<gavp name="Cost"/>
<gavp name="Currency-Code"/>
<gavp name="SCAP-Currency-Code"/>
</grouped>
</avp>
<avp name="Accounting-Correlation-Id" code="605" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="UTF8String"/>
</avp>
<avp name="Requested-Service-Unit" code="606" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Requested-Service-Unit" code="606" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<grouped>
<gavp name="Unit-Type"/>
<gavp name="Unit-Value"/>
<gavp name="Currency-Code"/>
<gavp name="SCAP-Unit-Type"/>
<gavp name="SCAP-Unit-Value"/>
<gavp name="SCAP-Currency-Code"/>
</grouped>
</avp>
<avp name="Service-Parameter-Info" code="607" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Service-Parameter-Info" code="607" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<grouped>
<gavp name="Service-Parameter-Type"/>
<gavp name="Service-Parameter-Value"/>
<gavp name="SCAP-Service-Parameter-Type"/>
<gavp name="SCAP-Service-Parameter-Value"/>
</grouped>
</avp>
<avp name="Service-Parameter-Type" code="608" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Service-Parameter-Type" code="608" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="Enumerated"/>
<!-- CCN Specific Interpretation, see 1553-HSD 108 06/1 rev A -->
<enum name="Service Provider Id (CCN)" code="0"/>
......@@ -120,45 +120,45 @@
<enum name="Tele Service Code (CCN)" code="18"/>
<enum name="Service Key (CCN)" code="19"/>
</avp>
<avp name="Service-Parameter-Value" code="609" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Service-Parameter-Value" code="609" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="OctetString"/>
</avp>
<avp name="Event-Timestamp" code="610" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Event-Timestamp" code="610" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="Time"/>
</avp>
<avp name="Unit-Type" code="611" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Unit-Type" code="611" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="Enumerated"/>
<enum name="Service Credit Time (seconds)" code="0"/>
<enum name="Service Credit Volume (bytes)" code="1"/>
<enum name="Service Credit Events (number of events)" code="2"/>
<enum name="Serivce Credit Money (monetary value)" code="3"/>
</avp>
<avp name="Unit-Value" code="612" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Unit-Value" code="612" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<grouped>
<gavp name="Value-Digits"/>
<gavp name="Exponent"/>
</grouped>
</avp>
<avp name="Used-Service-Unit" code="613" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Used-Service-Unit" code="613" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<grouped>
<gavp name="Unit-Type"/>
<gavp name="Unit-Value"/>
<gavp name="Currency-Code"/>
<gavp name="SCAP-Unit-Type"/>
<gavp name="SCAP-Unit-Value"/>
<gavp name="SCAP-Currency-Code"/>
</grouped>
</avp>
<avp name="Check-Balance-Result" code="614" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Check-Balance-Result" code="614" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="Enumerated"/>
<enum name="Enough Credit" code="0"/>
<enum name="No Credit" code="1"/>
</avp>
<avp name="Requested-Action" code="615" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Requested-Action" code="615" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="Enumerated"/>
<enum name="Direct Debiting" code="0"/>
<enum name="Refund Account" code="1"/>
<enum name="Check Balance" code="2"/>
<enum name="Price Enquiry" code="3"/>
</avp>
<avp name="Exponent" code="616" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<avp name="SCAP-Exponent" code="616" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
<type type-name="Integer32"/>
</avp>
<avp name="Value-Digits" code="617" mandatory="must" vendor-bit="must" vendor-id="Ericsson" protected="may" may-encrypt="yes">
......
......@@ -242,13 +242,13 @@
</avp>
<avp name="SIP-Auth-Data-Item(Obsolete CN#25)" code="13" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<grouped>
<gavp name="SIP-Item-Number"/>
<gavp name="SIP-Authentication-Scheme"/>
<gavp name="SIP-Authenticate"/>
<gavp name="SIP-Authorization"/>
<gavp name="SIP-Authentication-Context"/>
<gavp name="Confidentiality-Key"/>
<gavp name="Integrity-Key"/>
<gavp name="SIP-Item-Number(Obsolete CN#25)"/>
<gavp name="SIP-Authentication-Scheme(Obsolete CN#25)"/>
<gavp name="SIP-Authenticate(Obsolete CN#25)"/>
<gavp name="SIP-Authorization(Obsolete CN#25)"/>
<gavp name="SIP-Authentication-Context(Obsolete CN#25)"/>
<gavp name="Confidentiality-Key(Obsolete CN#25)"/>
<gavp name="Integrity-Key(Obsolete CN#25)"/>
</grouped>
</avp>
<avp name="SIP-Item-Number(Obsolete CN#25)" code="14" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
......@@ -622,30 +622,30 @@
<avp name="Optional-Capability" code="605" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<type type-name="Unsigned32"/>
</avp>
<avp name="User-Data" code="606" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<avp name="Cx-User-Data" code="606" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<type type-name="OctetString"/>
</avp>
<avp name="SIP-Number-Auth-Items" code="607" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<avp name="3GPP-SIP-Number-Auth-Items" code="607" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<type type-name="Unsigned32"/>
</avp>
<avp name="SIP-Authentication-Scheme" code="608" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<avp name="3GPP-SIP-Authentication-Scheme" code="608" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<type type-name="UTF8String"/>
</avp>
<avp name="SIP-Authenticate" code="609" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<avp name="3GPP-SIP-Authenticate" code="609" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<type type-name="OctetString"/>
</avp>
<avp name="SIP-Authorization" code="610" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<avp name="3GPP-SIP-Authorization" code="610" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<type type-name="OctetString"/>
</avp>
<avp name="SIP-Authentication-Context" code="611" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<type type-name="OctetString"/>
</avp>
<avp name="SIP-Auth-Data-Item" code="612" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<avp name="3GPP-SIP-Auth-Data-Item" code="612" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<grouped>
<gavp name="SIP-Item-Number"/>
<gavp name="SIP-Authentication-Scheme"/>
<gavp name="SIP-Authenticate"/>
<gavp name="SIP-Authorization"/>
<gavp name="3GPP-SIP-Authentication-Scheme"/>
<gavp name="3GPP-SIP-Authenticate"/>
<gavp name="3GPP-SIP-Authorization"/>
<gavp name="SIP-Authentication-Context"/>
<gavp name="Confidentiality-Key"/>
<gavp name="Integrity-Key"/>
......@@ -659,7 +659,7 @@
<gavp name="Authorization -Information-SIM"/>
</grouped>
</avp>
<avp name="SIP-Item-Number" code="613" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<avp name="3GPP-SIP-Item-Number" code="613" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
<type type-name="Unsigned32"/>
</avp>
<avp name="Server-Assignment-Type" code="614" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="yes">
......@@ -890,7 +890,7 @@
<avp name="MSISDN" code="701" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="no">
<type type-name="OctetString"/>
</avp>
<avp name="User-Data" code="702" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="no">
<avp name="Sh-User-Data" code="702" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="no">
<type type-name="OctetString"/>
</avp>
<avp name="Data-Reference" code="703" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="no">
......
......@@ -31,14 +31,14 @@
<enum name="ESTABLISHMENT" code="1"/>
<enum name="MODIFICATION" code="2"/>
</avp>
<avp name="Charging-Rule-Install" code="801" vendor-bit="must" vendor-id="TGPP2">
<avp name="3GPP2-Charging-Rule-Install" code="801" vendor-bit="must" vendor-id="TGPP2">
<grouped>
<gavp name="Charging-Rule-Definition"/>
<gavp name="3GPP2-Charging-Rule-Definition"/>
<gavp name="Charging-Rule-Name"/>
<gavp name="Charging-Rule-Base-Name"/>
</grouped>
</avp>
<avp name="Charging-Rule-Definition" code="802" vendor-bit="must" vendor-id="TGPP2">
<avp name="3GPP2-Charging-Rule-Definition" code="802" vendor-bit="must" vendor-id="TGPP2">
<grouped>
<gavp name="Charging-Rule-Name"/>
<gavp name="Service-Identifier"/>
......@@ -46,7 +46,7 @@
<gavp name="Flow-Identifier"/>
<gavp name="Flow-Description"/>
<gavp name="Flow-Status"/>
<gavp name="QoS-Information"/>
<gavp name="3GPP2-QoS-Information"/>
<gavp name="Reporting-Level"/>
<gavp name="Online"/>
<gavp name="Offline"/>
......@@ -56,7 +56,7 @@
<gavp name="Flows"/>
</grouped>
</avp>
<avp name="Event-Trigger" code="803" vendor-bit="must" vendor-id="TGPP2">
<avp name="3GPP2-Event-Trigger" code="803" vendor-bit="must" vendor-id="TGPP2">
<type type-name="Enumerated"/>
<enum name="PCF_CHANGE" code="0"/>
<enum name="QOS_CHANGE" code="1"/>
......@@ -69,7 +69,7 @@
<enum name="PCC_RULE_FAILURE" code="8"/>
<enum name="ACCESS_NETWORK_PHYSICAL_ACCESS_ID_CHANGE" code="9"/>
</avp>
<avp name="QoS-Information" code="804" vendor-bit="must" vendor-id="TGPP2">
<avp name="3GPP2-QoS-Information" code="804" vendor-bit="must" vendor-id="TGPP2">
<grouped>
<gavp name="QoS-Class-Identifier"/>
<gavp name="Max-Requested-Bandwidth-UL"/>
......@@ -78,7 +78,7 @@
<gavp name="Guaranteed-Bitrate-DL"/>
</grouped>
</avp>
<avp name="Charging-Rule-Report" code="805" vendor-bit="must" vendor-id="TGPP2">
<avp name="3GPP2-Charging-Rule-Report" code="805" vendor-bit="must" vendor-id="TGPP2">
<grouped>
<gavp name="Charging-Rule-Name"/>
<gavp name="Charging-Rule-Base-Name"/>
......@@ -92,7 +92,7 @@
<avp name="AGW-IPv6-Address" code="807" vendor-bit="must" vendor-id="TGPP2">
<type type-name="IPAddress"/>
</avp>
<avp name="RAT-Type" code="808" vendor-bit="must" vendor-id="TGPP2">
<avp name="3GPP2-RAT-Type" code="808" vendor-bit="must" vendor-id="TGPP2">
<type type-name="Enumerated"/>
<enum name="CDMA2000-1X" code="0"/>
<enum name="HRPD" code="1"/>
......
......@@ -1116,7 +1116,7 @@
<avp name="Tunnel-Server-Auth-Id" code="91" mandatory="must" may-encrypt="yes" protected="may" vendor-bit="mustnot">
<type type-name="UTF8String"/>
</avp>
<avp name="NAS-Filter-Rule" code="92" mandatory="must" may-encrypt="yes" protected="may" vendor-bit="mustnot">
<avp name="RADIUS-NAS-Filter-Rule" code="92" mandatory="must" may-encrypt="yes" protected="may" vendor-bit="mustnot">
<type type-name="UTF8String"/>
</avp>
<!-- AVP 93 unassigned -->
......@@ -2055,17 +2055,7 @@
433 Redirect-Address-Type [RFC4006]
434 Redirect-Server [RFC4006]
435 Redirect-Server-Address [RFC4006]
-->
<avp name="Requested-Action" code="436" mandatory="must" may-encrypt="yes" vendor-bit="mustnot">
<type type-name="Enumerated"/>
<enum name="DIRECT_DEBITING" code="0"/>
<enum name="REFUND_ACCOUNT" code="1"/>
<enum name="CHECK_BALANCE" code="2"/>
<enum name="PRICE_ENQUIRY" code="3"/>
</avp>
<!--
436 Requested-Action [RFC4006]
437 Requested-Service-Unit [RFC4006]
438 Restriction-Filter-Rule [RFC4006]
439 Service-Identifier [RFC4006]
......@@ -2550,14 +2540,14 @@
<avp name="Event-Type" code="823" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="mustnot" vendor-id="TGPP">
<grouped>
<gavp name="SIP-Method"/>
<gavp name="3GPP-SIP-Method"/>
<gavp name="Event"/>
<gavp name="Content-Type"/>
<gavp name="Content-Length"/>
<gavp name="Content-Disposition"/>
</grouped>
</avp>
<avp name="SIP-Method" code="824" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="must" vendor-id="TGPP">
<avp name="3GPP-SIP-Method" code="824" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="must" vendor-id="TGPP">
<type type-name="UTF8String"/>
</avp>
<avp name="Event" code="825" mandatory="must" may-encrypt="no" protected="mustnot" vendor-bit="must" vendor-id="TGPP">
......@@ -2923,7 +2913,7 @@
<gavp name="3GPP-Charging-Id"/>
<gavp name="PDN-Connection-ID"/>
<gavp name="Node-Id"/>
<gavp name="3GPP-PDP Type"/>
<gavp name="3GPP-PDP-Type"/>
<gavp name="PDP-Address"/>
<gavp name="Dynamic-Address-Flag"/>
<gavp name="Dynamic-Address-Flag-Extension"/>
......@@ -3814,19 +3804,19 @@
</avp>
<avp name="Initial-Recipient-Address" code="1105" may-encrypt="no" protected="mustnot" vendor-bit="must" vendor-id="TGPP">
<grouped>
<gavp name="Sequence-Number"/>
<gavp name="MM10-Sequence-Number"/>
<gavp name="MM10-Recipient-Address"/>
</grouped>
</avp>
<avp name="Result-Recipient-Address" code="1106" may-encrypt="no" protected="mustnot" vendor-bit="must" vendor-id="TGPP">
<grouped>
<gavp name="Sequence-Number"/>
<gavp name="MM10-Sequence-Number"/>
<gavp name="MM10-Recipient-Address"/>
<gavp name="Routeing-Address"/>
<gavp name="Sender-Address"/>
</grouped>
</avp>
<avp name="Sequence-Number" code="1107" may-encrypt="no" protected="mustnot" vendor-bit="must" vendor-id="TGPP">
<avp name="MM10-Sequence-Number" code="1107" may-encrypt="no" protected="mustnot" vendor-bit="must" vendor-id="TGPP">
<type type-name="Unsigned32"/>
</avp>
<avp name="MM10-Recipient-Address" code="1108" may-encrypt="no" protected="mustnot" vendor-bit="must" vendor-id="TGPP">
......
......@@ -32,9 +32,6 @@
</avp>
<!-- 324 Unassigned -->
<avp name="Unassigned" code="324" mandatory="may">
<type type-name="OctetString"/>
</avp>
<avp name="MIP-MN-to-FA-MSA" code="325" mandatory="must" protected="may" vendor-bit="mustnot" may-encrypt="yes">
<grouped>
<gavp name="MIP-MN-AAA-SPI"/>
......@@ -51,9 +48,6 @@
</avp>
<!-- 327 Unassigned -->
<avp name="Unassigned" code="327" mandatory="may">
<type type-name="OctetString"/>
</avp>
<avp name="MIP-FA-to-HA-MSA" code="328" mandatory="must" protected="may" vendor-bit="mustnot" may-encrypt="yes">
<grouped>
<gavp name="MIP-FA-to-HA-SPI"/>
......@@ -70,9 +64,6 @@
</avp>
<!-- 330 Unassigned -->
<avp name="Unassigned" code="330" mandatory="may">
<type type-name="OctetString"/>
</avp>
<avp name="MIP-MN-to-HA-MSA" code="331" mandatory="must" protected="may" vendor-bit="mustnot" may-encrypt="yes">
<grouped>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment