]> Cypherpunks repositories - gostls13.git/commitdiff
net: use EUI-48/EUI-64 reserved address blocks for documentation
authorMikio Hara <mikioh.public.networking@gmail.com>
Thu, 21 Feb 2019 20:41:20 +0000 (05:41 +0900)
committerMikio Hara <mikioh.public.networking@gmail.com>
Wed, 27 Feb 2019 02:36:14 +0000 (02:36 +0000)
Updates #15228.

Change-Id: I1b73defccb4c933d71c408aa31d32af9d1bc4ab8
Reviewed-on: https://go-review.googlesource.com/c/163357
Reviewed-by: Matt Layher <mdlayher@gmail.com>
src/net/mac.go
src/net/mac_test.go

index f3b1694735c2ed289d0e56e0c72934f048d27b2b..373ac3d7e2018e66abdad93e9ff08c0275ee63fe 100644 (file)
@@ -26,15 +26,15 @@ func (a HardwareAddr) String() string {
 
 // ParseMAC parses s as an IEEE 802 MAC-48, EUI-48, EUI-64, or a 20-octet
 // IP over InfiniBand link-layer address using one of the following formats:
-//   01:23:45:67:89:ab
-//   01:23:45:67:89:ab:cd:ef
-//   01:23:45:67:89:ab:cd:ef:00:00:01:23:45:67:89:ab:cd:ef:00:00
-//   01-23-45-67-89-ab
-//   01-23-45-67-89-ab-cd-ef
-//   01-23-45-67-89-ab-cd-ef-00-00-01-23-45-67-89-ab-cd-ef-00-00
-//   0123.4567.89ab
-//   0123.4567.89ab.cdef
-//   0123.4567.89ab.cdef.0000.0123.4567.89ab.cdef.0000
+//     00:00:5e:00:53:01
+//     02:00:5e:10:00:00:00:01
+//     00:00:00:00:fe:80:00:00:00:00:00:00:02:00:5e:10:00:00:00:01
+//     00-00-5e-00-53-01
+//     02-00-5e-10-00-00-00-01
+//     00-00-00-00-fe-80-00-00-00-00-00-00-02-00-5e-10-00-00-00-01
+//     0000.5e00.5301
+//     0200.5e10.0000.0001
+//     0000.0000.fe80.0000.0000.0000.0200.5e10.0000.0001
 func ParseMAC(s string) (hw HardwareAddr, err error) {
        if len(s) < 14 {
                goto error
index 2630d190479148969010bb204ba54e29e5f11964..cad884fcf5d42df96fefd720e63f4823ae86c388 100644 (file)
@@ -15,49 +15,69 @@ var parseMACTests = []struct {
        out HardwareAddr
        err string
 }{
-       {"01:23:45:67:89:AB", HardwareAddr{1, 0x23, 0x45, 0x67, 0x89, 0xab}, ""},
-       {"01-23-45-67-89-AB", HardwareAddr{1, 0x23, 0x45, 0x67, 0x89, 0xab}, ""},
-       {"0123.4567.89AB", HardwareAddr{1, 0x23, 0x45, 0x67, 0x89, 0xab}, ""},
-       {"ab:cd:ef:AB:CD:EF", HardwareAddr{0xab, 0xcd, 0xef, 0xab, 0xcd, 0xef}, ""},
-       {"01.02.03.04.05.06", nil, "invalid MAC address"},
-       {"01:02:03:04:05:06:", nil, "invalid MAC address"},
-       {"x1:02:03:04:05:06", nil, "invalid MAC address"},
-       {"01002:03:04:05:06", nil, "invalid MAC address"},
-       {"01:02003:04:05:06", nil, "invalid MAC address"},
-       {"01:02:03004:05:06", nil, "invalid MAC address"},
-       {"01:02:03:04005:06", nil, "invalid MAC address"},
-       {"01:02:03:04:05006", nil, "invalid MAC address"},
-       {"01-02:03:04:05:06", nil, "invalid MAC address"},
-       {"01:02-03-04-05-06", nil, "invalid MAC address"},
-       {"0123:4567:89AF", nil, "invalid MAC address"},
-       {"0123-4567-89AF", nil, "invalid MAC address"},
-       {"01:23:45:67:89:AB:CD:EF", HardwareAddr{1, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}, ""},
-       {"01-23-45-67-89-AB-CD-EF", HardwareAddr{1, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}, ""},
-       {"0123.4567.89AB.CDEF", HardwareAddr{1, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}, ""},
+       // See RFC 7042, Section 2.1.1.
+       {"00:00:5e:00:53:01", HardwareAddr{0x00, 0x00, 0x5e, 0x00, 0x53, 0x01}, ""},
+       {"00-00-5e-00-53-01", HardwareAddr{0x00, 0x00, 0x5e, 0x00, 0x53, 0x01}, ""},
+       {"0000.5e00.5301", HardwareAddr{0x00, 0x00, 0x5e, 0x00, 0x53, 0x01}, ""},
+
+       // See RFC 7042, Section 2.2.2.
+       {"02:00:5e:10:00:00:00:01", HardwareAddr{0x02, 0x00, 0x5e, 0x10, 0x00, 0x00, 0x00, 0x01}, ""},
+       {"02-00-5e-10-00-00-00-01", HardwareAddr{0x02, 0x00, 0x5e, 0x10, 0x00, 0x00, 0x00, 0x01}, ""},
+       {"0200.5e10.0000.0001", HardwareAddr{0x02, 0x00, 0x5e, 0x10, 0x00, 0x00, 0x00, 0x01}, ""},
+
+       // See RFC 4391, Section 9.1.1.
        {
-               "01:23:45:67:89:ab:cd:ef:00:00:01:23:45:67:89:ab:cd:ef:00:00",
+               "00:00:00:00:fe:80:00:00:00:00:00:00:02:00:5e:10:00:00:00:01",
                HardwareAddr{
-                       0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
-                       0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
+                       0x00, 0x00, 0x00, 0x00,
+                       0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                       0x02, 0x00, 0x5e, 0x10, 0x00, 0x00, 0x00, 0x01,
                },
                "",
        },
        {
-               "01-23-45-67-89-ab-cd-ef-00-00-01-23-45-67-89-ab-cd-ef-00-00",
+               "00-00-00-00-fe-80-00-00-00-00-00-00-02-00-5e-10-00-00-00-01",
                HardwareAddr{
-                       0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
-                       0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
+                       0x00, 0x00, 0x00, 0x00,
+                       0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                       0x02, 0x00, 0x5e, 0x10, 0x00, 0x00, 0x00, 0x01,
                },
                "",
        },
        {
-               "0123.4567.89ab.cdef.0000.0123.4567.89ab.cdef.0000",
+               "0000.0000.fe80.0000.0000.0000.0200.5e10.0000.0001",
                HardwareAddr{
-                       0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
-                       0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
+                       0x00, 0x00, 0x00, 0x00,
+                       0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+                       0x02, 0x00, 0x5e, 0x10, 0x00, 0x00, 0x00, 0x01,
                },
                "",
        },
+
+       {"ab:cd:ef:AB:CD:EF", HardwareAddr{0xab, 0xcd, 0xef, 0xab, 0xcd, 0xef}, ""},
+       {"ab:cd:ef:AB:CD:EF:ab:cd", HardwareAddr{0xab, 0xcd, 0xef, 0xab, 0xcd, 0xef, 0xab, 0xcd}, ""},
+       {
+               "ab:cd:ef:AB:CD:EF:ab:cd:ef:AB:CD:EF:ab:cd:ef:AB:CD:EF:ab:cd",
+               HardwareAddr{
+                       0xab, 0xcd, 0xef, 0xab,
+                       0xcd, 0xef, 0xab, 0xcd, 0xef, 0xab, 0xcd, 0xef,
+                       0xab, 0xcd, 0xef, 0xab, 0xcd, 0xef, 0xab, 0xcd,
+               },
+               "",
+       },
+
+       {"01.02.03.04.05.06", nil, "invalid MAC address"},
+       {"01:02:03:04:05:06:", nil, "invalid MAC address"},
+       {"x1:02:03:04:05:06", nil, "invalid MAC address"},
+       {"01002:03:04:05:06", nil, "invalid MAC address"},
+       {"01:02003:04:05:06", nil, "invalid MAC address"},
+       {"01:02:03004:05:06", nil, "invalid MAC address"},
+       {"01:02:03:04005:06", nil, "invalid MAC address"},
+       {"01:02:03:04:05006", nil, "invalid MAC address"},
+       {"01-02:03:04:05:06", nil, "invalid MAC address"},
+       {"01:02-03-04-05-06", nil, "invalid MAC address"},
+       {"0123:4567:89AF", nil, "invalid MAC address"},
+       {"0123-4567-89AF", nil, "invalid MAC address"},
 }
 
 func TestParseMAC(t *testing.T) {