DHCPv4.enum.ps1
Write-Devel "Enum PSScriptRoot = $PSScriptRoot" # https://www.ietf.org/rfc/rfc2131.txt $Global:DHCPv4PacketStructure = [ordered]@{ # code = length (in bytes) op = 1 htype = 1 hlen = 1 hops = 1 xid = 4 flags = 2 ciaddr = 4 yiaddr = 4 siaddr = 4 giaddr = 4 chaddr = 16 sname = 64 file = 128 } # https://www.ietf.org/rfc/rfc2132.txt # $DHCPv4OptionStructure = [ordered]@{ # # code = name, length, type, help # # @see @url http://www.ietf.org/rfc/rfc2132.txt §3.1 # 0 = @('Pad', 1, "int", "The pad option can be used to cause subsequent fields to align on word boundaries.") # # @see @url http://www.ietf.org/rfc/rfc2132.txt §3.3 # 1 = @('SubnetMask', 4, 'ipaddress', "The subnet mask option specifies the client's subnet mask as per RFC 950 [5].") # # @see @url http://www.ietf.org/rfc/rfc2132.txt §3.4 # 2 = @('TimeOffset', 4, 'int', "The time offset field specifies the offset of the client's subnet in seconds from Coordinated Universal Time (UTC). The offset is expressed as a two's complement 32-bit integer. A positive offset indicates a location east of the zero meridian and a negative offset indicates a location west of the zero meridian.") # # @see @url http://www.ietf.org/rfc/rfc2132.txt §3.5 # 3 = @('Router', 4, 'ipaddress', "The router option specifies a list of IP addresses for routers on the client's subnet. Routers SHOULD be listed in order of preference.") # # @see @url http://www.ietf.org/rfc/rfc2132.txt §3.6 # 4 = @('TimeServer', 4, 'ipaddress', "The time server option specifies a list of RFC 868 [6] time servers available to the client. Servers SHOULD be listed in order of preference.") # # @see @url http://www.ietf.org/rfc/rfc2132.txt §3.2 # 255 = @('End', 1, "int", "The end option marks the end of valid information in the vendor field. Subsequent octets should be filled with pad options.") # } # https://www.ietf.org/rfc/rfc2132.txt # 9.6. DHCP Message Type enum DHCPv4MessageType { DHCPDISCOVER = 1 DHCPOFFER = 2 DHCPREQUEST = 3 DHCPDECLINE = 4 DHCPACK = 5 DHCPNAK = 6 DHCPRELEASE = 7 DHCPINFORM = 8 } # https://www.ietf.org/rfc/rfc2132.txt # 3.1. Pad Option $Global:PAD = 0 # https://www.ietf.org/rfc/rfc2132.txt # 3.2. End Option $Global:END = 255 # @url http://www.ietf.org/rfc/rfc2131.txt §3 [Page 13] $Global:DHCP_MAGIC_COOKIE = @(99,130,83,99) # # number of options # # @see @url http://www.ietf.org/rfc/rfc2132.txt enum DHCPv4OptionCode { PAD = 0 # RFC section 3 SubnetMask = 1 TimeOffset = 2 Router = 3 TimeServer = 4 NameServer = 5 DomainNameServer = 6 LogServer = 7 CookieServer = 8 LPRServer = 9 ImpressServer = 10 ResourceLocationServer = 11 Hostname = 12 BootFileSize = 13 MeritDump = 14 DomainName = 15 SwapServer = 16 RootPath = 17 ExtensionsPath = 18 # RFC section 4 IPForwarding = 19 NonLocalSourceRouting = 20 PolicyFilter = 21 MaximumDatagramReassemblySize = 22 DefaultIPTTL = 23 PathMTUAgingTimeout = 24 PathMTUPlateauTable = 25 # RFC section 5 InterfaceMTU = 26 AllSubnetsareLocal = 27 BroadcastAddress = 28 PerformMaskDiscovery = 29 MaskSupplier = 30 PerformRouteriscovery = 31 RouterSolicitationddress = 32 StaticRoute = 33 # RFC section 6 TrailerEncapsulation = 34 ARPCacheimeout = 35 EthernetEncapsulation = 36 # RFC section 7 TCPDefaultTL = 37 TCPKeepaliventerval = 38 TCPKeepalivearbage = 39 # RFC section 8 NISDomain = 40 NISServer = 41 NTPServer = 42 VendorSpecificInformation = 43 NetBIOSNameServer = 44 NetBIOSDatagramDistributionServer = 45 NetBIOSNodeType = 46 NetBIOSScope = 47 XFontServer = 48 XDisplayManager = 49 NISPLUSDomain = 64 NISPLUSServer = 65 MobileIPHomeAgent = 68 SMTPServer = 69 POP3Server = 70 NNTPServer = 71 WWWServer = 72 FingerServer = 73 IRCServer = 74 StreetTalkServer = 75 STDAServer = 76 # RFC section 9 RequestedIPAddress = 50 IPAddressLeaseTime = 51 OptionOverload = 52 DHCPMessageType = 53 ServerIdentifier = 54 ParameterRequestList = 55 Message = 56 MaximumDHCPMessageSize = 57 RenewalTimeValue = 58 RebindingTimeValue = 59 Vendorclassidentifier = 60 ClientIdentifier = 61 TFTPservername = 66 Bootfilename = 67 # END = 255 } # DHCPv4 options listed in a hashtable # @see @url http://www.ietf.org/rfc/rfc2132.txt $Global:hDHCPv4Options = @{ 'PAD' = @{ 'code' = 0; 'type' = 'none'; 'length' = 1; 'label' = "PAD"; "value" = 0 } # RFC section 3 'SubnetMask' = @{ 'code' = 1; 'type' = 'ip'; 'length' = 4; 'label' = "SubnetMask" } 'TimeOffset' = @{ 'code' = 2; 'type' = 'int'; 'length' = 4; 'label' = "TimeOffset" } 'Router' = @{ 'code' = 3; 'type' = 'ip-array'; 'length' = 0; 'label' = "Router" } 'TimeServer' = @{ 'code' = 4; 'type' = 'ip-array'; 'length' = 0; 'label' = "TimeServer" } 'NameServer' = @{ 'code' = 5; 'type' = 'ip-array'; 'length' = 0; 'label' = "NameServer" } 'DomainNameServer' = @{ 'code' = 6; 'type' = 'ip-array'; 'length' = 0; 'label' = "DomainNameServer" } 'LogServer' = @{ 'code' = 7; 'type' = 'ip-array'; 'length' = 0; 'label' = "LogServer" } 'CookieServer' = @{ 'code' = 8; 'type' = 'ip-array'; 'length' = 0; 'label' = "CookieServer" } 'LPRServer' = @{ 'code' = 9; 'type' = 'ip-array'; 'length' = 0; 'label' = "LPRServer" } 'ImpressServer' = @{ 'code' = 10; 'type' = 'ip-array'; 'length' = 0; 'label' = "ImpressServer" } 'ResourceLocationServer' = @{ 'code' = 11; 'type' = 'ip-array'; 'length' = 0; 'label' = "ResourceLocationServer" } 'Hostname' = @{ 'code' = 12; 'type' = 'string'; 'length' = 0; 'label' = "Hostname" } 'BootFileSize' = @{ 'code' = 13; 'type' = 'int'; 'length' = 2; 'label' = "BootFileSize" } 'MeritDump' = @{ 'code' = 14; 'type' = 'string'; 'length' = 0; 'label' = "MeritDump" } 'DomainName' = @{ 'code' = 15; 'type' = 'string'; 'length' = 0; 'label' = "DomainName" } 'SwapServer' = @{ 'code' = 16; 'type' = 'ip'; 'length' = 4; 'label' = "SwapServer" } 'RootPath' = @{ 'code' = 17; 'type' = 'string'; 'length' = 0; 'label' = "RootPath" } 'ExtensionsPath' = @{ 'code' = 18; 'type' = 'string'; 'length' = 0; 'label' = "ExtensionsPath" } # RFC section 4 'IPForwarding' = @{ 'code' = 19; 'type' = 'bool'; 'length' = 1; 'label' = "IPForwarding" } 'NonLocalSourceRouting' = @{ 'code' = 20; 'type' = 'bool'; 'length' = 1; 'label' = "NonLocalSourceRouting" } 'PolicyFilter' = @{ 'code' = 21; 'type' = 'ip-array'; 'length' = 0; 'label' = "PolicyFilter" } 'MaximumDatagramReassemblySize' = @{'code' = 22; 'type' = 'int'; 'length' = 2; 'label' = "MaximumDatagramReassemblySize" } 'DefaultIPTTL' = @{ 'code' = 23; 'type' = 'int'; 'length' = 1; 'label' = "DefaultIPTTL" } 'PathMTUAgingTimeout' = @{ 'code' = 24; 'type' = 'int'; 'length' = 4; 'label' = "PathMTUAgingTimeout" } 'PathMTUPlateauTable' = @{ 'code' = 25; 'type' = 'int-array'; 'length' = 0; 'label' = "PathMTUPlateauTable" } # RFC section 5 'InterfaceMTU' = @{ 'code' = 26; 'type' = 'int'; 'length' = 2; 'label' = "InterfaceMTU" } 'AllSubnetsareLocal' = @{ 'code' = 27; 'type' = 'bool'; 'length' = 1; 'label' = "AllSubnetsareLocal" } 'BroadcastAddress' = @{ 'code' = 28; 'type' = 'ip'; 'length' = 4; 'label' = "BroadcastAddress" } 'PerformMaskDiscovery' = @{ 'code' = 29; 'type' = 'bool'; 'length' = 1; 'label' = "PerformMaskDiscovery" } 'MaskSupplier' = @{ 'code' = 30; 'type' = 'bool'; 'length' = 1; 'label' = "MaskSupplier" } 'PerformRouteriscovery' = @{ 'code' = 31; 'type' = 'bool'; 'length' = 1; 'label' = "PerformRouteriscovery" } 'RouterSolicitationddress' = @{ 'code' = 32; 'type' = 'ip'; 'length' = 4; 'label' = "RouterSolicitationddress" } 'StaticRoute' = @{ 'code' = 33; 'type' = 'ip-array'; 'length' = 0; 'label' = "StaticRoute" } # RFC section 6 'TrailerEncapsulation' = @{ 'code' = 34; 'type' = 'bool'; 'length' = 1; 'label' = "TrailerEncapsulation" } 'ARPCacheimeout' = @{ 'code' = 35; 'type' = 'int'; 'length' = 4; 'label' = "ARPCacheimeout" } 'EthernetEncapsulation' = @{ 'code' = 36; 'type' = 'bool'; 'length' = 1; 'label' = "EthernetEncapsulation" } # RFC section 7 'TCPDefaultTL' = @{ 'code' = 37; 'type' = 'int'; 'length' = 1; 'label' = "TCPDefaultTL" } 'TCPKeepaliventerval' = @{ 'code' = 38; 'type' = 'int'; 'length' = 4; 'label' = "TCPKeepaliventerval" } 'TCPKeepalivearbage' = @{ 'code' = 39; 'type' = 'bool'; 'length' = 1; 'label' = "TCPKeepalivearbage" } # RFC section 8 'NISDomain' = @{ 'code' = 40; 'type' = 'string'; 'length' = 0; 'label' = "NISDomain" } 'NISServer' = @{ 'code' = 41; 'type' = 'ip-array'; 'length' = 0; 'label' = "NISServer" } 'NTPServer' = @{ 'code' = 42; 'type' = 'ip-array'; 'length' = 0; 'label' = "NTPServer" } 'VendorSpecificInformation' = @{ 'code' = 43; 'type' = 'raw'; 'length' = 0; 'label' = "VendorSpecificInformation" } 'NetBIOSNameServer' = @{ 'code' = 44; 'type' = 'ip-array'; 'length' = 0; 'label' = "NetBIOSNameServer" } 'NetBIOSDatagramDistributionServer' = @{'code' = 45;'type' = 'ip-array'; 'length' = 0; 'label' = "NetBIOSDatagramDistributionServer" } 'NetBIOSNodeType' = @{ 'code' = 46; 'type' = 'enum'; 'length' = 1; 'label' = "NetBIOSNodeType" } 'NetBIOSScope' = @{ 'code' = 47; 'type' = 'string'; 'length' = 0; 'label' = "NetBIOSScope" } 'XFontServer' = @{ 'code' = 48; 'type' = 'ip-array'; 'length' = 0; 'label' = "XFontServer" } 'XDisplayManager' = @{ 'code' = 49; 'type' = 'ip-array'; 'length' = 0; 'label' = "XDisplayManager" } 'NISPLUSDomain' = @{ 'code' = 64; 'type' = 'string'; 'length' = 0; 'label' = "NISPLUSDomain" } 'NISPLUSServer' = @{ 'code' = 65; 'type' = 'ip-array'; 'length' = 0; 'label' = "NISPLUSServer" } 'MobileIPHomeAgent' = @{ 'code' = 68; 'type' = 'ip-array'; 'length' = 0; 'label' = "MobileIPHomeAgent" } 'SMTPServer' = @{ 'code' = 69; 'type' = 'ip-array'; 'length' = 0; 'label' = "SMTPServer" } 'POP3Server' = @{ 'code' = 70; 'type' = 'ip-array'; 'length' = 0; 'label' = "POP3Server" } 'NNTPServer' = @{ 'code' = 71; 'type' = 'ip-array'; 'length' = 0; 'label' = "NNTPServer" } 'WWWServer' = @{ 'code' = 72; 'type' = 'ip-array'; 'length' = 0; 'label' = "WWWServer" } 'FingerServer' = @{ 'code' = 73; 'type' = 'ip-array'; 'length' = 0; 'label' = "FingerServer" } 'IRCServer' = @{ 'code' = 74; 'type' = 'ip-array'; 'length' = 0; 'label' = "IRCServer" } 'StreetTalkServer' = @{ 'code' = 75; 'type' = 'ip-array'; 'length' = 0; 'label' = "StreetTalkServer" } 'STDAServer' = @{ 'code' = 76; 'type' = 'ip-array'; 'length' = 0; 'label' = "STDAServer" } # RFC section 9 'RequestedIPAddress' = @{ 'code' = 50; 'type' = 'ip'; 'length' = 4; 'label' = "RequestedIPAddress" } 'IPAddressLeaseTime' = @{ 'code' = 51; 'type' = 'int'; 'length' = 4; 'label' = "IPAddressLeaseTime" } 'OptionOverload' = @{ 'code' = 52; 'type' = 'enum'; 'length' = 1; 'label' = "OptionOverload" } 'DHCPMessageType' = @{ 'code' = 53; 'type' = 'enum'; 'length' = 1; 'label' = "DHCPMessageType" } 'ServerIdentifier' = @{ 'code' = 54; 'type' = 'ip'; 'length' = 4; 'label' = "ServerIdentifier" } 'ParameterRequestList' = @{ 'code' = 55; 'type' = 'array'; 'length' = 0; 'label' = "ParameterRequestList" } 'Message' = @{ 'code' = 56; 'type' = 'string'; 'length' = 0; 'label' = "Message" } 'MaximumDHCPMessageSize' = @{ 'code' = 57; 'type' = 'int'; 'length' = 2; 'label' = "MaximumDHCPMessageSize" } 'RenewalTimeValue' = @{ 'code' = 58; 'type' = 'int'; 'length' = 4; 'label' = "RenewalTimeValue" } 'RebindingTimeValue' = @{ 'code' = 59; 'type' = 'int'; 'length' = 4; 'label' = "RebindingTimeValue" } 'Vendorclassidentifier' = @{ 'code' = 60; 'type' = 'string'; 'length' = 0; 'label' = "Vendorclassidentifier" } 'ClientIdentifier' = @{ 'code' = 61; 'type' = 'raw'; 'length' = 0; 'label' = "ClientIdentifier" } 'TFTPservername' = @{ 'code' = 66; 'type' = 'string'; 'length' = 0; 'label' = "TFTPservername" } 'Bootfilename' = @{ 'code' = 67; 'type' = 'string'; 'length' = 0; 'label' = "Bootfilename" } # 'END' = @{ 'code' = 255; 'type' = 'none'; 'length' = 1; 'label' = "END" } } # DHCPv4 options listed in an array # @see @url http://www.ietf.org/rfc/rfc2132.txt $Global:aDHCPv4Options = @( @{ 'code' = 0; 'type' = 'string'; 'length' = 1; 'label' = "PAD"; "value" = 0 } # RFC section 3 @{ 'code' = 1; 'type' = 'string'; 'length' = 4; 'label' = "SubnetMask" } @{ 'code' = 2; 'type' = 'string'; 'length' = 4; 'label' = "TimeOffset" } @{ 'code' = 3; 'type' = 'string'; 'length' = 0; 'label' = "Router" } @{ 'code' = 4; 'type' = 'string'; 'length' = 0; 'label' = "TimeServer" } @{ 'code' = 5; 'type' = 'string'; 'length' = 0; 'label' = "NameServer" } @{ 'code' = 6; 'type' = 'string'; 'length' = 0; 'label' = "DomainNameServer" } @{ 'code' = 7; 'type' = 'string'; 'length' = 0; 'label' = "LogServer" } @{ 'code' = 8; 'type' = 'string'; 'length' = 0; 'label' = "CookieServer" } @{ 'code' = 9; 'type' = 'string'; 'length' = 0; 'label' = "LPRServer" } @{ 'code' = 10; 'type' = 'string'; 'length' = 0; 'label' = "ImpressServer" } @{ 'code' = 11; 'type' = 'string'; 'length' = 0; 'label' = "ResourceLocationServer" } @{ 'code' = 12; 'type' = 'string'; 'length' = 0; 'label' = "Hostname" } @{ 'code' = 13; 'type' = 'string'; 'length' = 2; 'label' = "BootFileSize" } @{ 'code' = 14; 'type' = 'string'; 'length' = 0; 'label' = "MeritDump" } @{ 'code' = 15; 'type' = 'string'; 'length' = 0; 'label' = "DomainName" } @{ 'code' = 16; 'type' = 'string'; 'length' = 0; 'label' = "SwapServer" } @{ 'code' = 17; 'type' = 'string'; 'length' = 0; 'label' = "RootPath" } @{ 'code' = 18; 'type' = 'string'; 'length' = 0; 'label' = "ExtensionsPath" } # RFC section 4 @{ 'code' = 19; 'type' = 'string'; 'length' = 1; 'label' = "IPForwarding" } @{ 'code' = 20; 'type' = 'string'; 'length' = 1; 'label' = "NonLocalSourceRouting" } @{ 'code' = 21; 'type' = 'string'; 'length' = 0; 'label' = "PolicyFilter" } @{ 'code' = 22; 'type' = 'string'; 'length' = 2; 'label' = "MaximumDatagramReassemblySize" } @{ 'code' = 23; 'type' = 'string'; 'length' = 1; 'label' = "DefaultIPTTL" } @{ 'code' = 24; 'type' = 'string'; 'length' = 4; 'label' = "PathMTUAgingTimeout" } @{ 'code' = 25; 'type' = 'string'; 'length' = 0; 'label' = "PathMTUPlateauTable" } # RFC section 5 @{ 'code' = 26; 'type' = 'string'; 'length' = 2; 'label' = "InterfaceMTU" } @{ 'code' = 27; 'type' = 'string'; 'length' = 1; 'label' = "AllSubnetsareLocal" } @{ 'code' = 28; 'type' = 'string'; 'length' = 4; 'label' = "BroadcastAddress" } @{ 'code' = 29; 'type' = 'string'; 'length' = 1; 'label' = "PerformMaskDiscovery" } @{ 'code' = 30; 'type' = 'string'; 'length' = 1; 'label' = "MaskSupplier" } @{ 'code' = 31; 'type' = 'string'; 'length' = 1; 'label' = "PerformRouteriscovery" } @{ 'code' = 32; 'type' = 'string'; 'length' = 4; 'label' = "RouterSolicitationddress" } @{ 'code' = 33; 'type' = 'string'; 'length' = 0; 'label' = "StaticRoute" } # RFC section 6 @{ 'code' = 34; 'type' = 'string'; 'length' = 1; 'label' = "TrailerEncapsulation" } @{ 'code' = 35; 'type' = 'string'; 'length' = 4; 'label' = "ARPCacheimeout" } @{ 'code' = 36; 'type' = 'string'; 'length' = 1; 'label' = "EthernetEncapsulation" } # RFC section 7 @{ 'code' = 37; 'type' = 'string'; 'length' = 1; 'label' = "TCPDefaultTL" } @{ 'code' = 38; 'type' = 'string'; 'length' = 4; 'label' = "TCPKeepaliventerval" } @{ 'code' = 39; 'type' = 'string'; 'length' = 1; 'label' = "TCPKeepalivearbage" } # RFC section 8 @{ 'code' = 40; 'type' = 'string'; 'length' = 0; 'label' = "NISDomain" } @{ 'code' = 41; 'type' = 'string'; 'length' = 0; 'label' = "NISServer" } @{ 'code' = 42; 'type' = 'string'; 'length' = 0; 'label' = "NTPServer" } @{ 'code' = 43; 'type' = 'string'; 'length' = 0; 'label' = "VendorSpecificInformation" } @{ 'code' = 44; 'type' = 'string'; 'length' = 0; 'label' = "NetBIOSNameServer" } @{ 'code' = 45; 'type' = 'string'; 'length' = 0; 'label' = "NetBIOSDatagramDistributionServer" } @{ 'code' = 46; 'type' = 'string'; 'length' = 1; 'label' = "NetBIOSNodeType" } @{ 'code' = 47; 'type' = 'string'; 'length' = 0; 'label' = "NetBIOSScope" } @{ 'code' = 48; 'type' = 'string'; 'length' = 0; 'label' = "XFontServer" } @{ 'code' = 49; 'type' = 'string'; 'length' = 0; 'label' = "XDisplayManager" } # RFC section 9 @{ 'code' = 50; 'type' = 'string'; 'length' = 4; 'label' = "RequestedIPAddress" } @{ 'code' = 51; 'type' = 'string'; 'length' = 4; 'label' = "IPAddressLeaseTime" } @{ 'code' = 52; 'type' = 'string'; 'length' = 1; 'label' = "OptionOverload" } @{ 'code' = 53; 'type' = 'string'; 'length' = 1; 'label' = "DHCPMessageType" } @{ 'code' = 54; 'type' = 'string'; 'length' = 4; 'label' = "ServerIdentifier" } @{ 'code' = 55; 'type' = 'string'; 'length' = 0; 'label' = "ParameterRequestList" } @{ 'code' = 56; 'type' = 'string'; 'length' = 0; 'label' = "Message" } @{ 'code' = 57; 'type' = 'string'; 'length' = 2; 'label' = "MaximumDHCPMessageSize" } @{ 'code' = 58; 'type' = 'string'; 'length' = 4; 'label' = "RenewalTimeValue" } @{ 'code' = 59; 'type' = 'string'; 'length' = 4; 'label' = "RebindingTimeValue" } @{ 'code' = 60; 'type' = 'string'; 'length' = 0; 'label' = "Vendorclassidentifier" } @{ 'code' = 61; 'type' = 'string'; 'length' = 0; 'label' = "ClientIdentifier" } @{ 'code' = 62; } @{ 'code' = 63; } # RFC section 8 @{ 'code' = 64; 'type' = 'string'; 'length' = 0; 'label' = "NISPLUSDomain" } @{ 'code' = 65; 'type' = 'string'; 'length' = 0; 'label' = "NISPLUSServer" } # RFC section 9 @{ 'code' = 66; 'type' = 'string'; 'length' = 0; 'label' = "TFTPservername" } @{ 'code' = 67; 'type' = 'string'; 'length' = 0; 'label' = "Bootfilename" } # RFC section 8 @{ 'code' = 68; 'type' = 'string'; 'length' = 0; 'label' = "MobileIPHomeAgent" } @{ 'code' = 69; 'type' = 'string'; 'length' = 0; 'label' = "SMTPServer" } # RFC section 9 @{ 'code' = 70; 'type' = 'string'; 'length' = 0; 'label' = "POP3Server" } @{ 'code' = 71; 'type' = 'string'; 'length' = 0; 'label' = "NNTPServer" } @{ 'code' = 72; 'type' = 'string'; 'length' = 0; 'label' = "WWWServer" } @{ 'code' = 73; 'type' = 'string'; 'length' = 0; 'label' = "FingerServer" } @{ 'code' = 74; 'type' = 'string'; 'length' = 0; 'label' = "IRCServer" } @{ 'code' = 75; 'type' = 'string'; 'length' = 0; 'label' = "StreetTalkServer" } @{ 'code' = 76; 'type' = 'string'; 'length' = 0; 'label' = "STDAServer" } # # @{ 'code' = 255; 'type' = 'string'; 'length' = 1; 'label' = "END" } ) # # number of options # # @see @url http://www.ietf.org/rfc/rfc2132.txt # WARN this syntax does not work # enum eDHCPv4Options { # PAD = @{ 'code' = 0; 'type' = 'string'; 'length' = 1; 'label' = "PAD"; "value" = 0 } # # RFC section 3 # SubnetMask = @{ 'code' = 1; 'type' = 'string'; 'length' = 4; 'label' = "SubnetMask" } # TimeOffset = @{ 'code' = 2; 'type' = 'string'; 'length' = 1; 'label' = "TimeOffset" } # Router = @{ 'code' = 3; 'type' = 'string'; 'length' = 1; 'label' = "Router" } # TimeServer = @{ 'code' = 4; 'type' = 'string'; 'length' = 1; 'label' = "TimeServer" } # NameServer = @{ 'code' = 5; 'type' = 'string'; 'length' = 1; 'label' = "NameServer" } # DomainNameServer = @{ 'code' = 6; 'type' = 'string'; 'length' = 1; 'label' = "DomainNameServer" } # LogServer = @{ 'code' = 7; 'type' = 'string'; 'length' = 1; 'label' = "LogServer" } # CookieServer = @{ 'code' = 8; 'type' = 'string'; 'length' = 1; 'label' = "CookieServer" } # LPRServer = @{ 'code' = 9; 'type' = 'string'; 'length' = 1; 'label' = "LPRServer" } # ImpressServer = @{ 'code' = 10; 'type' = 'string'; 'length' = 1; 'label' = "ImpressServer" } # ResourceLocationServer = @{ 'code' = 11; 'type' = 'string'; 'length' = 1; 'label' = "ResourceLocationServer" } # Hostname = @{ 'code' = 12; 'type' = 'string'; 'length' = 1; 'label' = "Hostname" } # BootFileSize = @{ 'code' = 13; 'type' = 'string'; 'length' = 1; 'label' = "BootFileSize" } # MeritDump = @{ 'code' = 14; 'type' = 'string'; 'length' = 1; 'label' = "MeritDump" } # DomainName = @{ 'code' = 15; 'type' = 'string'; 'length' = 1; 'label' = "DomainName" } # SwapServer = @{ 'code' = 16; 'type' = 'string'; 'length' = 1; 'label' = "SwapServer" } # RootPath = @{ 'code' = 17; 'type' = 'string'; 'length' = 1; 'label' = "RootPath" } # ExtensionsPath = @{ 'code' = 18; 'type' = 'string'; 'length' = 1; 'label' = "ExtensionsPath" } # # RFC section 4 # IPForwarding = @{ 'code' = 19; 'type' = 'string'; 'length' = 1; 'label' = "IPForwarding" } # NonLocalSourceRouting = @{ 'code' = 20; 'type' = 'string'; 'length' = 1; 'label' = "NonLocalSourceRouting" } # PolicyFilter = @{ 'code' = 21; 'type' = 'string'; 'length' = 1; 'label' = "PolicyFilter" } # MaximumDatagramReassemblySize = @{ 'code' = 22; 'type' = 'string'; 'length' = 1; 'label' = "MaximumDatagramReassemblySize" } # DefaultIPTTL = @{ 'code' = 23; 'type' = 'string'; 'length' = 1; 'label' = "DefaultIPTTL" } # PathMTUAgingTimeout = @{ 'code' = 24; 'type' = 'string'; 'length' = 1; 'label' = "PathMTUAgingTimeout" } # PathMTUPlateauTable = @{ 'code' = 25; 'type' = 'string'; 'length' = 1; 'label' = "PathMTUPlateauTable" } # # RFC section 5 # InterfaceMTU = @{ 'code' = 26; 'type' = 'string'; 'length' = 1; 'label' = "InterfaceMTU" } # AllSubnetsareLocal = @{ 'code' = 27; 'type' = 'string'; 'length' = 1; 'label' = "AllSubnetsareLocal" } # BroadcastAddress = @{ 'code' = 28; 'type' = 'string'; 'length' = 1; 'label' = "BroadcastAddress" } # PerformMaskDiscovery = @{ 'code' = 29; 'type' = 'string'; 'length' = 1; 'label' = "PerformMaskDiscovery" } # MaskSupplier = @{ 'code' = 30; 'type' = 'string'; 'length' = 1; 'label' = "MaskSupplier" } # PerformRouteriscovery = @{ 'code' = 31; 'type' = 'string'; 'length' = 1; 'label' = "PerformRouteriscovery" } # RouterSolicitationddress = @{ 'code' = 32; 'type' = 'string'; 'length' = 1; 'label' = "RouterSolicitationddress" } # StaticRoute = @{ 'code' = 33; 'type' = 'string'; 'length' = 1; 'label' = "StaticRoute" } # # RFC section 6 # TrailerEncapsulation = @{ 'code' = 34; 'type' = 'string'; 'length' = 1; 'label' = "TrailerEncapsulation" } # ARPCacheimeout = @{ 'code' = 35; 'type' = 'string'; 'length' = 1; 'label' = "ARPCacheimeout" } # EthernetEncapsulation = @{ 'code' = 36; 'type' = 'string'; 'length' = 1; 'label' = "EthernetEncapsulation" } # # RFC section 7 # TCPDefaultTL = @{ 'code' = 37; 'type' = 'string'; 'length' = 1; 'label' = "TCPDefaultTL" } # TCPKeepaliventerval = @{ 'code' = 38; 'type' = 'string'; 'length' = 1; 'label' = "TCPKeepaliventerval" } # TCPKeepalivearbage = @{ 'code' = 39; 'type' = 'string'; 'length' = 1; 'label' = "TCPKeepalivearbage" } # # RFC section 8 # NISDomain = @{ 'code' = 40; 'type' = 'string'; 'length' = 1; 'label' = "NISDomain" } # NISServer = @{ 'code' = 41; 'type' = 'string'; 'length' = 1; 'label' = "NISServer" } # NTPServer = @{ 'code' = 42; 'type' = 'string'; 'length' = 1; 'label' = "NTPServer" } # VendorSpecificInformation = @{ 'code' = 43; 'type' = 'string'; 'length' = 1; 'label' = "VendorSpecificInformation" } # NetBIOSNameServer = @{ 'code' = 44; 'type' = 'string'; 'length' = 1; 'label' = "NetBIOSNameServer" } # NetBIOSDatagramDistributionServer = @{ 'code' = 45; 'type' = 'string'; 'length' = 1; 'label' = "NetBIOSDatagramDistributionServer" } # NetBIOSNodeType = @{ 'code' = 46; 'type' = 'string'; 'length' = 1; 'label' = "NetBIOSNodeType" } # NetBIOSScope = @{ 'code' = 47; 'type' = 'string'; 'length' = 1; 'label' = "NetBIOSScope" } # XFontServer = @{ 'code' = 48; 'type' = 'string'; 'length' = 1; 'label' = "XFontServer" } # XDisplayManager = @{ 'code' = 49; 'type' = 'string'; 'length' = 1; 'label' = "XDisplayManager" } # NISPLUSDomain = @{ 'code' = 64; 'type' = 'string'; 'length' = 1; 'label' = "NISPLUSDomain" } # NISPLUSServer = @{ 'code' = 65; 'type' = 'string'; 'length' = 1; 'label' = "NISPLUSServer" } # MobileIPHomeAgent = @{ 'code' = 68; 'type' = 'string'; 'length' = 1; 'label' = "MobileIPHomeAgent" } # SMTPServer = @{ 'code' = 69; 'type' = 'string'; 'length' = 1; 'label' = "SMTPServer" } # POP3Server = 70 # NNTPServer = @{ 'code' = 71; 'type' = 'string'; 'length' = 1; 'label' = "NNTPServer" } # WWWServer = @{ 'code' = 72; 'type' = 'string'; 'length' = 1; 'label' = "WWWServer" } # FingerServer = @{ 'code' = 73; 'type' = 'string'; 'length' = 1; 'label' = "FingerServer" } # IRCServer = @{ 'code' = 74; 'type' = 'string'; 'length' = 1; 'label' = "IRCServer" } # StreetTalkServer = @{ 'code' = 75; 'type' = 'string'; 'length' = 1; 'label' = "StreetTalkServer" } # STDAServer = @{ 'code' = 76; 'type' = 'string'; 'length' = 1; 'label' = "STDAServer" } # # RFC section 9 # RequestedIPAddress = @{ 'code' = 50; 'type' = 'string'; 'length' = 1; 'label' = "RequestedIPAddress" } # IPAddressLeaseTime = @{ 'code' = 51; 'type' = 'string'; 'length' = 1; 'label' = "IPAddressLeaseTime" } # OptionOverload = @{ 'code' = 52; 'type' = 'string'; 'length' = 1; 'label' = "OptionOverload" } # DHCPMessageType = @{ 'code' = 53; 'type' = 'string'; 'length' = 1; 'label' = "DHCPMessageType" } # ServerIdentifier = @{ 'code' = 54; 'type' = 'string'; 'length' = 1; 'label' = "ServerIdentifier" } # ParameterRequestList = @{ 'code' = 55; 'type' = 'string'; 'length' = 1; 'label' = "ParameterRequestList" } # Message = @{ 'code' = 56; 'type' = 'string'; 'length' = 1; 'label' = "Message" } # MaximumDHCPMessageSize = @{ 'code' = 57; 'type' = 'string'; 'length' = 1; 'label' = "MaximumDHCPMessageSize" } # RenewalTimeValue = @{ 'code' = 58; 'type' = 'string'; 'length' = 1; 'label' = "RenewalTimeValue" } # RebindingTimeValue = @{ 'code' = 59; 'type' = 'string'; 'length' = 1; 'label' = "RebindingTimeValue" } # Vendorclassidentifier = @{ 'code' = 60; 'type' = 'string'; 'length' = 1; 'label' = "Vendorclassidentifier" } # ClientIdentifier = @{ 'code' = 61; 'type' = 'string'; 'length' = 1; 'label' = "ClientIdentifier" } # TFTPservername = @{ 'code' = 66; 'type' = 'string'; 'length' = 1; 'label' = "TFTPservername" } # Bootfilename = @{ 'code' = 67; 'type' = 'string'; 'length' = 1; 'label' = "Bootfilename" } # # # END = @{ 'code' = 255; 'type' = 'string'; 'length' = 1; 'label' = "END" } # } |