misc: updated dependencies

This commit is contained in:
evilsocket 2019-04-21 13:47:08 +02:00
commit 0eb34e61fe
No known key found for this signature in database
GPG key ID: 1564D7F30393A456
39 changed files with 2692 additions and 1786 deletions

18
Gopkg.lock generated
View file

@ -84,11 +84,11 @@
[[projects]] [[projects]]
branch = "master" branch = "master"
digest = "1:f77360df85b686035d0bff3b3988b29eb7ce415328e37e82cc5ec8439822911c" digest = "1:d754d24358cf013301a804cdab95cbcbe0da83902dc24ee20e98a899c4dd48e0"
name = "github.com/elazarl/goproxy" name = "github.com/elazarl/goproxy"
packages = ["."] packages = ["."]
pruneopts = "UT" pruneopts = "UT"
revision = "2ce16c963a8ac5bd6af851d4877e38701346983f" revision = "9d40249d3c2f14d1a9d75e070a738362adeb5a83"
[[projects]] [[projects]]
digest = "1:5247f5757ba31623c464db149dc272a37604516d8fbae1561b36e0d7cee070a5" digest = "1:5247f5757ba31623c464db149dc272a37604516d8fbae1561b36e0d7cee070a5"
@ -158,15 +158,15 @@
name = "github.com/google/gousb" name = "github.com/google/gousb"
packages = ["."] packages = ["."]
pruneopts = "UT" pruneopts = "UT"
revision = "d0c05ab7f70d6f6dc60ecd184517cb5e25860657" revision = "64d82086770b8b671e1e7f162372dd37f1f5efba"
[[projects]] [[projects]]
digest = "1:ca59b1175189b3f0e9f1793d2c350114be36eaabbe5b9f554b35edee1de50aea" digest = "1:d5f97fc268267ec1b61c3453058c738246fc3e746f14b1ae25161513b7367b0c"
name = "github.com/gorilla/mux" name = "github.com/gorilla/mux"
packages = ["."] packages = ["."]
pruneopts = "UT" pruneopts = "UT"
revision = "a7962380ca08b5a188038c69871b8d3fbdf31e89" revision = "c5c6c98bc25355028a63748a498942a6398ccd22"
version = "v1.7.0" version = "v1.7.1"
[[projects]] [[projects]]
digest = "1:7b5c6e2eeaa9ae5907c391a91c132abfd5c9e8a784a341b5625e750c67e6825d" digest = "1:7b5c6e2eeaa9ae5907c391a91c132abfd5c9e8a784a341b5625e750c67e6825d"
@ -297,15 +297,15 @@
name = "golang.org/x/net" name = "golang.org/x/net"
packages = ["bpf"] packages = ["bpf"]
pruneopts = "UT" pruneopts = "UT"
revision = "74de082e2cca95839e88aa0aeee5aadf6ce7710f" revision = "afa5a82059c6356159f699d81beff22a81842231"
[[projects]] [[projects]]
branch = "master" branch = "master"
digest = "1:cd9a35e005d99871df9dc2354bc9dd8f09d186e2efa6affae6593f5ef93876b0" digest = "1:dbe12489f5cb00d492e275a29528c9e336dbe5af75ce366f81c1911faf10733e"
name = "golang.org/x/sys" name = "golang.org/x/sys"
packages = ["unix"] packages = ["unix"]
pruneopts = "UT" pruneopts = "UT"
revision = "baf5eb976a8cd65845293cd814ea151018552292" revision = "e8e3143a4f4a00f1fafef0dd82ba78223281b01b"
[[projects]] [[projects]]
digest = "1:9935525a8c49b8434a0b0a54e1980e94a6fae73aaff45c5d33ba8dff69de123e" digest = "1:9935525a8c49b8434a0b0a54e1980e94a6fae73aaff45c5d33ba8dff69de123e"

View file

@ -25,6 +25,7 @@ import (
"github.com/evilsocket/islazy/fs" "github.com/evilsocket/islazy/fs"
"github.com/evilsocket/islazy/log" "github.com/evilsocket/islazy/log"
"github.com/evilsocket/islazy/str"
"github.com/evilsocket/islazy/tui" "github.com/evilsocket/islazy/tui"
) )
@ -62,6 +63,14 @@ func stripPort(s string) string {
return s[:ix] return s[:ix]
} }
type dummyLogger struct {
p *HTTPProxy
}
func (l dummyLogger) Printf(format string, v ...interface{}) {
l.p.Info("[goproxy.log] %s", str.Trim(fmt.Sprintf(format, v...)))
}
func NewHTTPProxy(s *session.Session) *HTTPProxy { func NewHTTPProxy(s *session.Session) *HTTPProxy {
p := &HTTPProxy{ p := &HTTPProxy{
Name: "http.proxy", Name: "http.proxy",
@ -76,7 +85,7 @@ func NewHTTPProxy(s *session.Session) *HTTPProxy {
} }
p.Proxy.Verbose = false p.Proxy.Verbose = false
p.Proxy.Logger.SetOutput(ioutil.Discard) p.Proxy.Logger = dummyLogger{p}
p.Proxy.NonproxyHandler = http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { p.Proxy.NonproxyHandler = http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
if p.doProxy(req) { if p.doProxy(req) {

View file

@ -100,6 +100,52 @@ return a precanned text response saying "do not waste your time".
See additional examples in the examples directory. See additional examples in the examples directory.
# Type of handlers for manipulating connect/req/resp behavior
There are 3 kinds of useful handlers to manipulate the behavior, as follows:
```go
// handler called after receiving HTTP CONNECT from the client, and before proxy establish connection
// with destination host
httpsHandlers []HttpsHandler
// handler called before proxy send HTTP request to destination host
reqHandlers []ReqHandler
// handler called after proxy receives HTTP Response from destination host, and before proxy forward
// the Response to the client.
respHandlers []RespHandler
```
Depending on what you want to manipulate, the ways to add handlers to each handler list are:
```go
// Add handlers to httpsHandlers
proxy.OnRequest(Some ReqConditions).HandleConnect(YourHandlerFunc())
// Add handlers to reqHandlers
proxy.OnRequest(Some ReqConditions).Do(YourReqHandlerFunc())
// Add handlers to respHandlers
proxy.OnResponse(Some RespConditions).Do(YourRespHandlerFunc())
```
For example:
```go
// This rejects the HTTPS request to *.reddit.com during HTTP CONNECT phase
proxy.OnRequest(goproxy.ReqHostMatches(regexp.MustCompile("reddit.*:443$"))).HandleConnect(goproxy.RejectConnect)
// This will NOT reject the HTTPS request with URL ending with gif, due to the fact that proxy
// only got the URL.Hostname and URL.Port during the HTTP CONNECT phase if the scheme is HTTPS, which is
// quiet common these days.
proxy.OnRequest(goproxy.UrlMatches(regexp.MustCompile(`.*gif$`))).HandleConnect(goproxy.RejectConnect)
// The correct way to manipulate the HTTP request using URL.Path as condition is:
proxy.OnRequest(goproxy.UrlMatches(regexp.MustCompile(`.*gif$`))).Do(YourReqHandlerFunc())
```
# What's New # What's New
1. Ability to `Hijack` CONNECT requests. See 1. Ability to `Hijack` CONNECT requests. See

View file

@ -1,6 +1,7 @@
package goproxy package goproxy
import ( import (
"crypto/tls"
"net/http" "net/http"
"regexp" "regexp"
) )
@ -19,14 +20,19 @@ type ProxyCtx struct {
// call of RespHandler // call of RespHandler
UserData interface{} UserData interface{}
// Will connect a request to a response // Will connect a request to a response
Session int64 Session int64
proxy *ProxyHttpServer certStore CertStorage
proxy *ProxyHttpServer
} }
type RoundTripper interface { type RoundTripper interface {
RoundTrip(req *http.Request, ctx *ProxyCtx) (*http.Response, error) RoundTrip(req *http.Request, ctx *ProxyCtx) (*http.Response, error)
} }
type CertStorage interface {
Fetch(hostname string, gen func() (*tls.Certificate, error)) (*tls.Certificate, error)
}
type RoundTripperFunc func(req *http.Request, ctx *ProxyCtx) (*http.Response, error) type RoundTripperFunc func(req *http.Request, ctx *ProxyCtx) (*http.Response, error)
func (f RoundTripperFunc) RoundTrip(req *http.Request, ctx *ProxyCtx) (*http.Response, error) { func (f RoundTripperFunc) RoundTrip(req *http.Request, ctx *ProxyCtx) (*http.Response, error) {

1
vendor/github.com/elazarl/goproxy/go.mod generated vendored Normal file
View file

@ -0,0 +1 @@
module github.com/elazarl/goproxy

0
vendor/github.com/elazarl/goproxy/go.sum generated vendored Normal file
View file

View file

@ -65,7 +65,7 @@ func (proxy *ProxyHttpServer) connectDial(network, addr string) (c net.Conn, err
} }
func (proxy *ProxyHttpServer) handleHttps(w http.ResponseWriter, r *http.Request) { func (proxy *ProxyHttpServer) handleHttps(w http.ResponseWriter, r *http.Request) {
ctx := &ProxyCtx{Req: r, Session: atomic.AddInt64(&proxy.sess, 1), proxy: proxy} ctx := &ProxyCtx{Req: r, Session: atomic.AddInt64(&proxy.sess, 1), proxy: proxy, certStore: proxy.CertStore}
hij, ok := w.(http.Hijacker) hij, ok := w.(http.Hijacker)
if !ok { if !ok {
@ -408,14 +408,28 @@ func (proxy *ProxyHttpServer) NewConnectDialToProxyWithHandler(https_proxy strin
func TLSConfigFromCA(ca *tls.Certificate) func(host string, ctx *ProxyCtx) (*tls.Config, error) { func TLSConfigFromCA(ca *tls.Certificate) func(host string, ctx *ProxyCtx) (*tls.Config, error) {
return func(host string, ctx *ProxyCtx) (*tls.Config, error) { return func(host string, ctx *ProxyCtx) (*tls.Config, error) {
var err error
var cert *tls.Certificate
hostname := stripPort(host)
config := *defaultTLSConfig config := *defaultTLSConfig
ctx.Logf("signing for %s", stripPort(host)) ctx.Logf("signing for %s", stripPort(host))
cert, err := signHost(*ca, []string{stripPort(host)})
genCert := func() (*tls.Certificate, error) {
return signHost(*ca, []string{hostname})
}
if ctx.certStore != nil {
cert, err = ctx.certStore.Fetch(hostname, genCert)
} else {
cert, err = genCert()
}
if err != nil { if err != nil {
ctx.Warnf("Cannot sign host certificate with provided CA: %s", err) ctx.Warnf("Cannot sign host certificate with provided CA: %s", err)
return nil, err return nil, err
} }
config.Certificates = append(config.Certificates, cert)
config.Certificates = append(config.Certificates, *cert)
return &config, nil return &config, nil
} }
} }

5
vendor/github.com/elazarl/goproxy/logger.go generated vendored Normal file
View file

@ -0,0 +1,5 @@
package goproxy
type Logger interface {
Printf(format string, v ...interface{})
}

View file

@ -20,7 +20,7 @@ type ProxyHttpServer struct {
KeepDestinationHeaders bool KeepDestinationHeaders bool
// setting Verbose to true will log information on each request sent to the proxy // setting Verbose to true will log information on each request sent to the proxy
Verbose bool Verbose bool
Logger *log.Logger Logger Logger
NonproxyHandler http.Handler NonproxyHandler http.Handler
reqHandlers []ReqHandler reqHandlers []ReqHandler
respHandlers []RespHandler respHandlers []RespHandler
@ -29,6 +29,7 @@ type ProxyHttpServer struct {
// ConnectDial will be used to create TCP connections for CONNECT requests // ConnectDial will be used to create TCP connections for CONNECT requests
// if nil Tr.Dial will be used // if nil Tr.Dial will be used
ConnectDial func(network string, addr string) (net.Conn, error) ConnectDial func(network string, addr string) (net.Conn, error)
CertStore CertStorage
} }
var hasPort = regexp.MustCompile(`:\d+$`) var hasPort = regexp.MustCompile(`:\d+$`)

View file

@ -32,7 +32,7 @@ func hashSortedBigInt(lst []string) *big.Int {
var goproxySignerVersion = ":goroxy1" var goproxySignerVersion = ":goroxy1"
func signHost(ca tls.Certificate, hosts []string) (cert tls.Certificate, err error) { func signHost(ca tls.Certificate, hosts []string) (cert *tls.Certificate, err error) {
var x509ca *x509.Certificate var x509ca *x509.Certificate
// Use the provided ca and not the global GoproxyCa for certificate generation. // Use the provided ca and not the global GoproxyCa for certificate generation.
@ -81,7 +81,7 @@ func signHost(ca tls.Certificate, hosts []string) (cert tls.Certificate, err err
if derBytes, err = x509.CreateCertificate(&csprng, &template, x509ca, &certpriv.PublicKey, ca.PrivateKey); err != nil { if derBytes, err = x509.CreateCertificate(&csprng, &template, x509ca, &certpriv.PublicKey, ca.PrivateKey); err != nil {
return return
} }
return tls.Certificate{ return &tls.Certificate{
Certificate: [][]byte{derBytes, ca.Certificate[0]}, Certificate: [][]byte{derBytes, ca.Certificate[0]},
PrivateKey: certpriv, PrivateKey: certpriv,
}, nil }, nil

View file

@ -1,5 +1,5 @@
language: go language: go
sudo: false
matrix: matrix:
include: include:
@ -20,5 +20,5 @@ install:
script: script:
- go get -t -v ./... - go get -t -v ./...
- diff -u <(echo -n) <(gofmt -d .) - diff -u <(echo -n) <(gofmt -d .)
- if [[ "$LATEST" = true ]]; then go tool vet .; fi - if [[ "$LATEST" = true ]]; then go vet .; fi
- go test -v -race ./... - go test -v -race ./...

View file

@ -283,6 +283,12 @@ func (r *Router) NewRoute() *Route {
return route return route
} }
// Name registers a new route with a name.
// See Route.Name().
func (r *Router) Name(name string) *Route {
return r.NewRoute().Name(name)
}
// Handle registers a new route with a matcher for the URL path. // Handle registers a new route with a matcher for the URL path.
// See Route.Path() and Route.Handler(). // See Route.Path() and Route.Handler().
func (r *Router) Handle(path string, handler http.Handler) *Route { func (r *Router) Handle(path string, handler http.Handler) *Route {

View file

@ -383,7 +383,7 @@ func (r *Route) PathPrefix(tpl string) *Route {
// The above route will only match if the URL contains the defined queries // The above route will only match if the URL contains the defined queries
// values, e.g.: ?foo=bar&id=42. // values, e.g.: ?foo=bar&id=42.
// //
// It the value is an empty string, it will match any value if the key is set. // If the value is an empty string, it will match any value if the key is set.
// //
// Variables can define an optional regexp pattern to be matched: // Variables can define an optional regexp pattern to be matched:
// //

View file

@ -153,6 +153,11 @@ func main() {
} }
funct, inps, outps, sysname := f[2], f[3], f[4], f[5] funct, inps, outps, sysname := f[2], f[3], f[4], f[5]
// ClockGettime doesn't have a syscall number on Darwin, only generate libc wrappers.
if goos == "darwin" && !libc && funct == "ClockGettime" {
continue
}
// Split argument lists on comma. // Split argument lists on comma.
in := parseParamList(inps) in := parseParamList(inps)
out := parseParamList(outps) out := parseParamList(outps)

View file

@ -214,6 +214,11 @@ func main() {
} }
if funct != "fcntl" && funct != "FcntlInt" && funct != "readlen" && funct != "writelen" { if funct != "fcntl" && funct != "FcntlInt" && funct != "readlen" && funct != "writelen" {
if sysname == "select" {
// select is a keyword of Go. Its name is
// changed to c_select.
cExtern += "#define c_select select\n"
}
// Imports of system calls from libc // Imports of system calls from libc
cExtern += fmt.Sprintf("%s %s", cRettype, sysname) cExtern += fmt.Sprintf("%s %s", cRettype, sysname)
cIn := strings.Join(cIn, ", ") cIn := strings.Join(cIn, ", ")
@ -328,7 +333,13 @@ func main() {
} else { } else {
call += "" call += ""
} }
call += fmt.Sprintf("C.%s(%s)", sysname, arglist) if sysname == "select" {
// select is a keyword of Go. Its name is
// changed to c_select.
call += fmt.Sprintf("C.c_%s(%s)", sysname, arglist)
} else {
call += fmt.Sprintf("C.%s(%s)", sysname, arglist)
}
// Assign return values. // Assign return values.
body := "" body := ""

View file

@ -282,6 +282,11 @@ func main() {
if !onlyCommon { if !onlyCommon {
// GCCGO Prototype Generation // GCCGO Prototype Generation
// Imports of system calls from libc // Imports of system calls from libc
if sysname == "select" {
// select is a keyword of Go. Its name is
// changed to c_select.
cExtern += "#define c_select select\n"
}
cExtern += fmt.Sprintf("%s %s", cRettype, sysname) cExtern += fmt.Sprintf("%s %s", cRettype, sysname)
cIn := strings.Join(cIn, ", ") cIn := strings.Join(cIn, ", ")
cExtern += fmt.Sprintf("(%s);\n", cIn) cExtern += fmt.Sprintf("(%s);\n", cIn)
@ -490,7 +495,14 @@ func main() {
// GCCGO function generation // GCCGO function generation
argsgccgolist := strings.Join(argsgccgo, ", ") argsgccgolist := strings.Join(argsgccgo, ", ")
callgccgo := fmt.Sprintf("C.%s(%s)", sysname, argsgccgolist) var callgccgo string
if sysname == "select" {
// select is a keyword of Go. Its name is
// changed to c_select.
callgccgo = fmt.Sprintf("C.c_%s(%s)", sysname, argsgccgolist)
} else {
callgccgo = fmt.Sprintf("C.%s(%s)", sysname, argsgccgolist)
}
textgccgo += callProto textgccgo += callProto
textgccgo += fmt.Sprintf("\tr1 = uintptr(%s)\n", callgccgo) textgccgo += fmt.Sprintf("\tr1 = uintptr(%s)\n", callgccgo)
textgccgo += "\te1 = syscall.GetErrno()\n" textgccgo += "\te1 = syscall.GetErrno()\n"

View file

@ -18,6 +18,9 @@ func cmsgAlignOf(salen int) int {
salign := SizeofPtr salign := SizeofPtr
switch runtime.GOOS { switch runtime.GOOS {
case "aix":
// There is no alignment on AIX.
salign = 1
case "darwin", "dragonfly", "solaris": case "darwin", "dragonfly", "solaris":
// NOTE: It seems like 64-bit Darwin, DragonFly BSD and // NOTE: It seems like 64-bit Darwin, DragonFly BSD and
// Solaris kernels still require 32-bit aligned access to // Solaris kernels still require 32-bit aligned access to

View file

@ -444,8 +444,6 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
//sysnb Times(tms *Tms) (ticks uintptr, err error) //sysnb Times(tms *Tms) (ticks uintptr, err error)
//sysnb Umask(mask int) (oldmask int) //sysnb Umask(mask int) (oldmask int)
//sysnb Uname(buf *Utsname) (err error) //sysnb Uname(buf *Utsname) (err error)
//TODO umount
// //sys Unmount(target string, flags int) (err error) = umount
//sys Unlink(path string) (err error) //sys Unlink(path string) (err error)
//sys Unlinkat(dirfd int, path string, flags int) (err error) //sys Unlinkat(dirfd int, path string, flags int) (err error)
//sys Ustat(dev int, ubuf *Ustat_t) (err error) //sys Ustat(dev int, ubuf *Ustat_t) (err error)
@ -470,8 +468,7 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
//sys Pause() (err error) //sys Pause() (err error)
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = pread64 //sys Pread(fd int, p []byte, offset int64) (n int, err error) = pread64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64 //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64
//TODO Select //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
// //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) //sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
//sysnb Setregid(rgid int, egid int) (err error) //sysnb Setregid(rgid int, egid int) (err error)
//sysnb Setreuid(ruid int, euid int) (err error) //sysnb Setreuid(ruid int, euid int) (err error)
@ -493,8 +490,10 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) //sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) //sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) //sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) // In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used.
//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg
//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg
//sys munmap(addr uintptr, length uintptr) (err error) //sys munmap(addr uintptr, length uintptr) (err error)
@ -547,3 +546,12 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
//sys Utime(path string, buf *Utimbuf) (err error) //sys Utime(path string, buf *Utimbuf) (err error)
//sys Getsystemcfg(label int) (n uint64) //sys Getsystemcfg(label int) (n uint64)
//sys umount(target string) (err error)
func Unmount(target string, flags int) (err error) {
if flags != 0 {
// AIX doesn't have any flags for umount.
return ENOSYS
}
return umount(target)
}

View file

@ -351,7 +351,11 @@ func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {
} }
func SetsockoptString(fd, level, opt int, s string) (err error) { func SetsockoptString(fd, level, opt int, s string) (err error) {
return setsockopt(fd, level, opt, unsafe.Pointer(&[]byte(s)[0]), uintptr(len(s))) var p unsafe.Pointer
if len(s) > 0 {
p = unsafe.Pointer(&[]byte(s)[0])
}
return setsockopt(fd, level, opt, p, uintptr(len(s)))
} }
func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {

View file

@ -926,6 +926,8 @@ const (
TCSETSF = 0x5404 TCSETSF = 0x5404
TCSETSW = 0x5403 TCSETSW = 0x5403
TCXONC = 0x540b TCXONC = 0x540b
TIMER_ABSTIME = 0x3e7
TIMER_MAX = 0x20
TIOC = 0x5400 TIOC = 0x5400
TIOCCBRK = 0x2000747a TIOCCBRK = 0x2000747a
TIOCCDTR = 0x20007478 TIOCCDTR = 0x20007478

View file

@ -3,7 +3,7 @@
// +build ppc64,aix // +build ppc64,aix
// Created by cgo -godefs - DO NOT EDIT // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -maix64 _const.go // cgo -godefs -- -maix64 _const.go
package unix package unix
@ -926,6 +926,8 @@ const (
TCSETSF = 0x5404 TCSETSF = 0x5404
TCSETSW = 0x5403 TCSETSW = 0x5403
TCXONC = 0x540b TCXONC = 0x540b
TIMER_ABSTIME = 0x3e7
TIMER_MAX = 0x20
TIOC = 0x5400 TIOC = 0x5400
TIOCCBRK = 0x2000747a TIOCCBRK = 0x2000747a
TIOCCDTR = 0x20007478 TIOCCDTR = 0x20007478

View file

@ -83,6 +83,8 @@ int lstat(uintptr_t, uintptr_t);
int pause(); int pause();
int pread64(int, uintptr_t, size_t, long long); int pread64(int, uintptr_t, size_t, long long);
int pwrite64(int, uintptr_t, size_t, long long); int pwrite64(int, uintptr_t, size_t, long long);
#define c_select select
int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
int setregid(int, int); int setregid(int, int);
int setreuid(int, int); int setreuid(int, int);
@ -103,8 +105,8 @@ int getpeername(int, uintptr_t, uintptr_t);
int getsockname(int, uintptr_t, uintptr_t); int getsockname(int, uintptr_t, uintptr_t);
int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
int recvmsg(int, uintptr_t, int); int nrecvmsg(int, uintptr_t, int);
int sendmsg(int, uintptr_t, int); int nsendmsg(int, uintptr_t, int);
int munmap(uintptr_t, uintptr_t); int munmap(uintptr_t, uintptr_t);
int madvise(uintptr_t, size_t, int); int madvise(uintptr_t, size_t, int);
int mprotect(uintptr_t, size_t, int); int mprotect(uintptr_t, size_t, int);
@ -118,6 +120,8 @@ int poll(uintptr_t, int, int);
int gettimeofday(uintptr_t, uintptr_t); int gettimeofday(uintptr_t, uintptr_t);
int time(uintptr_t); int time(uintptr_t);
int utime(uintptr_t, uintptr_t); int utime(uintptr_t, uintptr_t);
unsigned long long getsystemcfg(int);
int umount(uintptr_t);
int getrlimit64(int, uintptr_t); int getrlimit64(int, uintptr_t);
int setrlimit64(int, uintptr_t); int setrlimit64(int, uintptr_t);
long long lseek64(int, long long, int); long long lseek64(int, long long, int);
@ -1004,6 +1008,17 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
r0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))))
n = int(r0)
if r0 == -1 && er != nil {
err = er
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
r0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask)))) r0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask))))
n = int(r0) n = int(r0)
@ -1225,7 +1240,7 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
r0, er := C.recvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) r0, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))
n = int(r0) n = int(r0)
if r0 == -1 && er != nil { if r0 == -1 && er != nil {
err = er err = er
@ -1236,7 +1251,7 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
r0, er := C.sendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) r0, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))
n = int(r0) n = int(r0)
if r0 == -1 && er != nil { if r0 == -1 && er != nil {
err = er err = er
@ -1409,6 +1424,25 @@ func Utime(path string, buf *Utimbuf) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getsystemcfg(label int) (n uint64) {
r0, _ := C.getsystemcfg(C.int(label))
n = uint64(r0)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func umount(target string) (err error) {
_p0 := uintptr(unsafe.Pointer(C.CString(target)))
r0, er := C.umount(C.uintptr_t(_p0))
if r0 == -1 && er != nil {
err = er
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getrlimit(resource int, rlim *Rlimit) (err error) { func Getrlimit(resource int, rlim *Rlimit) (err error) {
r0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim)))) r0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim))))
if r0 == -1 && er != nil { if r0 == -1 && er != nil {

View file

@ -960,6 +960,17 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
r0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
r0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) r0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))
n = int(r0) n = int(r0)
@ -1189,7 +1200,7 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
r0, e1 := callrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags) r0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags)
n = int(r0) n = int(r0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
@ -1200,7 +1211,7 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
r0, e1 := callsendmsg(s, uintptr(unsafe.Pointer(msg)), flags) r0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags)
n = int(r0) n = int(r0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
@ -1375,6 +1386,21 @@ func Getsystemcfg(label int) (n uint64) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func umount(target string) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(target)
if err != nil {
return
}
_, e1 := callumount(uintptr(unsafe.Pointer(_p0)))
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getrlimit(resource int, rlim *Rlimit) (err error) { func Getrlimit(resource int, rlim *Rlimit) (err error) {
_, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim))) _, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))
if e1 != 0 { if e1 != 0 {

View file

@ -85,6 +85,7 @@ import (
//go:cgo_import_dynamic libc_pause pause "libc.a/shr_64.o" //go:cgo_import_dynamic libc_pause pause "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_pread64 pread64 "libc.a/shr_64.o" //go:cgo_import_dynamic libc_pread64 pread64 "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_pwrite64 pwrite64 "libc.a/shr_64.o" //go:cgo_import_dynamic libc_pwrite64 pwrite64 "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_select select "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_pselect pselect "libc.a/shr_64.o" //go:cgo_import_dynamic libc_pselect pselect "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_setregid setregid "libc.a/shr_64.o" //go:cgo_import_dynamic libc_setregid setregid "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_setreuid setreuid "libc.a/shr_64.o" //go:cgo_import_dynamic libc_setreuid setreuid "libc.a/shr_64.o"
@ -105,8 +106,8 @@ import (
//go:cgo_import_dynamic libc_getsockname getsockname "libc.a/shr_64.o" //go:cgo_import_dynamic libc_getsockname getsockname "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.a/shr_64.o" //go:cgo_import_dynamic libc_recvfrom recvfrom "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_sendto sendto "libc.a/shr_64.o" //go:cgo_import_dynamic libc_sendto sendto "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.a/shr_64.o" //go:cgo_import_dynamic libc_nrecvmsg nrecvmsg "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.a/shr_64.o" //go:cgo_import_dynamic libc_nsendmsg nsendmsg "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_munmap munmap "libc.a/shr_64.o" //go:cgo_import_dynamic libc_munmap munmap "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_madvise madvise "libc.a/shr_64.o" //go:cgo_import_dynamic libc_madvise madvise "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_mprotect mprotect "libc.a/shr_64.o" //go:cgo_import_dynamic libc_mprotect mprotect "libc.a/shr_64.o"
@ -121,6 +122,7 @@ import (
//go:cgo_import_dynamic libc_time time "libc.a/shr_64.o" //go:cgo_import_dynamic libc_time time "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o" //go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o" //go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_umount umount "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o" //go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o" //go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o" //go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o"
@ -201,6 +203,7 @@ import (
//go:linkname libc_pause libc_pause //go:linkname libc_pause libc_pause
//go:linkname libc_pread64 libc_pread64 //go:linkname libc_pread64 libc_pread64
//go:linkname libc_pwrite64 libc_pwrite64 //go:linkname libc_pwrite64 libc_pwrite64
//go:linkname libc_select libc_select
//go:linkname libc_pselect libc_pselect //go:linkname libc_pselect libc_pselect
//go:linkname libc_setregid libc_setregid //go:linkname libc_setregid libc_setregid
//go:linkname libc_setreuid libc_setreuid //go:linkname libc_setreuid libc_setreuid
@ -221,8 +224,8 @@ import (
//go:linkname libc_getsockname libc_getsockname //go:linkname libc_getsockname libc_getsockname
//go:linkname libc_recvfrom libc_recvfrom //go:linkname libc_recvfrom libc_recvfrom
//go:linkname libc_sendto libc_sendto //go:linkname libc_sendto libc_sendto
//go:linkname libc_recvmsg libc_recvmsg //go:linkname libc_nrecvmsg libc_nrecvmsg
//go:linkname libc_sendmsg libc_sendmsg //go:linkname libc_nsendmsg libc_nsendmsg
//go:linkname libc_munmap libc_munmap //go:linkname libc_munmap libc_munmap
//go:linkname libc_madvise libc_madvise //go:linkname libc_madvise libc_madvise
//go:linkname libc_mprotect libc_mprotect //go:linkname libc_mprotect libc_mprotect
@ -237,6 +240,7 @@ import (
//go:linkname libc_time libc_time //go:linkname libc_time libc_time
//go:linkname libc_utime libc_utime //go:linkname libc_utime libc_utime
//go:linkname libc_getsystemcfg libc_getsystemcfg //go:linkname libc_getsystemcfg libc_getsystemcfg
//go:linkname libc_umount libc_umount
//go:linkname libc_getrlimit libc_getrlimit //go:linkname libc_getrlimit libc_getrlimit
//go:linkname libc_setrlimit libc_setrlimit //go:linkname libc_setrlimit libc_setrlimit
//go:linkname libc_lseek libc_lseek //go:linkname libc_lseek libc_lseek
@ -320,6 +324,7 @@ var (
libc_pause, libc_pause,
libc_pread64, libc_pread64,
libc_pwrite64, libc_pwrite64,
libc_select,
libc_pselect, libc_pselect,
libc_setregid, libc_setregid,
libc_setreuid, libc_setreuid,
@ -340,8 +345,8 @@ var (
libc_getsockname, libc_getsockname,
libc_recvfrom, libc_recvfrom,
libc_sendto, libc_sendto,
libc_recvmsg, libc_nrecvmsg,
libc_sendmsg, libc_nsendmsg,
libc_munmap, libc_munmap,
libc_madvise, libc_madvise,
libc_mprotect, libc_mprotect,
@ -356,6 +361,7 @@ var (
libc_time, libc_time,
libc_utime, libc_utime,
libc_getsystemcfg, libc_getsystemcfg,
libc_umount,
libc_getrlimit, libc_getrlimit,
libc_setrlimit, libc_setrlimit,
libc_lseek, libc_lseek,
@ -893,6 +899,13 @@ func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {
r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {
r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask) r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask)
return return
@ -1033,15 +1046,15 @@ func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen u
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)
return return
} }
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)
return return
} }
@ -1145,6 +1158,13 @@ func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {
r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0) r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)
return return

View file

@ -83,6 +83,8 @@ int lstat(uintptr_t, uintptr_t);
int pause(); int pause();
int pread64(int, uintptr_t, size_t, long long); int pread64(int, uintptr_t, size_t, long long);
int pwrite64(int, uintptr_t, size_t, long long); int pwrite64(int, uintptr_t, size_t, long long);
#define c_select select
int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
int setregid(int, int); int setregid(int, int);
int setreuid(int, int); int setreuid(int, int);
@ -103,8 +105,8 @@ int getpeername(int, uintptr_t, uintptr_t);
int getsockname(int, uintptr_t, uintptr_t); int getsockname(int, uintptr_t, uintptr_t);
int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
int recvmsg(int, uintptr_t, int); int nrecvmsg(int, uintptr_t, int);
int sendmsg(int, uintptr_t, int); int nsendmsg(int, uintptr_t, int);
int munmap(uintptr_t, uintptr_t); int munmap(uintptr_t, uintptr_t);
int madvise(uintptr_t, size_t, int); int madvise(uintptr_t, size_t, int);
int mprotect(uintptr_t, size_t, int); int mprotect(uintptr_t, size_t, int);
@ -119,6 +121,7 @@ int gettimeofday(uintptr_t, uintptr_t);
int time(uintptr_t); int time(uintptr_t);
int utime(uintptr_t, uintptr_t); int utime(uintptr_t, uintptr_t);
unsigned long long getsystemcfg(int); unsigned long long getsystemcfg(int);
int umount(uintptr_t);
int getrlimit(int, uintptr_t); int getrlimit(int, uintptr_t);
int setrlimit(int, uintptr_t); int setrlimit(int, uintptr_t);
long long lseek(int, long long, int); long long lseek(int, long long, int);
@ -732,6 +735,14 @@ func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {
r1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout)))
e1 = syscall.GetErrno()
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {
r1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask))) r1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask)))
e1 = syscall.GetErrno() e1 = syscall.GetErrno()
@ -892,16 +903,16 @@ func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen u
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
r1 = uintptr(C.recvmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) r1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))
e1 = syscall.GetErrno() e1 = syscall.GetErrno()
return return
} }
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
r1 = uintptr(C.sendmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) r1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))
e1 = syscall.GetErrno() e1 = syscall.GetErrno()
return return
} }
@ -1020,6 +1031,14 @@ func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {
r1 = uintptr(C.umount(C.uintptr_t(_p0)))
e1 = syscall.GetErrno()
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim))) r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))
e1 = syscall.GetErrno() e1 = syscall.GetErrno()

