func GetPortMappingPolicy()

in network/policy.go [61:86]


func GetPortMappingPolicy(externalPort int, internalPort int, protocol string, hostIp string, flags uint32) (Policy, error) {
	// protocol can be passed either as a number or a name
	protocolInt, err := GetPortEnumValue(protocol)
	if err != nil {
		return Policy{}, err
	}

	portMappingPolicy := hcn.PortMappingPolicySetting{
		ExternalPort: uint16(externalPort),
		InternalPort: uint16(internalPort),
		Protocol:     protocolInt,
		VIP:          hostIp,
		Flags:        hcn.NatFlags(flags),
	}
	rawPolicy, _ := json.Marshal(portMappingPolicy)
	endpointPolicy := hcn.EndpointPolicy{
		Type:     hcn.PortMapping,
		Settings: rawPolicy,
	}

	rawData, _ := json.Marshal(endpointPolicy)
	return Policy{
		Type: EndpointPolicy,
		Data: rawData,
	}, nil
}