mirror of
https://github.com/openfaas/faasd.git
synced 2025-06-21 12:06:34 +00:00
The use of containerd and CNI functions has been refactored to reuse the same codebase. Added all network functionality to own directory and package. Removed netlink and weave library in favor of using CNI plugin result files. Rename containers handler to functions to clear-up functionality. Signed-off-by: Carlos de Paula <me@carlosedp.com>
75 lines
1.4 KiB
Go
75 lines
1.4 KiB
Go
package nl
|
|
|
|
import (
|
|
"fmt"
|
|
"unsafe"
|
|
)
|
|
|
|
const (
|
|
SizeofBridgeVlanInfo = 0x04
|
|
)
|
|
|
|
/* Bridge Flags */
|
|
const (
|
|
BRIDGE_FLAGS_MASTER = iota + 1 /* Bridge command to/from master */
|
|
BRIDGE_FLAGS_SELF /* Bridge command to/from lowerdev */
|
|
)
|
|
|
|
/* Bridge management nested attributes
|
|
* [IFLA_AF_SPEC] = {
|
|
* [IFLA_BRIDGE_FLAGS]
|
|
* [IFLA_BRIDGE_MODE]
|
|
* [IFLA_BRIDGE_VLAN_INFO]
|
|
* }
|
|
*/
|
|
const (
|
|
IFLA_BRIDGE_FLAGS = iota
|
|
IFLA_BRIDGE_MODE
|
|
IFLA_BRIDGE_VLAN_INFO
|
|
)
|
|
|
|
const (
|
|
BRIDGE_VLAN_INFO_MASTER = 1 << iota
|
|
BRIDGE_VLAN_INFO_PVID
|
|
BRIDGE_VLAN_INFO_UNTAGGED
|
|
BRIDGE_VLAN_INFO_RANGE_BEGIN
|
|
BRIDGE_VLAN_INFO_RANGE_END
|
|
)
|
|
|
|
// struct bridge_vlan_info {
|
|
// __u16 flags;
|
|
// __u16 vid;
|
|
// };
|
|
|
|
type BridgeVlanInfo struct {
|
|
Flags uint16
|
|
Vid uint16
|
|
}
|
|
|
|
func (b *BridgeVlanInfo) Serialize() []byte {
|
|
return (*(*[SizeofBridgeVlanInfo]byte)(unsafe.Pointer(b)))[:]
|
|
}
|
|
|
|
func DeserializeBridgeVlanInfo(b []byte) *BridgeVlanInfo {
|
|
return (*BridgeVlanInfo)(unsafe.Pointer(&b[0:SizeofBridgeVlanInfo][0]))
|
|
}
|
|
|
|
func (b *BridgeVlanInfo) PortVID() bool {
|
|
return b.Flags&BRIDGE_VLAN_INFO_PVID > 0
|
|
}
|
|
|
|
func (b *BridgeVlanInfo) EngressUntag() bool {
|
|
return b.Flags&BRIDGE_VLAN_INFO_UNTAGGED > 0
|
|
}
|
|
|
|
func (b *BridgeVlanInfo) String() string {
|
|
return fmt.Sprintf("%+v", *b)
|
|
}
|
|
|
|
/* New extended info filters for IFLA_EXT_MASK */
|
|
const (
|
|
RTEXT_FILTER_VF = 1 << iota
|
|
RTEXT_FILTER_BRVLAN
|
|
RTEXT_FILTER_BRVLAN_COMPRESSED
|
|
)
|