View file

@ -103,7 +103,6 @@ type Stat_t struct {
Gid uint32 Gid uint32
Rdev uint64 Rdev uint64
Ssize int32 Ssize int32
_ [4]byte
Atim StTimespec Atim StTimespec
Mtim StTimespec Mtim StTimespec
Ctim StTimespec Ctim StTimespec
@ -205,10 +204,8 @@ type Linger struct {
type Msghdr struct { type Msghdr struct {
Name *byte Name *byte
Namelen uint32 Namelen uint32
_ [4]byte
Iov *Iovec Iov *Iovec
Iovlen int32 Iovlen int32
_ [4]byte
Control *byte Control *byte
Controllen uint32 Controllen uint32
Flags int32 Flags int32
@ -339,7 +336,6 @@ type Statfs_t struct {
Ffree uint64 Ffree uint64
Fsid Fsid64_t Fsid Fsid64_t
Vfstype int32 Vfstype int32
_ [4]byte
Fsize uint64 Fsize uint64
Vfsnumber int32 Vfsnumber int32
Vfsoff int32 Vfsoff int32

View file

@ -443,139 +443,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -652,6 +694,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x8 SizeofSockFprog = 0x8

View file

@ -444,139 +444,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -653,6 +695,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10

View file

@ -447,139 +447,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -656,6 +698,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x8 SizeofSockFprog = 0x8

View file

@ -445,139 +445,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -654,6 +696,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10

View file

@ -446,139 +446,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -655,6 +697,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x8 SizeofSockFprog = 0x8

View file

@ -445,139 +445,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -654,6 +696,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10

View file

@ -445,139 +445,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -654,6 +696,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10

View file

@ -446,139 +446,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -655,6 +697,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x8 SizeofSockFprog = 0x8

View file

@ -446,139 +446,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -655,6 +697,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10

View file

@ -446,139 +446,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -655,6 +697,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10

View file

@ -445,139 +445,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -654,6 +696,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10

View file

@ -444,139 +444,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -653,6 +695,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10

View file

@ -448,139 +448,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
SizeofNdUseroptmsg = 0x10 RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -657,6 +699,16 @@ type NdUseroptmsg struct {
Pad3 uint32 Pad3 uint32
} }
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10