1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package osl
- import "net"
- func (nh *neigh) processNeighOptions(options ...NeighOption) {
- for _, opt := range options {
- if opt != nil {
- opt(nh)
- }
- }
- }
- // WithLinkName sets the srcName of the link to use in the neighbor entry.
- func WithLinkName(name string) NeighOption {
- return func(nh *neigh) {
- nh.linkName = name
- }
- }
- // WithFamily sets the address-family for the neighbor entry. e.g. [syscall.AF_BRIDGE].
- func WithFamily(family int) NeighOption {
- return func(nh *neigh) {
- nh.family = family
- }
- }
- // WithIsBridge sets whether the interface is a bridge.
- func WithIsBridge(isBridge bool) IfaceOption {
- return func(i *Interface) error {
- i.bridge = isBridge
- return nil
- }
- }
- // WithMaster sets the master interface (if any) for this interface. The
- // master interface name should refer to the srcName of a previously added
- // interface of type bridge.
- func WithMaster(name string) IfaceOption {
- return func(i *Interface) error {
- i.master = name
- return nil
- }
- }
- // WithMACAddress sets the interface MAC-address.
- func WithMACAddress(mac net.HardwareAddr) IfaceOption {
- return func(i *Interface) error {
- i.mac = mac
- return nil
- }
- }
- // WithIPv4Address sets the IPv4 address of the interface.
- func WithIPv4Address(addr *net.IPNet) IfaceOption {
- return func(i *Interface) error {
- i.address = addr
- return nil
- }
- }
- // WithIPv6Address sets the IPv6 address of the interface.
- func WithIPv6Address(addr *net.IPNet) IfaceOption {
- return func(i *Interface) error {
- i.addressIPv6 = addr
- return nil
- }
- }
- // WithLinkLocalAddresses set the link-local IP addresses of the interface.
- func WithLinkLocalAddresses(list []*net.IPNet) IfaceOption {
- return func(i *Interface) error {
- i.llAddrs = list
- return nil
- }
- }
- // WithRoutes sets the interface routes.
- func WithRoutes(routes []*net.IPNet) IfaceOption {
- return func(i *Interface) error {
- i.routes = routes
- return nil
- }
- }
|