attributes: add RFC 8489 constants

* Add constants
* Update String()
* Update IANA stun parameters csv
This commit is contained in:
Aleksandr Razumov
2020-11-01 19:40:45 +03:00
parent 951fb8794f
commit e7972d25bc
2 changed files with 65 additions and 34 deletions

View File

@@ -89,6 +89,15 @@ const (
AttrOrigin AttrType = 0x802F
)
// Attributes from RFC 8489 STUN.
const (
AttrMessageIntegritySHA256 AttrType = 0x001C // MESSAGE-INTEGRITY-SHA256
AttrPasswordAlgorithm AttrType = 0x001D // PASSWORD-ALGORITHM
AttrUserhash AttrType = 0x001E // USERHASH
AttrPasswordAlgorithms AttrType = 0x8002 // PASSWORD-ALGORITHMS
AttrAlternateDomain AttrType = 0x8003 // ALTERNATE-DOMAIN
)
// Value returns uint16 representation of attribute type.
func (t AttrType) Value() uint16 {
return uint16(t)
@@ -121,7 +130,11 @@ var attrNames = map[AttrType]string{
AttrReservationToken: "RESERVATION-TOKEN",
AttrConnectionID: "CONNECTION-ID",
AttrRequestedAddressFamily: "REQUESTED-ADDRESS-FAMILY",
AttrOrigin: "ORIGIN",
AttrMessageIntegritySHA256: "MESSAGE-INTEGRITY-SHA256",
AttrPasswordAlgorithm: "PASSWORD-ALGORITHM",
AttrUserhash: "USERHASH",
AttrPasswordAlgorithms: "PASSWORD-ALGORITHMS",
AttrAlternateDomain: "ALTERNATE-DOMAIN",
}
func (t AttrType) String() string {

View File

@@ -1,35 +1,38 @@
Value,Name,Reference
0x0000,Reserved,[RFC5389]
0x0001,MAPPED-ADDRESS,[RFC5389]
0x0002,Reserved; was RESPONSE-ADDRESS,[RFC5389]
0x0003,CHANGE-REQUEST,[RFC5780]
0x0004,Reserved; was SOURCE-ADDRESS,[RFC5389]
0x0005,Reserved; was CHANGED-ADDRESS,[RFC5389]
0x0006,USERNAME,[RFC5389]
0x0007,Reserved; was PASSWORD,[RFC5389]
0x0008,MESSAGE-INTEGRITY,[RFC5389]
0x0009,ERROR-CODE,[RFC5389]
0x000A,UNKNOWN-ATTRIBUTES,[RFC5389]
0x000B,Reserved; was REFLECTED-FROM,[RFC5389]
0x000C,CHANNEL-NUMBER,[RFC5766]
0x000D,LIFETIME,[RFC5766]
0x0000,Reserved,[RFC8489]
0x0001,MAPPED-ADDRESS,[RFC8489]
0x0002,Reserved; was RESPONSE-ADDRESS prior to [RFC5389],[RFC8489]
0x0003,Reserved; was CHANGE-REQUEST prior to [RFC5389],[RFC5780][RFC Errata 4233]
0x0004,Reserved; was SOURCE-ADDRESS prior to [RFC5389],[RFC8489]
0x0005,Reserved; was CHANGED-ADDRESS prior to [RFC5389],[RFC8489]
0x0006,USERNAME,[RFC8489]
0x0007,Reserved; was PASSWORD prior to [RFC5389],[RFC8489]
0x0008,MESSAGE-INTEGRITY,[RFC8489]
0x0009,ERROR-CODE,[RFC8489]
0x000A,UNKNOWN-ATTRIBUTES,[RFC8489]
0x000B,Reserved; was REFLECTED-FROM prior to [RFC5389],[RFC8489]
0x000C,CHANNEL-NUMBER,[RFC8656]
0x000D,LIFETIME,[RFC8656]
0x000E-0x000F,Reserved,
0x0010,Reserved (was BANDWIDTH),[RFC5766]
0x0010,Reserved (was BANDWIDTH),[RFC8656]
0x0011,Reserved,
0x0012,XOR-PEER-ADDRESS,[RFC5766]
0x0013,DATA,[RFC5766]
0x0014,REALM,[RFC5389]
0x0015,NONCE,[RFC5389]
0x0016,XOR-RELAYED-ADDRESS,[RFC5766]
0x0017,REQUESTED-ADDRESS-FAMILY,[RFC6156]
0x0018,EVEN-PORT,[RFC5766]
0x0019,REQUESTED-TRANSPORT,[RFC5766]
0x001A,DONT-FRAGMENT,[RFC5766]
0x0012,XOR-PEER-ADDRESS,[RFC8656]
0x0013,DATA,[RFC8656]
0x0014,REALM,[RFC8489]
0x0015,NONCE,[RFC8489]
0x0016,XOR-RELAYED-ADDRESS,[RFC8656]
0x0017,REQUESTED-ADDRESS-FAMILY,[RFC8656]
0x0018,EVEN-PORT,[RFC8656]
0x0019,REQUESTED-TRANSPORT,[RFC8656]
0x001A,DONT-FRAGMENT,[RFC8656]
0x001B,ACCESS-TOKEN,[RFC7635]
0x001C-0x001F,Unassigned,
0x0020,XOR-MAPPED-ADDRESS,[RFC5389]
0x0021,Reserved (was TIMER-VAL),[RFC5766]
0x0022,RESERVATION-TOKEN,[RFC5766]
0x001C,MESSAGE-INTEGRITY-SHA256,[RFC8489]
0x001D,PASSWORD-ALGORITHM,[RFC8489]
0x001E,USERHASH,[RFC8489]
0x001F-0x001F,Unassigned,
0x0020,XOR-MAPPED-ADDRESS,[RFC8489]
0x0021,Reserved (was TIMER-VAL),[RFC8656]
0x0022,RESERVATION-TOKEN,[RFC8656]
0x0023,Reserved,
0x0024,PRIORITY,[RFC8445]
0x0025,USE-CANDIDATE,[RFC8445]
@@ -40,14 +43,19 @@ Value,Name,Reference
0x002B-0x002F,Unassigned,
0x0030,Reserved,
0x0031-0x7FFF,Unassigned,
0x8000-0x8021,Unassigned,
0x8022,SOFTWARE,[RFC5389]
0x8023,ALTERNATE-SERVER,[RFC5389]
0x8000,ADDITIONAL-ADDRESS-FAMILY,[RFC8656]
0x8001,ADDRESS-ERROR-CODE,[RFC8656]
0x8002,PASSWORD-ALGORITHMS,[RFC8489]
0x8003,ALTERNATE-DOMAIN,[RFC8489]
0x8004,ICMP,[RFC8656]
0x8005-0x8021,Unassigned,
0x8022,SOFTWARE,[RFC8489]
0x8023,ALTERNATE-SERVER,[RFC8489]
0x8024,Reserved,
0x8025,TRANSACTION_TRANSMIT_COUNTER,[RFC7982]
0x8026,Reserved,
0x8027,CACHE-TIMEOUT,[RFC5780]
0x8028,FINGERPRINT,[RFC5389]
0x8028,FINGERPRINT,[RFC8489]
0x8029,ICE-CONTROLLED,[RFC8445]
0x802A,ICE-CONTROLLING,[RFC8445]
0x802B,RESPONSE-ORIGIN,[RFC5780]
@@ -60,4 +68,14 @@ Value,Name,Reference
0xC000,CISCO-STUN-FLOWDATA,[Dan_Wing]
0xC001,ENF-FLOW-DESCRIPTION,[Pål_Erik_Martinsen]
0xC002,ENF-NETWORK-STATUS,[Pål_Erik_Martinsen]
0xC003-0xFFFF,Unassigned,
0xC003-0xC056,Unassigned,
0xC057,GOOG-NETWORK-INFO,[Jonas_Oreland]
0xC058,GOOG-LAST-ICE-CHECK-RECEIVED,[Jonas_Oreland]
0xC059,GOOG-MISC-INFO,[Jonas_Oreland]
0xC05A,GOOG-OBSOLETE-1,[Jonas_Oreland]
0xC05B,GOOG-CONNECTION-ID,[Jonas_Oreland]
0xC05C,GOOG-DELTA,[Jonas_Oreland]
0xC05D,GOOG-DELTA-ACK,[Jonas_Oreland]
0xC05E-0xC05F,Unassigned,
0xC060,GOOG-MESSAGE-INTEGRITY-32,[Jonas_Oreland]
0xC061-0xFFFF,Unassigned,
1 Value Name Reference
2 0x0000 Reserved [RFC5389] [RFC8489]
3 0x0001 MAPPED-ADDRESS [RFC5389] [RFC8489]
4 0x0002 Reserved; was RESPONSE-ADDRESS Reserved; was RESPONSE-ADDRESS prior to [RFC5389] [RFC5389] [RFC8489]
5 0x0003 CHANGE-REQUEST Reserved; was CHANGE-REQUEST prior to [RFC5389] [RFC5780] [RFC5780][RFC Errata 4233]
6 0x0004 Reserved; was SOURCE-ADDRESS Reserved; was SOURCE-ADDRESS prior to [RFC5389] [RFC5389] [RFC8489]
7 0x0005 Reserved; was CHANGED-ADDRESS Reserved; was CHANGED-ADDRESS prior to [RFC5389] [RFC5389] [RFC8489]
8 0x0006 USERNAME [RFC5389] [RFC8489]
9 0x0007 Reserved; was PASSWORD Reserved; was PASSWORD prior to [RFC5389] [RFC5389] [RFC8489]
10 0x0008 MESSAGE-INTEGRITY [RFC5389] [RFC8489]
11 0x0009 ERROR-CODE [RFC5389] [RFC8489]
12 0x000A UNKNOWN-ATTRIBUTES [RFC5389] [RFC8489]
13 0x000B Reserved; was REFLECTED-FROM Reserved; was REFLECTED-FROM prior to [RFC5389] [RFC5389] [RFC8489]
14 0x000C CHANNEL-NUMBER [RFC5766] [RFC8656]
15 0x000D LIFETIME [RFC5766] [RFC8656]
16 0x000E-0x000F Reserved
17 0x0010 Reserved (was BANDWIDTH) [RFC5766] [RFC8656]
18 0x0011 Reserved
19 0x0012 XOR-PEER-ADDRESS [RFC5766] [RFC8656]
20 0x0013 DATA [RFC5766] [RFC8656]
21 0x0014 REALM [RFC5389] [RFC8489]
22 0x0015 NONCE [RFC5389] [RFC8489]
23 0x0016 XOR-RELAYED-ADDRESS [RFC5766] [RFC8656]
24 0x0017 REQUESTED-ADDRESS-FAMILY [RFC6156] [RFC8656]
25 0x0018 EVEN-PORT [RFC5766] [RFC8656]
26 0x0019 REQUESTED-TRANSPORT [RFC5766] [RFC8656]
27 0x001A DONT-FRAGMENT [RFC5766] [RFC8656]
28 0x001B ACCESS-TOKEN [RFC7635]
29 0x001C-0x001F 0x001C Unassigned MESSAGE-INTEGRITY-SHA256 [RFC8489]
30 0x0020 0x001D XOR-MAPPED-ADDRESS PASSWORD-ALGORITHM [RFC5389] [RFC8489]
31 0x0021 0x001E Reserved (was TIMER-VAL) USERHASH [RFC5766] [RFC8489]
32 0x0022 0x001F-0x001F RESERVATION-TOKEN Unassigned [RFC5766]
33 0x0020 XOR-MAPPED-ADDRESS [RFC8489]
34 0x0021 Reserved (was TIMER-VAL) [RFC8656]
35 0x0022 RESERVATION-TOKEN [RFC8656]
36 0x0023 Reserved
37 0x0024 PRIORITY [RFC8445]
38 0x0025 USE-CANDIDATE [RFC8445]
43 0x002B-0x002F Unassigned
44 0x0030 Reserved
45 0x0031-0x7FFF Unassigned
46 0x8000-0x8021 0x8000 Unassigned ADDITIONAL-ADDRESS-FAMILY [RFC8656]
47 0x8022 0x8001 SOFTWARE ADDRESS-ERROR-CODE [RFC5389] [RFC8656]
48 0x8023 0x8002 ALTERNATE-SERVER PASSWORD-ALGORITHMS [RFC5389] [RFC8489]
49 0x8003 ALTERNATE-DOMAIN [RFC8489]
50 0x8004 ICMP [RFC8656]
51 0x8005-0x8021 Unassigned
52 0x8022 SOFTWARE [RFC8489]
53 0x8023 ALTERNATE-SERVER [RFC8489]
54 0x8024 Reserved
55 0x8025 TRANSACTION_TRANSMIT_COUNTER [RFC7982]
56 0x8026 Reserved
57 0x8027 CACHE-TIMEOUT [RFC5780]
58 0x8028 FINGERPRINT [RFC5389] [RFC8489]
59 0x8029 ICE-CONTROLLED [RFC8445]
60 0x802A ICE-CONTROLLING [RFC8445]
61 0x802B RESPONSE-ORIGIN [RFC5780]
68 0xC000 CISCO-STUN-FLOWDATA [Dan_Wing]
69 0xC001 ENF-FLOW-DESCRIPTION [Pål_Erik_Martinsen]
70 0xC002 ENF-NETWORK-STATUS [Pål_Erik_Martinsen]
71 0xC003-0xFFFF 0xC003-0xC056 Unassigned
72 0xC057 GOOG-NETWORK-INFO [Jonas_Oreland]
73 0xC058 GOOG-LAST-ICE-CHECK-RECEIVED [Jonas_Oreland]
74 0xC059 GOOG-MISC-INFO [Jonas_Oreland]
75 0xC05A GOOG-OBSOLETE-1 [Jonas_Oreland]
76 0xC05B GOOG-CONNECTION-ID [Jonas_Oreland]
77 0xC05C GOOG-DELTA [Jonas_Oreland]
78 0xC05D GOOG-DELTA-ACK [Jonas_Oreland]
79 0xC05E-0xC05F Unassigned
80 0xC060 GOOG-MESSAGE-INTEGRITY-32 [Jonas_Oreland]
81 0xC061-0xFFFF Unassigned