Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Package netlink provides low-level access to Linux netlink sockets (AF_NETLINK). MIT Licensed.

License

NotificationsYou must be signed in to change notification settings

mdlayher/netlink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Packagenetlink provides low-level access to Linux netlink sockets(AF_NETLINK). MIT Licensed.

For more information about how netlink works, check out my blog seriesonLinux, Netlink, and Go.

If you have any questions or you'd like some guidance, please join us onGophers Slack in the#networkingchannel!

Stability

See theCHANGELOG file for a description of changes betweenreleases.

This package has a stable v1 API and any future breaking changes will promptthe release of a new major version. Features and bug fixes will continue tooccur in the v1.x.x series.

This package only supports the two most recent major versions of Go, mirroringGo's own release policy. Older versions of Go may lack critical features and bugfixes which are necessary for this package to function correctly.

Design

A number of netlink packages are already available for Go, but I wasn't able tofind one that aligned with what I wanted in a netlink package:

  • Straightforward, idiomatic API
  • Well tested
  • Well documented
  • Doesn't use package/global variables or state
  • Doesn't necessarily need root to work

My goal for this package is to use it as a building block for the creationof other netlink family packages.

Ecosystem

Over time, an ecosystem of Go packages has developed around packagenetlink.Many of these packages provide building blocks for further interactions withvarious netlink families, such asNETLINK_GENERIC orNETLINK_ROUTE.

To have your package included in this diagram, please send a pull request!

flowchart LR    netlink["github.com/mdlayher/netlink"]    click netlink "https://github.com/mdlayher/netlink"    subgraph "NETLINK_CONNECTOR"        direction LR        garlic["github.com/fearful-symmetry/garlic"]        click garlic "https://github.com/fearful-symmetry/garlic"    end    subgraph "NETLINK_CRYPTO"        direction LR        cryptonl["github.com/mdlayher/cryptonl"]        click cryptonl "https://github.com/mdlayher/cryptonl"    end    subgraph "NETLINK_GENERIC"        direction LR        genetlink["github.com/mdlayher/genetlink"]        click genetlink "https://github.com/mdlayher/genetlink"        devlink["github.com/mdlayher/devlink"]        click devlink "https://github.com/mdlayher/devlink"        ethtool["github.com/mdlayher/ethtool"]        click ethtool "https://github.com/mdlayher/ethtool"        go-openvswitch["github.com/digitalocean/go-openvswitch"]        click go-openvswitch "https://github.com/digitalocean/go-openvswitch"        ipvs["github.com/cloudflare/ipvs"]        click ipvs "https://github.com/cloudflare/ipvs"        l2tp["github.com/axatrax/l2tp"]        click l2tp "https://github.com/axatrax/l2tp"        nbd["github.com/Merovius/nbd"]        click nbd "https://github.com/Merovius/nbd"        quota["github.com/mdlayher/quota"]        click quota "https://github.com/mdlayher/quota"        router7["github.com/rtr7/router7"]        click router7 "https://github.com/rtr7/router7"        taskstats["github.com/mdlayher/taskstats"]        click taskstats "https://github.com/mdlayher/taskstats"        u-bmc["github.com/u-root/u-bmc"]        click u-bmc "https://github.com/u-root/u-bmc"        wgctrl["golang.zx2c4.com/wireguard/wgctrl"]        click wgctrl "https://golang.zx2c4.com/wireguard/wgctrl"        wifi["github.com/mdlayher/wifi"]        click wifi "https://github.com/mdlayher/wifi"        devlink & ethtool & go-openvswitch & ipvs --> genetlink        l2tp & nbd & quota & router7 & taskstats --> genetlink        u-bmc & wgctrl & wifi --> genetlink    end    subgraph "NETLINK_KOBJECT_UEVENT"        direction LR        kobject["github.com/mdlayher/kobject"]        click kobject "https://github.com/mdlayher/kobject"    end    subgraph "NETLINK_NETFILTER"        direction LR        go-conntrack["github.com/florianl/go-conntrack"]        click go-conntrack "https://github.com/florianl/go-conntrack"        go-nflog["github.com/florianl/go-nflog"]        click go-nflog "https://github.com/florianl/go-nflog"        go-nfqueue["github.com/florianl/go-nfqueue"]        click go-nfqueue "https://github.com/florianl/go-nfqueue"        netfilter["github.com/ti-mo/netfilter"]        click netfilter "https://github.com/ti-mo/netfilter"        nftables["github.com/google/nftables"]        click nftables "https://github.com/google/nftables"        conntrack["github.com/ti-mo/conntrack"]        click conntrack "https://github.com/ti-mo/conntrack"        conntrack --> netfilter    end    subgraph "NETLINK_ROUTE"        direction LR        go-tc["github.com/florianl/go-tc"]        click go-tc "https://github.com/florianl/go-tc"        qdisc["github.com/ema/qdisc"]        click qdisc "https://github.com/ema/qdisc"        rtnetlink["github.com/jsimonetti/rtnetlink"]        click rtnetlink "https://github.com/jsimonetti/rtnetlink"        rtnl["gitlab.com/mergetb/tech/rtnl"]        click rtnl "https://gitlab.com/mergetb/tech/rtnl"    end    subgraph "NETLINK_W1"        direction LR        go-onewire["github.com/SpComb/go-onewire"]        click go-onewire "https://github.com/SpComb/go-onewire"    end    subgraph "NETLINK_SOCK_DIAG"        direction LR        go-diag["github.com/florianl/go-diag"]        click go-diag "https://github.com/florianl/go-diag"    end    NETLINK_CONNECTOR --> netlink    NETLINK_CRYPTO --> netlink    NETLINK_GENERIC --> netlink    NETLINK_KOBJECT_UEVENT --> netlink    NETLINK_NETFILTER --> netlink    NETLINK_ROUTE --> netlink    NETLINK_SOCK_DIAG --> netlink    NETLINK_W1 --> netlink
Loading

About

Package netlink provides low-level access to Linux netlink sockets (AF_NETLINK). MIT Licensed.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp