mirror of https://github.com/golang/go.git
net: use EUI-48/EUI-64 reserved address blocks for documentation
Updates #15228. Change-Id: I1b73defccb4c933d71c408aa31d32af9d1bc4ab8 Reviewed-on: https://go-review.googlesource.com/c/163357 Reviewed-by: Matt Layher <mdlayher@gmail.com>
This commit is contained in:
parent
9426d8c633
commit
b9d19eff77
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -15,10 +15,57 @@ 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}, ""},
|
||||
// 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.
|
||||
{
|
||||
"00:00:00:00:fe:80:00:00:00:00:00:00:02:00:5e:10:00:00:00:01",
|
||||
HardwareAddr{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x5e, 0x10, 0x00, 0x00, 0x00, 0x01,
|
||||
},
|
||||
"",
|
||||
},
|
||||
{
|
||||
"00-00-00-00-fe-80-00-00-00-00-00-00-02-00-5e-10-00-00-00-01",
|
||||
HardwareAddr{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x5e, 0x10, 0x00, 0x00, 0x00, 0x01,
|
||||
},
|
||||
"",
|
||||
},
|
||||
{
|
||||
"0000.0000.fe80.0000.0000.0000.0200.5e10.0000.0001",
|
||||
HardwareAddr{
|
||||
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"},
|
||||
|
|
@ -31,33 +78,6 @@ var parseMACTests = []struct {
|
|||
{"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}, ""},
|
||||
{
|
||||
"01:23:45:67:89:ab:cd:ef:00:00:01:23:45:67:89:ab:cd:ef:00:00",
|
||||
HardwareAddr{
|
||||
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
|
||||
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
|
||||
},
|
||||
"",
|
||||
},
|
||||
{
|
||||
"01-23-45-67-89-ab-cd-ef-00-00-01-23-45-67-89-ab-cd-ef-00-00",
|
||||
HardwareAddr{
|
||||
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
|
||||
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
|
||||
},
|
||||
"",
|
||||
},
|
||||
{
|
||||
"0123.4567.89ab.cdef.0000.0123.4567.89ab.cdef.0000",
|
||||
HardwareAddr{
|
||||
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
|
||||
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x00, 0x00,
|
||||
},
|
||||
"",
|
||||
},
|
||||
}
|
||||
|
||||
func TestParseMAC(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue