// Copyright 2019 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.
library fuchsia.net.dhcp;

using fuchsia.net;

/// A DHCP duration value, in seconds. As specified in
/// https://tools.ietf.org/html/rfc2131#section-3.3, DHCP duration values are
/// relative times.
alias Duration = uint32;

/// A DHCP option field of IP addresses.
///
/// Per https://tools.ietf.org/html/rfc2132#section-2:
///
///   All other options are variable-length with a length octet following the tag octet.
///
/// The maximum length is given by 0xFF/sizeof([`fuchsia.net.Ipv4Address`]).
alias Addresses = vector<fuchsia.net.Ipv4Address>:63;

/// A DHCP option field of ASCII characters.
///
/// Per https://tools.ietf.org/html/rfc2132#section-2:
///
///   All other options are variable-length with a length octet following the tag octet.
///
/// Valid iff it consists of characters from the ASCII character set.
alias AsciiString = string:255;

/// A indication of which DHCP message field should be used to store additional options.
type OptionOverloadValue = strict enum : byte {
    /// The file DHCP field.
    FILE = 1;
    /// The sname DHCP field.
    SNAME = 2;
    /// Both file and sname DHCP fields.
    BOTH = 3;
};

/// A NetBIOS over TCP/IP node type as defined in RFC 1001/1002. This bitflag is for use with the
/// NetBiosOverTcpipNodeType option.
type NodeTypes = strict bits : byte {
    /// A B node type.
    B_NODE = 0x1;
    /// A P node type.
    P_NODE = 0x2;
    /// A M node type.
    M_NODE = 0x4;
    /// A H node type.
    H_NODE = 0x8;
};

/// The type of DHCP message. The DHCP protocol requires that all messages identify
/// their type by including the MessageType option. These values are specified
/// in https://tools.ietf.org/html/rfc2132#section-9.6.
type MessageType = strict enum : byte {
    /// A DHCP Discover message.
    DHCPDISCOVER = 1;
    /// A DHCP Offer message.
    DHCPOFFER = 2;
    /// A DHCP Request message.
    DHCPREQUEST = 3;
    /// A DHCP Decline message.
    DHCPDECLINE = 4;
    /// A DHCP Ack message.
    DHCPACK = 5;
    /// A DHCP Nak message;
    DHCPNAK = 6;
    /// A DHCP Release message;
    DHCPRELEASE = 7;
    /// A DHCP Inform message.
    DHCPINFORM = 8;
};

