mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-18 02:48:40 +00:00
![David Anderson](/assets/img/avatar_default.png)
The packet filter still rejects all IPv6, but decodes enough from v6 packets to do something smarter in a followup. name time/op Decode/tcp4-8 28.8ns ± 2% Decode/tcp6-8 20.6ns ± 1% Decode/udp4-8 28.2ns ± 1% Decode/udp6-8 20.0ns ± 6% Decode/icmp4-8 21.7ns ± 2% Decode/icmp6-8 14.1ns ± 2% Decode/unknown-8 9.43ns ± 2% Signed-off-by: David Anderson <danderson@tailscale.com>
38 lines
715 B
Go
38 lines
715 B
Go
// Copyright (c) 2020 Tailscale Inc & AUTHORS All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package packet
|
|
|
|
type ICMP6Type uint8
|
|
|
|
const (
|
|
ICMP6Unreachable ICMP6Type = 1
|
|
ICMP6TimeExceeded ICMP6Type = 3
|
|
ICMP6EchoRequest ICMP6Type = 128
|
|
ICMP6EchoReply ICMP6Type = 129
|
|
)
|
|
|
|
func (t ICMP6Type) String() string {
|
|
switch t {
|
|
case ICMP6Unreachable:
|
|
return "Unreachable"
|
|
case ICMP6TimeExceeded:
|
|
return "TimeExceeded"
|
|
case ICMP6EchoRequest:
|
|
return "EchoRequest"
|
|
case ICMP6EchoReply:
|
|
return "EchoReply"
|
|
default:
|
|
return "Unknown"
|
|
}
|
|
}
|
|
|
|
type ICMP6Code uint8
|
|
|
|
const (
|
|
ICMP6NoCode ICMP6Code = 0
|
|
)
|
|
|
|
const icmp6HeaderLength = 4
|