2015-07-02 01:00:48 -04:00
|
|
|
package osl
|
2015-06-04 23:21:23 -04:00
|
|
|
|
|
|
|
import "net"
|
|
|
|
|
2015-06-15 14:35:13 -04:00
|
|
|
func (nh *neigh) processNeighOptions(options ...NeighOption) {
|
|
|
|
for _, opt := range options {
|
|
|
|
if opt != nil {
|
|
|
|
opt(nh)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (n *networkNamespace) LinkName(name string) NeighOption {
|
|
|
|
return func(nh *neigh) {
|
|
|
|
nh.linkName = name
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (n *networkNamespace) Family(family int) NeighOption {
|
|
|
|
return func(nh *neigh) {
|
|
|
|
nh.family = family
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-06-04 23:21:23 -04:00
|
|
|
func (i *nwIface) processInterfaceOptions(options ...IfaceOption) {
|
|
|
|
for _, opt := range options {
|
|
|
|
if opt != nil {
|
|
|
|
opt(i)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-06-05 02:45:04 -04:00
|
|
|
func (n *networkNamespace) Bridge(isBridge bool) IfaceOption {
|
|
|
|
return func(i *nwIface) {
|
|
|
|
i.bridge = isBridge
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (n *networkNamespace) Master(name string) IfaceOption {
|
|
|
|
return func(i *nwIface) {
|
|
|
|
i.master = name
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-10-29 03:04:08 -04:00
|
|
|
func (n *networkNamespace) MacAddress(mac net.HardwareAddr) IfaceOption {
|
|
|
|
return func(i *nwIface) {
|
|
|
|
i.mac = mac
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-06-04 23:21:23 -04:00
|
|
|
func (n *networkNamespace) Address(addr *net.IPNet) IfaceOption {
|
|
|
|
return func(i *nwIface) {
|
|
|
|
i.address = addr
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (n *networkNamespace) AddressIPv6(addr *net.IPNet) IfaceOption {
|
|
|
|
return func(i *nwIface) {
|
|
|
|
i.addressIPv6 = addr
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-05-24 23:04:49 -04:00
|
|
|
func (n *networkNamespace) LinkLocalAddresses(list []*net.IPNet) IfaceOption {
|
|
|
|
return func(i *nwIface) {
|
|
|
|
i.llAddrs = list
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-06-04 23:21:23 -04:00
|
|
|
func (n *networkNamespace) Routes(routes []*net.IPNet) IfaceOption {
|
|
|
|
return func(i *nwIface) {
|
|
|
|
i.routes = routes
|
|
|
|
}
|
|
|
|
}
|