/// A generic representation of client configuration parameters and DHCP settings. Options are the
/// mechanism by which the DHCP protocol communicates configuration parameters from a repository on
/// a DHCP server to DHCP clients, or by which DHCP clients and servers communicate data relevant to
/// a DHCP transaction.
/// All DHCP option values must have a length which can fit within a single byte, i.e. less than 256.
/// Options for which there is no reasonable administrator-configurable value have been omitted
/// from this xunion. The omitted options are:
/// * Pad - never has a value
/// * End - never has a value
/// * RequestedIpAddress - value always selected by the DHCP client.
/// * DhcpMessageType - value always determined by state of transaction between DHCP client and server.
/// * ServerIdentifier - value always determined by address to which the server is bound.
/// * ParameterRequestList - value always selected by the DHCP client.
/// * Message - value determined in response to runtime error.
/// * VendorClassIdentifer - value always selected by the DHCP client.
/// * ClientIdentifier - value always selected by the DHCP client.
type Option = flexible union {
    /// A 32-bit IPv4 subnet mask.
    1: subnet_mask fuchsia.net.Ipv4Address;

    /// The client's offset from UTC in seconds. A positive offset is east of the zero meridian, and
    /// a negative offset is west of the zero meridian.
    2: time_offset int32;

    /// A list of the routers in a client's subnet, listed in order of preference.
    3: router Addresses;

    /// A list of time servers available to the client, in order of preference.
    4: time_server Addresses;

    /// A list of IEN 116 Name servers available to the client, in order of preference.
    5: name_server Addresses;

    /// A list of Domain Name System servers available to the client, in order of preference;
    6: domain_name_server Addresses;

    /// A list of MIT-LCS UDP Log servers available to the client, in order of preference.
    7: log_server Addresses;

    /// A list of RFC 865 Cookie servers available to the client, in order of preference.
    8: cookie_server Addresses;

    /// A list of RFC 1179 Line Printer servers available to the client, in order of preference.
    9: lpr_server Addresses;

    /// A list of Imagen Impress servers available to the client, in order of preference.
    10: impress_server Addresses;

    /// A list of RFC 887 Resource Location servers available to the client, in order of preference.
    11: resource_location_server Addresses;

    /// The host name of the client, which may or may not be qualified with the local domain name.
    12: host_name AsciiString;

    /// The size of the client's default boot image in 512-octet blocks.
    13: boot_file_size uint16;

    /// The path name to the client's core dump in the event the client crashes.
    14: merit_dump_file AsciiString;

    /// The client's domain name for use in resolving hostnames in the DNS.
    15: domain_name AsciiString;

    /// The address of the client's swap server.
    16: swap_server fuchsia.net.Ipv4Address;

    /// The path name to the client's root disk.
    17: root_path AsciiString;

    /// The path name to a TFTP-retrievable file. This file contains data which can be interpreted
    /// as the BOOTP vendor-extension field. Unlike the BOOTP vendor-extension field, this file has
    /// an unconstrained length and any references to Tag 18 are ignored.
    18: extensions_path AsciiString;

    /// A flag which will enabled IP layer packet forwarding when true.
    19: ip_forwarding bool;

    /// A flag which will enable forwarding of IP packets with non-local source routes.
    20: non_local_source_routing bool;

    /// Policy filters for non-local source routing.
    /// A list of IP Address and Subnet Mask pairs. If an incoming source-routed packet has a
    /// next-hop that does not match one of these pairs, then the packet will be dropped.
    21: policy_filter Addresses;

    /// The maximum sized datagram that the client should be able to reassemble, in octets. The
    /// minimum legal value is 576.
    22: max_datagram_reassembly_size uint16;

    /// The default time-to-live to use on outgoing IP datagrams. The value must be between 1 and
    /// 255.
    23: default_ip_ttl byte;

    /// The timeout to be used when aging Path MTU values by the mechanism in RFC 1191.
    24: path_mtu_aging_timeout Duration;

    /// Table of MTU sizes for Path MTU Discovery.
    /// A list of MTU sizes, ordered from smallest to largest. The smallest value cannot be smaller
    /// than 68.
    25: path_mtu_plateau_table vector<uint16>:127;

    /// The MTU for the client's interface. Minimum value of 68.
    26: interface_mtu uint16;

    /// A flag indicating if all subents of the IP network to which the client is connected have the
    /// same MTU.
    27: all_subnets_local bool;

    /// The broadcast address of the client's subnet. Legal values are defined in RFC 1122.
    28: broadcast_address fuchsia.net.Ipv4Address;

    /// A flag indicating whether the client should perform subnet mask discovery via ICMP.
    29: perform_mask_discovery bool;

    /// A flag indicating whether the client should respond to subnet mask discovery requests via
    /// ICMP.
    30: mask_supplier bool;

    /// A flag indicating whether the client should solicit routers using Router Discovery as
    /// defined in RFC 1256.
    31: perform_router_discovery bool;

    /// The address to which the client should transmit Router Solicitation requests.
    32: router_solicitation_address fuchsia.net.Ipv4Address;

    /// Static Routes which the host should put in its routing cache.
    /// A list of Destination address/Next-hop address pairs defining static routes for the client's
    /// routing table. The routes should be listed in descending order of priority. It is illegal
    /// to use 0.0.0.0 as the destination in a static route.
    33: static_route Addresses;

    /// A flag specifying whether the client negotiate the use of trailers when using ARP, per RFC
    /// 893.
    34: trailer_encapsulation bool;

    /// The timeout for ARP cache entries.
    35: arp_cache_timeout Duration;

    /// A flag specifying that the client should use Ethernet v2 encapsulation when false, and IEEE
    /// 802.3 encapsulation when true.
    36: ethernet_encapsulation bool;

    /// The default time-to-live that the client should use for outgoing TCP segments. The minimum
    /// value is 1.
    37: tcp_default_ttl byte;

    /// The interval the client should wait before sending a TCP keepalive message. A
    /// value of 0 indicates that the client should not send keepalive messages unless specifically
    /// requested by an application.
    38: tcp_keepalive_interval Duration;

    /// A flag specifying whether the client should send TCP keepalive messages with an octet of
    /// garbage for compatibility with older implementations.
    39: tcp_keepalive_garbage bool;

    /// The name of the client's Network Information Service domain.
    40: network_information_service_domain AsciiString;

    /// A list of Network Information Service server addresses available to the client, listed in
    /// order of preference.
    41: network_information_servers Addresses;

    /// A list of Network Time Protocol (NTP) server addresses available to the client, listed in
    /// order of preference.
    42: network_time_protocol_servers Addresses;

    /// An opaque object of octets for exchanging vendor-specific information.
    43: vendor_specific_information vector<uint8>:255;

    /// A list of NetBIOS name server addresses available to the client, listed in order of
    /// preference.
    44: netbios_over_tcpip_name_server Addresses;

    /// A list of NetBIOS datagram distribution servers available to the client, listed in order of
    /// preference.
    45: netbios_over_tcpip_datagram_distribution_server Addresses;

    /// The NetBIOS node type which should be used by the client.
    46: netbios_over_tcpip_node_type NodeTypes;

    /// The NetBIOS over TCP/IP scope parameter, as defined in RFC 1001, for the client.
    47: netbios_over_tcpip_scope AsciiString;

    /// A list of X Window System Font server addresses available to the client, listed in order of
    /// preference.
    48: x_window_system_font_server Addresses;

    /// A list of X Window System Display Manager system addresses available to the client, listed
    /// in order of preference.
    49: x_window_system_display_manager Addresses;

    /// The name of the client's Network Information System+ domain.
    50: network_information_service_plus_domain AsciiString;

    /// A list of Network Information System+ server addresses available to the client, listed in
    /// order of preference.
    51: network_information_service_plus_servers Addresses;

    /// A list of mobile IP home agent addresses available to the client, listed in order of
    /// preference.
    52: mobile_ip_home_agent Addresses;

    /// A list of Simple Mail Transport Protocol (SMTP) server address available to the client,
    /// listed in order of preference.
    53: smtp_server Addresses;

    /// A list of Post Office Protocol (POP3) server addresses available to the client, listed in
    /// order of preference.
    54: pop3_server Addresses;

    /// A list Network News Transport Protocol (NNTP) server addresses available to the client,
    /// listed in order of preference.
    55: nntp_server Addresses;

    /// A list of default World Wide Web (WWW) server addresses available to the client, listed in
    /// order of preference.
    56: default_www_server Addresses;

    /// A list of default Finger server addresses available to the client, listed in order of
    /// preference.
    57: default_finger_server Addresses;

    /// A list of Internet Relay Chat server addresses available to the client, listed in order of
    /// preference.
    58: default_irc_server Addresses;

    /// A list of StreetTalk server addresses available to the client, listed in order of
    /// preference.
    59: streettalk_server Addresses;

    /// A list of StreetTalk Directory Assistance server addresses available to the client, listed
    /// in order of preference.
    60: streettalk_directory_assistance_server Addresses;

    /// An option specifying whether the `sname`, `file`, or both fields have been overloaded to
    /// carry DHCP options. If this option is present, the client interprets the additional fields
    /// after it concludes interpreting standard option fields.
    61: option_overload OptionOverloadValue;

    /// The TFTP server name available to the client. This option should be used when the `sname`
    /// field has been overloaded to carry options.
    62: tftp_server_name AsciiString;

    /// The bootfile name for the client. This option should be used when the `file` field has been
    /// overloaded to carry options.
    63: bootfile_name AsciiString;

    /// The maximum length in octets of a DHCP message that the participant is willing to accept.
    /// The minimum value is 576.
    64: max_dhcp_message_size uint16;

    /// The time interval after address assignment at which the client will transition
    /// to the Renewing state.
    65: renewal_time_value Duration;

    /// The time interval after address assignment at which the client will transition
    /// to the Rebinding state.
    66: rebinding_time_value Duration;
};

