package hcn

import "github.com/Microsoft/hcsshim/hcn"

Package hcn is a shim for the Host Compute Networking (HCN) service, which manages networking for Windows Server containers and Hyper-V containers. Previous to RS5, HCN was referred to as Host Networking Service (HNS).

Package hcn is a shim for the Host Compute Networking (HCN) service, which manages networking for Windows Server containers and Hyper-V containers. Previous to RS5, HCN was referred to as Host Networking Service (HNS).

Index

Constants

const (
	// Allow traffic
	ActionTypeAllow ActionType = "Allow"
	// Block traffic
	ActionTypeBlock ActionType = "Block"

	// In is traffic coming to the Endpoint
	DirectionTypeIn DirectionType = "In"
	// Out is traffic leaving the Endpoint
	DirectionTypeOut DirectionType = "Out"

	// Host creates WFP (Windows Firewall) rules
	RuleTypeHost RuleType = "Host"
	// Switch creates VFP (Virtual Filter Platform) rules
	RuleTypeSwitch RuleType = "Switch"
)

Variables

var (
	// HNSVersion1803 added ACL functionality.
	HNSVersion1803 = Version{Major: 7, Minor: 2}
	// V2ApiSupport allows the use of V2 Api calls and V2 Schema.
	V2ApiSupport = Version{Major: 9, Minor: 1}
)

Functions

func AddNamespaceEndpoint

func AddNamespaceEndpoint(namespaceId string, endpointId string) error

AddNamespaceEndpoint adds an endpoint to a Namespace.

func GetNamespaceContainerIds

func GetNamespaceContainerIds(namespaceId string) ([]string, error)

GetNamespaceContainerIds returns the containers of the Namespace specified by Id.

func GetNamespaceEndpointIds

func GetNamespaceEndpointIds(namespaceId string) ([]string, error)

GetNamespaceEndpointIds returns the endpoints of the Namespace specified by Id.

func IsNotFoundError

func IsNotFoundError(err error) bool

IsNotFoundError returns a boolean indicating whether the error was caused by a resource not being found.

func ModifyEndpointSettings

func ModifyEndpointSettings(endpointId string, request *ModifyEndpointSettingRequest) error

ModifyEndpointSettings updates the Port/Policy of an Endpoint.

func ModifyNamespaceSettings

func ModifyNamespaceSettings(namespaceId string, request *ModifyNamespaceSettingRequest) error

ModifyNamespaceSettings updates the Endpoints/Containers of a Namespace.

func RemoveNamespaceEndpoint

func RemoveNamespaceEndpoint(namespaceId string, endpointId string) error

RemoveNamespaceEndpoint removes an endpoint from a Namespace.

func SetCurrentThreadCompartmentId

func SetCurrentThreadCompartmentId(compartmentId uint32) (hr error)

func V2ApiSupported

func V2ApiSupported() error

V2ApiSupported returns an error if the HCN version does not support the V2 Apis.

Types

type AclFeatures

type AclFeatures struct {
	AclAddressLists       bool `json:"AclAddressLists"`
	AclNoHostRulePriority bool `json:"AclHostRulePriority"`
	AclPortRanges         bool `json:"AclPortRanges"`
	AclRuleId             bool `json:"AclRuleId"`
}

AclFeatures are the supported ACL possibilities.

type AclPolicySetting

type AclPolicySetting struct {
	Protocols       string        `json:",omitempty"` // EX: 6 (TCP), 17 (UDP), 1 (ICMPv4), 58 (ICMPv6), 2 (IGMP)
	Action          ActionType    `json:","`
	Direction       DirectionType `json:","`
	LocalAddresses  string        `json:",omitempty"`
	RemoteAddresses string        `json:",omitempty"`
	LocalPorts      string        `json:",omitempty"`
	RemotePorts     string        `json:",omitempty"`
	RuleType        RuleType      `json:",omitempty"`
	Priority        uint16        `json:",omitempty"`
}

AclPolicySetting creates firewall rules on an endpoint

type ActionType

type ActionType string

ActionType associated with ACLs. Value is either Allow or Block.

type ApiSupport

type ApiSupport struct {
	V1 bool `json:"V1"`
	V2 bool `json:"V2"`
}

ApiSupport lists the supported API versions.

type AutomaticDNSNetworkPolicySetting

type AutomaticDNSNetworkPolicySetting struct {
	Enable bool `json:",omitempty"`
}

AutomaticDNSNetworkPolicySetting enables/disables automatic DNS on a network.

type DirectionType

type DirectionType string

DirectionType associated with ACLs. Value is either In or Out.

type Dns

type Dns struct {
	Suffix     string   `json:",omitempty"`
	Search     []string `json:",omitempty"`
	ServerList []string `json:",omitempty"`
	Options    []string `json:",omitempty"`
}

Dns (Domain Name System is associated with a network.

type DrMacAddressNetworkPolicySetting

type DrMacAddressNetworkPolicySetting struct {
	Address string `json:",omitempty"`
}

DrMacAddressNetworkPolicySetting sets the DR MAC for a network.

type EncapOverheadEndpointPolicySetting

type EncapOverheadEndpointPolicySetting struct {
	Overhead uint16 `json:",omitempty"`
}

EncapOverheadEndpointPolicySetting sets the encap overhead for an endpoint.

type EndpointFlags

type EndpointFlags uint32

EndpointFlags are special settings on an endpoint.

var (
	// EndpointFlagsNone is the default.
	EndpointFlagsNone EndpointFlags
	// EndpointFlagsRemoteEndpoint means that an endpoint is on another host.
	EndpointFlagsRemoteEndpoint EndpointFlags = 1
)

type EndpointNotFoundError

type EndpointNotFoundError struct {
	EndpointName string
	EndpointID   string
}

EndpointNotFoundError results from a failed seach for an endpoint by Id or Name

func (EndpointNotFoundError) Error

func (e EndpointNotFoundError) Error() string

type EndpointPolicy

type EndpointPolicy struct {
	Type     EndpointPolicyType `json:""`
	Settings json.RawMessage    `json:",omitempty"`
}

EndpointPolicy is a collection of Policy settings for an Endpoint.

type EndpointPolicyType

type EndpointPolicyType string

EndpointPolicyType are the potential Policies that apply to Endpoints.

const (
	PortMapping   EndpointPolicyType = "PortMapping"
	ACL           EndpointPolicyType = "ACL"
	QOS           EndpointPolicyType = "QOS"
	L2Driver      EndpointPolicyType = "L2Driver"
	OutBoundNAT   EndpointPolicyType = "OutBoundNAT"
	SDNRoute      EndpointPolicyType = "SDNRoute"
	L4Proxy       EndpointPolicyType = "L4Proxy"
	PortName      EndpointPolicyType = "PortName"
	EncapOverhead EndpointPolicyType = "EncapOverhead"
	// Endpoint and Network have InterfaceConstraint and ProviderAddress
	NetworkProviderAddress     EndpointPolicyType = "ProviderAddress"
	NetworkInterfaceConstraint EndpointPolicyType = "InterfaceConstraint"
)

EndpointPolicyType const

type EndpointResourceType

type EndpointResourceType string

EndpointResourceType are the two different Endpoint settings resources.

var (
	// EndpointResourceTypePolicy is for Endpoint Policies. Ex: ACL, NAT
	EndpointResourceTypePolicy EndpointResourceType = "Policy"
	// EndpointResourceTypePort is for Endpoint Port settings.
	EndpointResourceTypePort EndpointResourceType = "Port"
)

type Globals

type Globals struct {
	Version Version `json:"Version"`
}

Globals are all global properties of the HCN Service.

func GetGlobals

func GetGlobals() (*Globals, error)

GetGlobals returns the global properties of the HCN Service.

type HostComputeEndpoint

type HostComputeEndpoint struct {
	Id                   string           `json:"ID,omitempty"`
	Name                 string           `json:",omitempty"`
	HostComputeNetwork   string           `json:",omitempty"` // GUID
	HostComputeNamespace string           `json:",omitempty"` // GUID
	Policies             []EndpointPolicy `json:",omitempty"`
	IpConfigurations     []IpConfig       `json:",omitempty"`
	Dns                  Dns              `json:",omitempty"`
	Routes               []Route          `json:",omitempty"`
	MacAddress           string           `json:",omitempty"`
	Flags                EndpointFlags    `json:",omitempty"`
	SchemaVersion        SchemaVersion    `json:",omitempty"`
}

HostComputeEndpoint represents a network endpoint

func GetEndpointByID

func GetEndpointByID(endpointId string) (*HostComputeEndpoint, error)

GetEndpointByID returns an endpoint specified by Id

func GetEndpointByName

func GetEndpointByName(endpointName string) (*HostComputeEndpoint, error)

GetEndpointByName returns an endpoint specified by Name

func ListEndpoints

func ListEndpoints() ([]HostComputeEndpoint, error)

ListEndpoints makes a call to list all available endpoints.

func ListEndpointsOfNetwork

func ListEndpointsOfNetwork(networkId string) ([]HostComputeEndpoint, error)

ListEndpointsOfNetwork queries the list of endpoints on a network.

func ListEndpointsQuery

func ListEndpointsQuery(query HostComputeQuery) ([]HostComputeEndpoint, error)

ListEndpointsQuery makes a call to query the list of available endpoints.

func (*HostComputeEndpoint) ApplyPolicy

func (endpoint *HostComputeEndpoint) ApplyPolicy(endpointPolicy PolicyEndpointRequest) error

ApplyPolicy applies a Policy (ex: ACL) on the Endpoint.

func (*HostComputeEndpoint) Create

func (endpoint *HostComputeEndpoint) Create() (*HostComputeEndpoint, error)

Create Endpoint.

func (*HostComputeEndpoint) Delete

func (endpoint *HostComputeEndpoint) Delete() (*HostComputeEndpoint, error)

Delete Endpoint.

func (*HostComputeEndpoint) NamespaceAttach

func (endpoint *HostComputeEndpoint) NamespaceAttach(namespaceId string) error

NamespaceAttach modifies a Namespace to add an endpoint.

func (*HostComputeEndpoint) NamespaceDetach

func (endpoint *HostComputeEndpoint) NamespaceDetach(namespaceId string) error

NamespaceDetach modifies a Namespace to remove an endpoint.

type HostComputeLoadBalancer

type HostComputeLoadBalancer struct {
	Id                   string                    `json:"ID,omitempty"`
	HostComputeEndpoints []string                  `json:",omitempty"`
	SourceVIP            string                    `json:",omitempty"`
	FrontendVIPs         []string                  `json:",omitempty"`
	PortMappings         []LoadBalancerPortMapping `json:",omitempty"`
	SchemaVersion        SchemaVersion             `json:",omitempty"`
}

HostComputeLoadBalancer represents software load balancer.

func AddLoadBalancer

func AddLoadBalancer(endpoints []HostComputeEndpoint, isILB bool, sourceVIP string, frontendVIPs []string, protocol uint16, internalPort uint16, externalPort uint16) (*HostComputeLoadBalancer, error)

AddLoadBalancer for the specified endpoints

func GetLoadBalancerByID

func GetLoadBalancerByID(loadBalancerId string) (*HostComputeLoadBalancer, error)

GetLoadBalancerByID returns the LoadBalancer specified by Id.

func ListLoadBalancers

func ListLoadBalancers() ([]HostComputeLoadBalancer, error)

ListLoadBalancers makes a call to list all available loadBalancers.

func ListLoadBalancersQuery

func ListLoadBalancersQuery(query HostComputeQuery) ([]HostComputeLoadBalancer, error)

ListLoadBalancersQuery makes a call to query the list of available loadBalancers.

func (*HostComputeLoadBalancer) AddEndpoint

func (loadBalancer *HostComputeLoadBalancer) AddEndpoint(endpoint *HostComputeEndpoint) (*HostComputeLoadBalancer, error)

AddEndpoint add an endpoint to a LoadBalancer

func (*HostComputeLoadBalancer) Create

func (loadBalancer *HostComputeLoadBalancer) Create() (*HostComputeLoadBalancer, error)

Create LoadBalancer.

func (*HostComputeLoadBalancer) Delete

func (loadBalancer *HostComputeLoadBalancer) Delete() (*HostComputeLoadBalancer, error)

Delete LoadBalancer.

func (*HostComputeLoadBalancer) RemoveEndpoint

func (loadBalancer *HostComputeLoadBalancer) RemoveEndpoint(endpoint *HostComputeEndpoint) (*HostComputeLoadBalancer, error)

RemoveEndpoint removes an endpoint from a LoadBalancer

type HostComputeNamespace

type HostComputeNamespace struct {
	Id            string              `json:"ID,omitempty"`
	NamespaceId   uint32              `json:",omitempty"`
	Type          NamespaceType       `json:",omitempty"` // Host, HostDefault, Guest, GuestDefault
	Resources     []NamespaceResource `json:",omitempty"`
	SchemaVersion SchemaVersion       `json:",omitempty"`
}

HostComputeNamespace represents a namespace (AKA compartment) in

func GetNamespaceByID

func GetNamespaceByID(namespaceId string) (*HostComputeNamespace, error)

GetNamespaceByID returns the Namespace specified by Id.

func ListNamespaces

func ListNamespaces() ([]HostComputeNamespace, error)

ListNamespaces makes a call to list all available namespaces.

func ListNamespacesQuery

func ListNamespacesQuery(query HostComputeQuery) ([]HostComputeNamespace, error)

ListNamespacesQuery makes a call to query the list of available namespaces.

func (*HostComputeNamespace) Create

func (namespace *HostComputeNamespace) Create() (*HostComputeNamespace, error)

Create Namespace.

func (*HostComputeNamespace) Delete

func (namespace *HostComputeNamespace) Delete() (*HostComputeNamespace, error)

Delete Namespace.

type HostComputeNetwork

type HostComputeNetwork struct {
	Id            string          `json:"ID,omitempty"`
	Name          string          `json:",omitempty"`
	Type          NetworkType     `json:",omitempty"`
	Policies      []NetworkPolicy `json:",omitempty"`
	MacPool       MacPool         `json:",omitempty"`
	Dns           Dns             `json:",omitempty"`
	Ipams         []Ipam          `json:",omitempty"`
	Flags         uint32          `json:",omitempty"` // 0: None
	SchemaVersion SchemaVersion   `json:",omitempty"`
}

HostComputeNetwork represents a network

func GetNetworkByID

func GetNetworkByID(networkID string) (*HostComputeNetwork, error)

GetNetworkByID returns the network specified by Id.

func GetNetworkByName

func GetNetworkByName(networkName string) (*HostComputeNetwork, error)

GetNetworkByName returns the network specified by Name.

func ListNetworks

func ListNetworks() ([]HostComputeNetwork, error)

ListNetworks makes a call to list all available networks.

func ListNetworksQuery

func ListNetworksQuery(query HostComputeQuery) ([]HostComputeNetwork, error)

ListNetworksQuery makes a call to query the list of available networks.

func (*HostComputeNetwork) Create

func (network *HostComputeNetwork) Create() (*HostComputeNetwork, error)

Create Network.

func (*HostComputeNetwork) CreateEndpoint

func (network *HostComputeNetwork) CreateEndpoint(endpoint *HostComputeEndpoint) (*HostComputeEndpoint, error)

CreateEndpoint creates an endpoint on the Network.

func (*HostComputeNetwork) CreateRemoteEndpoint

func (network *HostComputeNetwork) CreateRemoteEndpoint(endpoint *HostComputeEndpoint) (*HostComputeEndpoint, error)

CreateRemoteEndpoint creates a remote endpoint on the Network.

func (*HostComputeNetwork) Delete

func (network *HostComputeNetwork) Delete() (*HostComputeNetwork, error)

Delete Network.

type HostComputeQuery

type HostComputeQuery struct {
	SchemaVersion SchemaVersion         `json:""`
	Flags         HostComputeQueryFlags `json:",omitempty"`
	Filter        string                `json:",omitempty"`
}

HostComputeQuery is the format for HCN queries.

type HostComputeQueryFlags

type HostComputeQueryFlags uint32

HostComputeQueryFlags are passed in to a HostComputeQuery to determine which properties of an object are returned.

var (
	// HostComputeQueryFlagsNone returns an object with the standard properties.
	HostComputeQueryFlagsNone HostComputeQueryFlags
	// HostComputeQueryFlagsDetailed returns an object with all properties.
	HostComputeQueryFlagsDetailed HostComputeQueryFlags = 1
)

type InterfaceConstraintPolicySetting

type InterfaceConstraintPolicySetting struct {
	InterfaceGuid        string `json:",omitempty"`
	InterfaceLuid        uint64 `json:",omitempty"`
	InterfaceIndex       uint32 `json:",omitempty"`
	InterfaceMediaType   uint32 `json:",omitempty"`
	InterfaceAlias       string `json:",omitempty"`
	InterfaceDescription string `json:",omitempty"`
}

InterfaceConstraintPolicySetting limits an Endpoint or Network to a specific Nic.

type IpConfig

type IpConfig struct {
	IpAddress    string `json:",omitempty"`
	PrefixLength uint8  `json:",omitempty"`
}

IpConfig is assoicated with an endpoint

type Ipam

type Ipam struct {
	Type    string   `json:",omitempty"` // Ex: Static, DHCP
	Subnets []Subnet `json:",omitempty"`
}

Ipam (Internet Protocol Addres Management) is assoicated with a network and represents the address space(s) of a network.

type L4ProxyPolicySetting

type L4ProxyPolicySetting struct {
	IP            string   `json:",omitempty"`
	Port          string   `json:",omitempty"`
	Protocol      uint32   `json:",omitempty"` // EX: TCP = 6, UDP = 17
	ExceptionList []string `json:",omitempty"`
	Destination   string   `json:","`
	OutboundNat   bool     `json:",omitempty"`
}

L4ProxyPolicySetting sets Layer-4 Proxy on an endpoint.

type LoadBalancerNotFoundError

type LoadBalancerNotFoundError struct {
	LoadBalancerId string
}

LoadBalancerNotFoundError results from a failed seach for a loadbalancer by Id

func (LoadBalancerNotFoundError) Error

type LoadBalancerPortMapping

type LoadBalancerPortMapping struct {
	Protocol     uint32 `json:",omitempty"` // EX: TCP = 6, UDP = 17
	InternalPort uint16 `json:",omitempty"`
	ExternalPort uint16 `json:",omitempty"`
	Flags        uint32 `json:",omitempty"` // 0: None, 1: EnableILB, 2: LocalRoutedVip
}

LoadBalancerPortMapping is associated with HostComputeLoadBalancer

type MacPool

type MacPool struct {
	Ranges []MacRange `json:",omitempty"`
}

MacPool is assoicated with a network and represents pool of MacRanges.

type MacRange

type MacRange struct {
	StartMacAddress string `json:",omitempty"`
	EndMacAddress   string `json:",omitempty"`
}

MacRange is associated with MacPool and respresents the start and end addresses.

type ModifyEndpointSettingRequest

type ModifyEndpointSettingRequest struct {
	ResourceType EndpointResourceType `json:",omitempty"` // Policy, Port
	RequestType  RequestType          `json:",omitempty"` // Add, Remove, Update, Refresh
	Settings     json.RawMessage      `json:",omitempty"`
}

ModifyEndpointSettingRequest is the structure used to send request to modify an endpoint. Used to update policy/port on an endpoint.

type ModifyNamespaceSettingRequest

type ModifyNamespaceSettingRequest struct {
	ResourceType NamespaceResourceType `json:",omitempty"` // Container, Endpoint
	RequestType  RequestType           `json:",omitempty"` // Add, Remove, Update, Refresh
	Settings     json.RawMessage       `json:",omitempty"`
}

ModifyNamespaceSettingRequest is the structure used to send request to modify a namespace. Used to Add/Remove an endpoints and containers to/from a namespace.

type NamespaceNotFoundError

type NamespaceNotFoundError struct {
	NamespaceID string
}

NamespaceNotFoundError results from a failed seach for a namsepace by Id

func (NamespaceNotFoundError) Error

func (e NamespaceNotFoundError) Error() string

type NamespaceResource

type NamespaceResource struct {
	Type NamespaceResourceType `json:","` // Container, Endpoint
	Data json.RawMessage       `json:","`
}

NamespaceResource is associated with a namespace

type NamespaceResourceContainer

type NamespaceResourceContainer struct {
	Id string `json:"ID,"`
}

NamespaceResourceContainer represents a Container attached to a Namespace.

type NamespaceResourceEndpoint

type NamespaceResourceEndpoint struct {
	Id string `json:"ID,"`
}

NamespaceResourceEndpoint represents an Endpoint attached to a Namespace.

type NamespaceResourceType

type NamespaceResourceType string

NamespaceResourceType determines whether the Namespace resource is a Container or Endpoint.

var (
	// NamespaceResourceTypeContainer are contianers associated with a Namespace.
	NamespaceResourceTypeContainer NamespaceResourceType = "Container"
	// NamespaceResourceTypeEndpoint are endpoints associated with a Namespace.
	NamespaceResourceTypeEndpoint NamespaceResourceType = "Endpoint"
)

type NamespaceType

type NamespaceType string

NamespaceType determines whether the Namespace is for a Host or Guest

var (
	// NamespaceTypeHost are host namespaces.
	NamespaceTypeHost NamespaceType = "Host"
	// NamespaceTypeHostDefault are host namespaces in the default compartment.
	NamespaceTypeHostDefault NamespaceType = "HostDefault"
	// NamespaceTypeGuest are guest namespaces.
	NamespaceTypeGuest NamespaceType = "Guest"
	// NamespaceTypeGuestDefault are guest namespaces in the default compartment.
	NamespaceTypeGuestDefault NamespaceType = "GuestDefault"
)

type NetAdapterNameNetworkPolicySetting

type NetAdapterNameNetworkPolicySetting struct {
	NetworkAdapterName string `json:",omitempty"`
}

NetAdapterNameNetworkPolicySetting sets network adapter of a network.

type NetworkNotFoundError

type NetworkNotFoundError struct {
	NetworkName string
	NetworkID   string
}

NetworkNotFoundError results from a failed seach for a network by Id or Name

func (NetworkNotFoundError) Error

func (e NetworkNotFoundError) Error() string

type NetworkPolicy

type NetworkPolicy struct {
	Type     NetworkPolicyType `json:""`
	Settings json.RawMessage   `json:",omitempty"`
}

NetworkPolicy is a collection of Policy settings for a Network.

type NetworkPolicyType

type NetworkPolicyType string

NetworkPolicyType are the potential Policies that apply to Networks.

const (
	SourceMacAddress    NetworkPolicyType = "SourceMacAddress"
	NetAdapterName      NetworkPolicyType = "NetAdapterName"
	VSwitchExtension    NetworkPolicyType = "VSwitchExtension"
	DrMacAddress        NetworkPolicyType = "DrMacAddress"
	AutomaticDNS        NetworkPolicyType = "AutomaticDNS"
	InterfaceConstraint NetworkPolicyType = "InterfaceConstraint"
	ProviderAddress     NetworkPolicyType = "ProviderAddress"
)

NetworkPolicyType const

type NetworkType

type NetworkType string

NetworkType are various networks.

const (
	NAT         NetworkType = "NAT"
	Transparent NetworkType = "Transparent"
	L2Bridge    NetworkType = "L2Bridge"
	L2Tunnel    NetworkType = "L2Tunnel"
	ICS         NetworkType = "ICS"
	Private     NetworkType = "Private"
	Overlay     NetworkType = "Overlay"
)

NetworkType const

type OutboundNatPolicySetting

type OutboundNatPolicySetting struct {
	VirtualIP  string   `json:",omitempty"`
	Exceptions []string `json:",omitempty"`
}

OutboundNatPolicySetting sets outbound Network Address Translation on an Endpoint.

type PolicyEndpointRequest

type PolicyEndpointRequest struct {
	Policies []EndpointPolicy `json:",omitempty"`
}

type PortMappingPolicySetting

type PortMappingPolicySetting struct {
	Protocol     uint32 `json:",omitempty"` // EX: TCP = 6, UDP = 17
	InternalPort uint16 `json:",omitempty"`
	ExternalPort uint16 `json:",omitempty"`
	VIP          string `json:",omitempty"`
}

PortMappingPolicySetting defines Port Mapping (NAT)

type PortnameEndpointPolicySetting

type PortnameEndpointPolicySetting struct {
	Name string `json:",omitempty"`
}

PortnameEndpointPolicySetting sets the port name for an endpoint.

type ProviderAddressEndpointPolicySetting

type ProviderAddressEndpointPolicySetting struct {
	ProviderAddress string `json:",omitempty"`
}

ProviderAddressEndpointPolicySetting sets the PA for an endpoint.

type QosPolicySetting

type QosPolicySetting struct {
	MaximumOutgoingBandwidthInBytes uint64
}

QosPolicySetting sets Quality of Service bandwidth caps on an Endpoint.

type RequestType

type RequestType string

RequestType are the different operations performed to settings. Used to update the settings of Endpoint/Namespace objects.

var (
	// RequestTypeAdd adds the provided settings object.
	RequestTypeAdd RequestType = "Add"
	// RequestTypeRemove removes the provided settings object.
	RequestTypeRemove RequestType = "Remove"
	// RequestTypeUpdate replaces settings with the ones provided.
	RequestTypeUpdate RequestType = "Update"
	// RequestTypeRefresh refreshes the settings provided.
	RequestTypeRefresh RequestType = "Refresh"
)

type Route

type Route struct {
	NextHop           string `json:",omitempty"`
	DestinationPrefix string `json:",omitempty"`
	Metric            uint16 `json:",omitempty"`
}

Route is assoicated with a subnet.

type RuleType

type RuleType string

RuleType associated with ACLs. Value is either Host (WFP) or Switch (VFP).

type SDNRoutePolicySetting

type SDNRoutePolicySetting struct {
	DestinationPrefix string `json:",omitempty"`
	NextHop           string `json:",omitempty"`
	NeedEncap         bool   `json:",omitempty"`
}

SDNRoutePolicySetting sets SDN Route on an Endpoint.

type SchemaVersion

type SchemaVersion = Version // hcnglobals.go

SchemaVersion for HCN Objects/Queries.

type SourceMacAddressNetworkPolicySetting

type SourceMacAddressNetworkPolicySetting struct {
	SourceMacAddress string `json:",omitempty"`
}

SourceMacAddressNetworkPolicySetting sets source MAC for a network.

type Subnet

type Subnet struct {
	IpAddressPrefix string            `json:",omitempty"`
	Policies        []json.RawMessage `json:",omitempty"`
	Routes          []Route           `json:",omitempty"`
}

Subnet is assoicated with a Ipam.

type SubnetPolicy

type SubnetPolicy struct {
	Type     SubnetPolicyType `json:""`
	Settings json.RawMessage  `json:",omitempty"`
}

SubnetPolicy is a collection of Policy settings for a Subnet.

type SubnetPolicyType

type SubnetPolicyType string

SubnetPolicyType are the potential Policies that apply to Subnets.

const (
	VLAN SubnetPolicyType = "VLAN"
	VSID SubnetPolicyType = "VSID"
)

SubnetPolicyType const

type SupportedFeatures

type SupportedFeatures struct {
	Acl AclFeatures `json:"ACL"`
	Api ApiSupport  `json:"API"`
}

SupportedFeatures are the features provided by the Service.

func GetSupportedFeatures

func GetSupportedFeatures() SupportedFeatures

GetSupportedFeatures returns the features supported by the Service.

type VSwitchExtensionNetworkPolicySetting

type VSwitchExtensionNetworkPolicySetting struct {
	ExtensionID string `json:",omitempty"`
	Enable      bool   `json:",omitempty"`
}

VSwitchExtensionNetworkPolicySetting enables/disabled VSwitch extensions for a network.

type Version

type Version struct {
	Major int `json:"Major"`
	Minor int `json:"Minor"`
}

Version is the HCN Service version.

type VlanPolicySetting

type VlanPolicySetting struct {
	IsolationId uint32 `json:","`
}

VlanPolicySetting isolates a subnet with VLAN tagging.

type VsidPolicySetting

type VsidPolicySetting struct {
	IsolationId uint32 `json:","`
}

VsidPolicySetting isolates a subnet with VSID tagging.

Source Files

hcn.go hcnendpoint.go hcnerrors.go hcnglobals.go hcnloadbalancer.go hcnnamespace.go hcnnetwork.go hcnpolicy.go hcnsupport.go zsyscall_windows.go

Version
v0.7.6
Published
Sep 26, 2018
Platform
windows/amd64
Imports
9 packages
Last checked
17 minutes ago

Tools for package owners.