blob: 9391fb82924768cf95047f850969c4dadf231551 [file] [log] [blame] [edit]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Code generated by third_party/go/regen-fidl; DO NOT EDIT.
// WARNING: This file is machine generated by fidlgen.
package net
import (
_bindings "syscall/zx/fidl"
)
const (
// The maximum length of a hostname, as per
// [RFC 1035 section 2.3.4](https://tools.ietf.org/html/rfc1035#section-2.3.4).
MaxHostnameSize uint64 = 255
)
type Hostname = string
type InterfaceId = uint64
type RouteMetric = uint32
var _ _bindings.Enum = IpVersion(0)
// IpVersion is an IP version.
type IpVersion uint32
const (
IpVersionV4 IpVersion = 1
IpVersionV6 IpVersion = 2
)
func (_ IpVersion) I_EnumValues() []IpVersion {
return []IpVersion{
IpVersionV4,
IpVersionV6,
}
}
func (_ IpVersion) I_EnumIsStrict() bool {
return true
}
func (x IpVersion) IsUnknown() bool {
switch x {
case 1:
return false
case 2:
return false
}
return true
}
func (x IpVersion) String() string {
switch x {
case 1:
return "V4"
case 2:
return "V6"
}
return "Unknown"
}
// Ipv4Address is expressed in network byte order, so the most significant byte
// ("127" in the address "127.0.0.1") will be at index 0.
type Ipv4Address struct {
_ struct{} `fidl:"s" fidl_size_v2:"4" fidl_alignment_v2:"1"`
Addr [4]uint8 `fidl_offset_v2:"0"`
}
var _mIpv4Address = _bindings.CreateLazyMarshaler(Ipv4Address{})
func (msg *Ipv4Address) Marshaler() _bindings.Marshaler {
return _mIpv4Address
}
// An IPv4 address with its subnet prefix length.
type Ipv4AddressWithPrefix struct {
_ struct{} `fidl:"s" fidl_size_v2:"5" fidl_alignment_v2:"1"`
// The IPv4 address.
Addr Ipv4Address `fidl_offset_v2:"0"`
// The prefix length. Must be in the range [0, 32].
PrefixLen uint8 `fidl_offset_v2:"4"`
}
var _mIpv4AddressWithPrefix = _bindings.CreateLazyMarshaler(Ipv4AddressWithPrefix{})
func (msg *Ipv4AddressWithPrefix) Marshaler() _bindings.Marshaler {
return _mIpv4AddressWithPrefix
}
// An IPv4 socket address, composed of an IPv4 address and a port.
//
// Inspired by the address definition in the [POSIX specification].
//
// [POSIX specification]: https://pubs.opengroup.org/onlinepubs/9699919799/
type Ipv4SocketAddress struct {
_ struct{} `fidl:"s" fidl_size_v2:"6" fidl_alignment_v2:"2"`
// IPv4 Address.
Address Ipv4Address `fidl_offset_v2:"0"`
// Transport-layer port.
Port uint16 `fidl_offset_v2:"4"`
}
var _mIpv4SocketAddress = _bindings.CreateLazyMarshaler(Ipv4SocketAddress{})
func (msg *Ipv4SocketAddress) Marshaler() _bindings.Marshaler {
return _mIpv4SocketAddress
}
// Ipv6Address is expressed in network byte order, so the most significant byte
// ("ff" in the address "ff02::1") will be at index 0.
type Ipv6Address struct {
_ struct{} `fidl:"s" fidl_size_v2:"16" fidl_alignment_v2:"1"`
Addr [16]uint8 `fidl_offset_v2:"0"`
}
var _mIpv6Address = _bindings.CreateLazyMarshaler(Ipv6Address{})
func (msg *Ipv6Address) Marshaler() _bindings.Marshaler {
return _mIpv6Address
}
// An IPv6 address with its subnet prefix length.
type Ipv6AddressWithPrefix struct {
_ struct{} `fidl:"s" fidl_size_v2:"17" fidl_alignment_v2:"1"`
// The IPv6 address.
Addr Ipv6Address `fidl_offset_v2:"0"`
// The prefix length. Must be in the range [0, 128].
PrefixLen uint8 `fidl_offset_v2:"16"`
}
var _mIpv6AddressWithPrefix = _bindings.CreateLazyMarshaler(Ipv6AddressWithPrefix{})
func (msg *Ipv6AddressWithPrefix) Marshaler() _bindings.Marshaler {
return _mIpv6AddressWithPrefix
}
// An IPV6 socket address, composed of an IPv6 address, a port, and a scope identifier.
//
// Inspired by the address definition in the [POSIX specification].
//
// [POSIX specification]: https://pubs.opengroup.org/onlinepubs/9699919799/
type Ipv6SocketAddress struct {
_ struct{} `fidl:"s" fidl_size_v2:"32" fidl_alignment_v2:"8"`
// IPv6 Address.
Address Ipv6Address `fidl_offset_v2:"0"`
// Transport-layer port.
Port uint16 `fidl_offset_v2:"16"`
// Provides a means to identify to which zone a non-global address belongs.
//
// A node may have interfaces attached to different zones of the same scope, for example
// different link-local zones are disambiguated by the use of a `zone_index` providing the
// interface identifier.
//
// `zone_index` 0 is the default zone.
//
// See [RFC 4007] for terminology and examples.
//
// [RFC 4007]: https://tools.ietf.org/html/rfc4007
ZoneIndex uint64 `fidl_offset_v2:"24"`
}
var _mIpv6SocketAddress = _bindings.CreateLazyMarshaler(Ipv6SocketAddress{})
func (msg *Ipv6SocketAddress) Marshaler() _bindings.Marshaler {
return _mIpv6SocketAddress
}
// A MAC address used to identify a network interface on the data link layer within the network.
type MacAddress struct {
_ struct{} `fidl:"s" fidl_size_v2:"6" fidl_alignment_v2:"1"`
Octets [6]uint8 `fidl_offset_v2:"0"`
}
var _mMacAddress = _bindings.CreateLazyMarshaler(MacAddress{})
func (msg *MacAddress) Marshaler() _bindings.Marshaler {
return _mMacAddress
}
// An IP address with its subnet prefix length.
type Subnet struct {
_ struct{} `fidl:"s" fidl_size_v2:"24" fidl_alignment_v2:"8"`
// The IPv4 or IPv6 address.
Addr IpAddress `fidl_offset_v2:"0"`
// The number of bits set to 1 in the subnet mask.
//
// When [`addr`] is [`IpAddress.ipv4`], must be in the range `[0, 32]`.
// When [`addr`] is [`IpAddress.ipv6`], must be in the range `[0, 128]`.
PrefixLen uint8 `fidl_offset_v2:"16"`
}
var _mSubnet = _bindings.CreateLazyMarshaler(Subnet{})
func (msg *Subnet) Marshaler() _bindings.Marshaler {
return _mSubnet
}
type I_ipAddressTag uint64
const (
IpAddressIpv4 = 1 // 0x00000001
IpAddressIpv6 = 2 // 0x00000002
)
// Represents an IP address that may be either v4 or v6.
type IpAddress struct {
I_ipAddressTag `fidl:"x!" fidl_size_v2:"16" fidl_alignment_v2:"8" fidl_resource:"false"`
Ipv4 Ipv4Address `fidl_ordinal:"1"`
Ipv6 Ipv6Address `fidl_ordinal:"2"`
}
var _mIpAddress = _bindings.CreateLazyMarshaler(IpAddress{})
func (msg *IpAddress) Marshaler() _bindings.Marshaler {
return _mIpAddress
}
func (_m *IpAddress) reset() {
switch _m.I_ipAddressTag {
case 1:
var _zeroed Ipv4Address
_m.Ipv4 = _zeroed
case 2:
var _zeroed Ipv6Address
_m.Ipv6 = _zeroed
}
}
func (_m *IpAddress) Which() I_ipAddressTag {
return _m.I_ipAddressTag
}
func (_m *IpAddress) Ordinal() uint64 {
return uint64(_m.I_ipAddressTag)
}
func (_m *IpAddress) SetIpv4(ipv4 Ipv4Address) {
_m.reset()
_m.I_ipAddressTag = IpAddressIpv4
_m.Ipv4 = ipv4
}
func IpAddressWithIpv4(ipv4 Ipv4Address) IpAddress {
var _u IpAddress
_u.SetIpv4(ipv4)
return _u
}
func (_m *IpAddress) SetIpv6(ipv6 Ipv6Address) {
_m.reset()
_m.I_ipAddressTag = IpAddressIpv6
_m.Ipv6 = ipv6
}
func IpAddressWithIpv6(ipv6 Ipv6Address) IpAddress {
var _u IpAddress
_u.SetIpv6(ipv6)
return _u
}
type I_socketAddressTag uint64
const (
SocketAddressIpv4 = 1 // 0x00000001
SocketAddressIpv6 = 2 // 0x00000002
)
// Represents an IP socket address that may be either v4 or v6.
type SocketAddress struct {
I_socketAddressTag `fidl:"x!" fidl_size_v2:"16" fidl_alignment_v2:"8" fidl_resource:"false"`
Ipv4 Ipv4SocketAddress `fidl_ordinal:"1"`
Ipv6 Ipv6SocketAddress `fidl_ordinal:"2"`
}
var _mSocketAddress = _bindings.CreateLazyMarshaler(SocketAddress{})
func (msg *SocketAddress) Marshaler() _bindings.Marshaler {
return _mSocketAddress
}
func (_m *SocketAddress) reset() {
switch _m.I_socketAddressTag {
case 1:
var _zeroed Ipv4SocketAddress
_m.Ipv4 = _zeroed
case 2:
var _zeroed Ipv6SocketAddress
_m.Ipv6 = _zeroed
}
}
func (_m *SocketAddress) Which() I_socketAddressTag {
return _m.I_socketAddressTag
}
func (_m *SocketAddress) Ordinal() uint64 {
return uint64(_m.I_socketAddressTag)
}
func (_m *SocketAddress) SetIpv4(ipv4 Ipv4SocketAddress) {
_m.reset()
_m.I_socketAddressTag = SocketAddressIpv4
_m.Ipv4 = ipv4
}
func SocketAddressWithIpv4(ipv4 Ipv4SocketAddress) SocketAddress {
var _u SocketAddress
_u.SetIpv4(ipv4)
return _u
}
func (_m *SocketAddress) SetIpv6(ipv6 Ipv6SocketAddress) {
_m.reset()
_m.I_socketAddressTag = SocketAddressIpv6
_m.Ipv6 = ipv6
}
func SocketAddressWithIpv6(ipv6 Ipv6SocketAddress) SocketAddress {
var _u SocketAddress
_u.SetIpv6(ipv6)
return _u
}