/// The code of a DHCP option to be retrieved by Server.GetOption(). The code
/// values are from https://tools.ietf.org/html/rfc2132 and the enum variants
/// have been listed in the order they are presented in the RFC.
type OptionCode = strict enum {
    SUBNET_MASK = 1;
    TIME_OFFSET = 2;
    ROUTER = 3;
    TIME_SERVER = 4;
    NAME_SERVER = 5;
    DOMAIN_NAME_SERVER = 6;
    LOG_SERVER = 7;
    COOKIE_SERVER = 8;
    LPR_SERVER = 9;
    IMPRESS_SERVER = 10;
    RESOURCE_LOCATION_SERVER = 11;
    HOST_NAME = 12;
    BOOT_FILE_SIZE = 13;
    MERIT_DUMP_FILE = 14;
    DOMAIN_NAME = 15;
    SWAP_SERVER = 16;
    ROOT_PATH = 17;
    EXTENSIONS_PATH = 18;
    IP_FORWARDING = 19;
    NON_LOCAL_SOURCE_ROUTING = 20;
    POLICY_FILTER = 21;
    MAX_DATAGRAM_REASSEMBLY_SIZE = 22;
    DEFAULT_IP_TTL = 23;
    PATH_MTU_AGING_TIMEOUT = 24;
    PATH_MTU_PLATEAU_TABLE = 25;
    INTERFACE_MTU = 26;
    ALL_SUBNETS_LOCAL = 27;
    BROADCAST_ADDRESS = 28;
    PERFORM_MASK_DISCOVERY = 29;
    MASK_SUPPLIER = 30;
    PERFORM_ROUTER_DISCOVERY = 31;
    ROUTER_SOLICITATION_ADDRESS = 32;
    STATIC_ROUTE = 33;
    TRAILER_ENCAPSULATION = 34;
    ARP_CACHE_TIMEOUT = 35;
    ETHERNET_ENCAPSULATION = 36;
    TCP_DEFAULT_TTL = 37;
    TCP_KEEPALIVE_INTERVAL = 38;
    TCP_KEEPALIVE_GARBAGE = 39;
    NETWORK_INFORMATION_SERVICE_DOMAIN = 40;
    NETWORK_INFORMATION_SERVERS = 41;
    NETWORK_TIME_PROTOCOL_SERVERS = 42;
    VENDOR_SPECIFIC_INFORMATION = 43;
    NETBIOS_OVER_TCPIP_NAME_SERVER = 44;
    NETBIOS_OVER_TCPIP_DATAGRAM_DISTRIBUTION_SERVER = 45;
    NETBIOS_OVER_TCPIP_NODE_TYPE = 46;
    NETBIOS_OVER_TCPIP_SCOPE = 47;
    X_WINDOW_SYSTEM_FONT_SERVER = 48;
    X_WINDOW_SYSTEM_DISPLAY_MANAGER = 49;
    NETWORK_INFORMATION_SERVICE_PLUS_DOMAIN = 64;
    NETWORK_INFORMATION_SERVICE_PLUS_SERVERS = 65;
    MOBILE_IP_HOME_AGENT = 68;
    SMTP_SERVER = 69;
    POP3_SERVER = 70;
    NNTP_SERVER = 71;
    DEFAULT_WWW_SERVER = 72;
    DEFAULT_FINGER_SERVER = 73;
    DEFAULT_IRC_SERVER = 74;
    STREETTALK_SERVER = 75;
    STREETTALK_DIRECTORY_ASSISTANCE_SERVER = 76;
    OPTION_OVERLOAD = 52;
    TFTP_SERVER_NAME = 66;
    BOOTFILE_NAME = 67;
    MAX_DHCP_MESSAGE_SIZE = 57;
    RENEWAL_TIME_VALUE = 58;
    REBINDING_TIME_VALUE = 59;
};
