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; 'label' = "PAD"; 'length' = 1; "value" = 0 } # RFC section 3 'SubnetMask' = @{ 'code' = 1; 'label' = "SubnetMask"; 'length' = 4 } 'TimeOffset' = @{ 'code' = 2; 'label' = "TimeOffset"; 'length' = 4 } 'Router' = @{ 'code' = 3; 'label' = "Router"; 'length' = 0 } 'TimeServer' = @{ 'code' = 4; 'label' = "TimeServer"; 'length' = 0 } 'NameServer' = @{ 'code' = 5; 'label' = "NameServer"; 'length' = 0 } 'DomainNameServer' = @{ 'code' = 6; 'label' = "DomainNameServer"; 'length' = 0 } 'LogServer' = @{ 'code' = 7; 'label' = "LogServer"; 'length' = 0 } 'CookieServer' = @{ 'code' = 8; 'label' = "CookieServer"; 'length' = 0 } 'LPRServer' = @{ 'code' = 9; 'label' = "LPRServer"; 'length' = 0 } 'ImpressServer' = @{ 'code' = 10; 'label' = "ImpressServer"; 'length' = 0 } 'ResourceLocationServer' = @{ 'code' = 11; 'label' = "ResourceLocationServer"; 'length' = 0 } 'Hostname' = @{ 'code' = 12; 'label' = "Hostname"; 'length' = 0 } 'BootFileSize' = @{ 'code' = 13; 'label' = "BootFileSize"; 'length' = 2 } 'MeritDump' = @{ 'code' = 14; 'label' = "MeritDump"; 'length' = 0 } 'DomainName' = @{ 'code' = 15; 'label' = "DomainName"; 'length' = 0 } 'SwapServer' = @{ 'code' = 16; 'label' = "SwapServer"; 'length' = 0 } 'RootPath' = @{ 'code' = 17; 'label' = "RootPath"; 'length' = 0 } 'ExtensionsPath' = @{ 'code' = 18; 'label' = "ExtensionsPath"; 'length' = 0 } # RFC section 4 'IPForwarding' = @{ 'code' = 19; 'label' = "IPForwarding"; 'length' = 1 } 'NonLocalSourceRouting' = @{ 'code' = 20; 'label' = "NonLocalSourceRouting"; 'length' = 1 } 'PolicyFilter' = @{ 'code' = 21; 'label' = "PolicyFilter"; 'length' = 0 } 'MaximumDatagramReassemblySize' = @{ 'code' = 22; 'label' = "MaximumDatagramReassemblySize"; 'length' = 2 } 'DefaultIPTTL' = @{ 'code' = 23; 'label' = "DefaultIPTTL"; 'length' = 1 } 'PathMTUAgingTimeout' = @{ 'code' = 24; 'label' = "PathMTUAgingTimeout"; 'length' = 4 } 'PathMTUPlateauTable' = @{ 'code' = 25; 'label' = "PathMTUPlateauTable"; 'length' = 0 } # RFC section 5 'InterfaceMTU' = @{ 'code' = 26; 'label' = "InterfaceMTU"; 'length' = 2 } 'AllSubnetsareLocal' = @{ 'code' = 27; 'label' = "AllSubnetsareLocal"; 'length' = 1 } 'BroadcastAddress' = @{ 'code' = 28; 'label' = "BroadcastAddress"; 'length' = 4 } 'PerformMaskDiscovery' = @{ 'code' = 29; 'label' = "PerformMaskDiscovery"; 'length' = 1 } 'MaskSupplier' = @{ 'code' = 30; 'label' = "MaskSupplier"; 'length' = 1 } 'PerformRouteriscovery' = @{ 'code' = 31; 'label' = "PerformRouteriscovery"; 'length' = 1 } 'RouterSolicitationddress' = @{ 'code' = 32; 'label' = "RouterSolicitationddress"; 'length' = 4 } 'StaticRoute' = @{ 'code' = 33; 'label' = "StaticRoute"; 'length' = 0 } # RFC section 6 'TrailerEncapsulation' = @{ 'code' = 34; 'label' = "TrailerEncapsulation"; 'length' = 1 } 'ARPCacheimeout' = @{ 'code' = 35; 'label' = "ARPCacheimeout"; 'length' = 4 } 'EthernetEncapsulation' = @{ 'code' = 36; 'label' = "EthernetEncapsulation"; 'length' = 1 } # RFC section 7 'TCPDefaultTL' = @{ 'code' = 37; 'label' = "TCPDefaultTL"; 'length' = 1 } 'TCPKeepaliventerval' = @{ 'code' = 38; 'label' = "TCPKeepaliventerval"; 'length' = 4 } 'TCPKeepalivearbage' = @{ 'code' = 39; 'label' = "TCPKeepalivearbage"; 'length' = 1 } # RFC section 8 'NISDomain' = @{ 'code' = 40; 'label' = "NISDomain"; 'length' = 0 } 'NISServer' = @{ 'code' = 41; 'label' = "NISServer"; 'length' = 0 } 'NTPServer' = @{ 'code' = 42; 'label' = "NTPServer"; 'length' = 0 } 'VendorSpecificInformation' = @{ 'code' = 43; 'label' = "VendorSpecificInformation"; 'length' = 0 } 'NetBIOSNameServer' = @{ 'code' = 44; 'label' = "NetBIOSNameServer"; 'length' = 0 } 'NetBIOSDatagramDistributionServer' = @{ 'code' = 45; 'label' = "NetBIOSDatagramDistributionServer"; 'length' = 0 } 'NetBIOSNodeType' = @{ 'code' = 46; 'label' = "NetBIOSNodeType"; 'length' = 1 } 'NetBIOSScope' = @{ 'code' = 47; 'label' = "NetBIOSScope"; 'length' = 0 } 'XFontServer' = @{ 'code' = 48; 'label' = "XFontServer"; 'length' = 0 } 'XDisplayManager' = @{ 'code' = 49; 'label' = "XDisplayManager"; 'length' = 0 } 'NISPLUSDomain' = @{ 'code' = 64; 'label' = "NISPLUSDomain"; 'length' = 0 } 'NISPLUSServer' = @{ 'code' = 65; 'label' = "NISPLUSServer"; 'length' = 0 } 'MobileIPHomeAgent' = @{ 'code' = 68; 'label' = "MobileIPHomeAgent"; 'length' = 0 } 'SMTPServer' = @{ 'code' = 69; 'label' = "SMTPServer"; 'length' = 0 } 'POP3Server' = @{ 'code' = 70; 'label' = "POP3Server"; 'length' = 0 } 'NNTPServer' = @{ 'code' = 71; 'label' = "NNTPServer"; 'length' = 0 } 'WWWServer' = @{ 'code' = 72; 'label' = "WWWServer"; 'length' = 0 } 'FingerServer' = @{ 'code' = 73; 'label' = "FingerServer"; 'length' = 0 } 'IRCServer' = @{ 'code' = 74; 'label' = "IRCServer"; 'length' = 0 } 'StreetTalkServer' = @{ 'code' = 75; 'label' = "StreetTalkServer"; 'length' = 0 } 'STDAServer' = @{ 'code' = 76; 'label' = "STDAServer"; 'length' = 0 } # RFC section 9 'RequestedIPAddress' = @{ 'code' = 50; 'label' = "RequestedIPAddress"; 'length' = 4 } 'IPAddressLeaseTime' = @{ 'code' = 51; 'label' = "IPAddressLeaseTime"; 'length' = 4 } 'OptionOverload' = @{ 'code' = 52; 'label' = "OptionOverload"; 'length' = 1 } 'DHCPMessageType' = @{ 'code' = 53; 'label' = "DHCPMessageType"; 'length' = 1 } 'ServerIdentifier' = @{ 'code' = 54; 'label' = "ServerIdentifier"; 'length' = 4 } 'ParameterRequestList' = @{ 'code' = 55; 'label' = "ParameterRequestList"; 'length' = 0 } 'Message' = @{ 'code' = 56; 'label' = "Message"; 'length' = 0 } 'MaximumDHCPMessageSize' = @{ 'code' = 57; 'label' = "MaximumDHCPMessageSize"; 'length' = 2 } 'RenewalTimeValue' = @{ 'code' = 58; 'label' = "RenewalTimeValue"; 'length' = 4 } 'RebindingTimeValue' = @{ 'code' = 59; 'label' = "RebindingTimeValue"; 'length' = 4 } 'Vendorclassidentifier' = @{ 'code' = 60; 'label' = "Vendorclassidentifier"; 'length' = 0 } 'ClientIdentifier' = @{ 'code' = 61; 'label' = "ClientIdentifier"; 'length' = 0 } 'TFTPservername' = @{ 'code' = 66; 'label' = "TFTPservername"; 'length' = 0 } 'Bootfilename' = @{ 'code' = 67; 'label' = "Bootfilename"; 'length' = 0 } # 'END' = @{ 'code' = 255; 'label' = "END"; 'length' = 1 } } # DHCPv4 options listed in an array # @see @url http://www.ietf.org/rfc/rfc2132.txt $Global:aDHCPv4Options = @( @{ 'code' = 0; 'label' = "PAD"; 'length' = 1; "value" = 0 } # RFC section 3 @{ 'code' = 1; 'label' = "SubnetMask"; 'length' = 4 } @{ 'code' = 2; 'label' = "TimeOffset"; 'length' = 4 } @{ 'code' = 3; 'label' = "Router"; 'length' = 0 } @{ 'code' = 4; 'label' = "TimeServer"; 'length' = 0 } @{ 'code' = 5; 'label' = "NameServer"; 'length' = 0 } @{ 'code' = 6; 'label' = "DomainNameServer"; 'length' = 0 } @{ 'code' = 7; 'label' = "LogServer"; 'length' = 0 } @{ 'code' = 8; 'label' = "CookieServer"; 'length' = 0 } @{ 'code' = 9; 'label' = "LPRServer"; 'length' = 0 } @{ 'code' = 10; 'label' = "ImpressServer"; 'length' = 0 } @{ 'code' = 11; 'label' = "ResourceLocationServer"; 'length' = 0 } @{ 'code' = 12; 'label' = "Hostname"; 'length' = 0 } @{ 'code' = 13; 'label' = "BootFileSize"; 'length' = 2 } @{ 'code' = 14; 'label' = "MeritDump"; 'length' = 0 } @{ 'code' = 15; 'label' = "DomainName"; 'length' = 0 } @{ 'code' = 16; 'label' = "SwapServer"; 'length' = 0 } @{ 'code' = 17; 'label' = "RootPath"; 'length' = 0 } @{ 'code' = 18; 'label' = "ExtensionsPath"; 'length' = 0 } # RFC section 4 @{ 'code' = 19; 'label' = "IPForwarding"; 'length' = 1 } @{ 'code' = 20; 'label' = "NonLocalSourceRouting"; 'length' = 1 } @{ 'code' = 21; 'label' = "PolicyFilter"; 'length' = 0 } @{ 'code' = 22; 'label' = "MaximumDatagramReassemblySize"; 'length' = 2 } @{ 'code' = 23; 'label' = "DefaultIPTTL"; 'length' = 1 } @{ 'code' = 24; 'label' = "PathMTUAgingTimeout"; 'length' = 4 } @{ 'code' = 25; 'label' = "PathMTUPlateauTable"; 'length' = 0 } # RFC section 5 @{ 'code' = 26; 'label' = "InterfaceMTU"; 'length' = 2 } @{ 'code' = 27; 'label' = "AllSubnetsareLocal"; 'length' = 1 } @{ 'code' = 28; 'label' = "BroadcastAddress"; 'length' = 4 } @{ 'code' = 29; 'label' = "PerformMaskDiscovery"; 'length' = 1 } @{ 'code' = 30; 'label' = "MaskSupplier"; 'length' = 1 } @{ 'code' = 31; 'label' = "PerformRouteriscovery"; 'length' = 1 } @{ 'code' = 32; 'label' = "RouterSolicitationddress"; 'length' = 4 } @{ 'code' = 33; 'label' = "StaticRoute"; 'length' = 0 } # RFC section 6 @{ 'code' = 34; 'label' = "TrailerEncapsulation"; 'length' = 1 } @{ 'code' = 35; 'label' = "ARPCacheimeout"; 'length' = 4 } @{ 'code' = 36; 'label' = "EthernetEncapsulation"; 'length' = 1 } # RFC section 7 @{ 'code' = 37; 'label' = "TCPDefaultTL"; 'length' = 1 } @{ 'code' = 38; 'label' = "TCPKeepaliventerval"; 'length' = 4 } @{ 'code' = 39; 'label' = "TCPKeepalivearbage"; 'length' = 1 } # RFC section 8 @{ 'code' = 40; 'label' = "NISDomain"; 'length' = 0 } @{ 'code' = 41; 'label' = "NISServer"; 'length' = 0 } @{ 'code' = 42; 'label' = "NTPServer"; 'length' = 0 } @{ 'code' = 43; 'label' = "VendorSpecificInformation"; 'length' = 0 } @{ 'code' = 44; 'label' = "NetBIOSNameServer"; 'length' = 0 } @{ 'code' = 45; 'label' = "NetBIOSDatagramDistributionServer"; 'length' = 0 } @{ 'code' = 46; 'label' = "NetBIOSNodeType"; 'length' = 1 } @{ 'code' = 47; 'label' = "NetBIOSScope"; 'length' = 0 } @{ 'code' = 48; 'label' = "XFontServer"; 'length' = 0 } @{ 'code' = 49; 'label' = "XDisplayManager"; 'length' = 0 } # RFC section 9 @{ 'code' = 50; 'label' = "RequestedIPAddress"; 'length' = 4 } @{ 'code' = 51; 'label' = "IPAddressLeaseTime"; 'length' = 4 } @{ 'code' = 52; 'label' = "OptionOverload"; 'length' = 1 } @{ 'code' = 53; 'label' = "DHCPMessageType"; 'length' = 1 } @{ 'code' = 54; 'label' = "ServerIdentifier"; 'length' = 4 } @{ 'code' = 55; 'label' = "ParameterRequestList"; 'length' = 0 } @{ 'code' = 56; 'label' = "Message"; 'length' = 0 } @{ 'code' = 57; 'label' = "MaximumDHCPMessageSize"; 'length' = 2 } @{ 'code' = 58; 'label' = "RenewalTimeValue"; 'length' = 4 } @{ 'code' = 59; 'label' = "RebindingTimeValue"; 'length' = 4 } @{ 'code' = 60; 'label' = "Vendorclassidentifier"; 'length' = 0 } @{ 'code' = 61; 'label' = "ClientIdentifier"; 'length' = 0 } @{ 'code' = 62; } @{ 'code' = 63; } # RFC section 8 @{ 'code' = 64; 'label' = "NISPLUSDomain"; 'length' = 0 } @{ 'code' = 65; 'label' = "NISPLUSServer"; 'length' = 0 } # RFC section 9 @{ 'code' = 66; 'label' = "TFTPservername"; 'length' = 0 } @{ 'code' = 67; 'label' = "Bootfilename"; 'length' = 0 } # RFC section 8 @{ 'code' = 68; 'label' = "MobileIPHomeAgent"; 'length' = 0 } @{ 'code' = 69; 'label' = "SMTPServer"; 'length' = 0 } # RFC section 9 @{ 'code' = 70; 'label' = "POP3Server"; 'length' = 0 } @{ 'code' = 71; 'label' = "NNTPServer"; 'length' = 0 } @{ 'code' = 72; 'label' = "WWWServer"; 'length' = 0 } @{ 'code' = 73; 'label' = "FingerServer"; 'length' = 0 } @{ 'code' = 74; 'label' = "IRCServer"; 'length' = 0 } @{ 'code' = 75; 'label' = "StreetTalkServer"; 'length' = 0 } @{ 'code' = 76; 'label' = "STDAServer"; 'length' = 0 } # # @{ 'code' = 255; 'label' = "END"; 'length' = 1 } ) # # number of options # # @see @url http://www.ietf.org/rfc/rfc2132.txt # WARN this syntax does not work # enum eDHCPv4Options { # PAD = @{ 'code' = 0; 'label' = "PAD"; 'length' = 1; "value" = 0 } # # RFC section 3 # SubnetMask = @{ 'code' = 1; 'label' = "SubnetMask"; 'length' = 4 } # TimeOffset = @{ 'code' = 2; 'label' = "TimeOffset"; 'length' = 1 } # Router = @{ 'code' = 3; 'label' = "Router"; 'length' = 1 } # TimeServer = @{ 'code' = 4; 'label' = "TimeServer"; 'length' = 1 } # NameServer = @{ 'code' = 5; 'label' = "NameServer"; 'length' = 1 } # DomainNameServer = @{ 'code' = 6; 'label' = "DomainNameServer"; 'length' = 1 } # LogServer = @{ 'code' = 7; 'label' = "LogServer"; 'length' = 1 } # CookieServer = @{ 'code' = 8; 'label' = "CookieServer"; 'length' = 1 } # LPRServer = @{ 'code' = 9; 'label' = "LPRServer"; 'length' = 1 } # ImpressServer = @{ 'code' = 10; 'label' = "ImpressServer"; 'length' = 1 } # ResourceLocationServer = @{ 'code' = 11; 'label' = "ResourceLocationServer"; 'length' = 1 } # Hostname = @{ 'code' = 12; 'label' = "Hostname"; 'length' = 1 } # BootFileSize = @{ 'code' = 13; 'label' = "BootFileSize"; 'length' = 1 } # MeritDump = @{ 'code' = 14; 'label' = "MeritDump"; 'length' = 1 } # DomainName = @{ 'code' = 15; 'label' = "DomainName"; 'length' = 1 } # SwapServer = @{ 'code' = 16; 'label' = "SwapServer"; 'length' = 1 } # RootPath = @{ 'code' = 17; 'label' = "RootPath"; 'length' = 1 } # ExtensionsPath = @{ 'code' = 18; 'label' = "ExtensionsPath"; 'length' = 1 } # # RFC section 4 # IPForwarding = @{ 'code' = 19; 'label' = "IPForwarding"; 'length' = 1 } # NonLocalSourceRouting = @{ 'code' = 20; 'label' = "NonLocalSourceRouting"; 'length' = 1 } # PolicyFilter = @{ 'code' = 21; 'label' = "PolicyFilter"; 'length' = 1 } # MaximumDatagramReassemblySize = @{ 'code' = 22; 'label' = "MaximumDatagramReassemblySize"; 'length' = 1 } # DefaultIPTTL = @{ 'code' = 23; 'label' = "DefaultIPTTL"; 'length' = 1 } # PathMTUAgingTimeout = @{ 'code' = 24; 'label' = "PathMTUAgingTimeout"; 'length' = 1 } # PathMTUPlateauTable = @{ 'code' = 25; 'label' = "PathMTUPlateauTable"; 'length' = 1 } # # RFC section 5 # InterfaceMTU = @{ 'code' = 26; 'label' = "InterfaceMTU"; 'length' = 1 } # AllSubnetsareLocal = @{ 'code' = 27; 'label' = "AllSubnetsareLocal"; 'length' = 1 } # BroadcastAddress = @{ 'code' = 28; 'label' = "BroadcastAddress"; 'length' = 1 } # PerformMaskDiscovery = @{ 'code' = 29; 'label' = "PerformMaskDiscovery"; 'length' = 1 } # MaskSupplier = @{ 'code' = 30; 'label' = "MaskSupplier"; 'length' = 1 } # PerformRouteriscovery = @{ 'code' = 31; 'label' = "PerformRouteriscovery"; 'length' = 1 } # RouterSolicitationddress = @{ 'code' = 32; 'label' = "RouterSolicitationddress"; 'length' = 1 } # StaticRoute = @{ 'code' = 33; 'label' = "StaticRoute"; 'length' = 1 } # # RFC section 6 # TrailerEncapsulation = @{ 'code' = 34; 'label' = "TrailerEncapsulation"; 'length' = 1 } # ARPCacheimeout = @{ 'code' = 35; 'label' = "ARPCacheimeout"; 'length' = 1 } # EthernetEncapsulation = @{ 'code' = 36; 'label' = "EthernetEncapsulation"; 'length' = 1 } # # RFC section 7 # TCPDefaultTL = @{ 'code' = 37; 'label' = "TCPDefaultTL"; 'length' = 1 } # TCPKeepaliventerval = @{ 'code' = 38; 'label' = "TCPKeepaliventerval"; 'length' = 1 } # TCPKeepalivearbage = @{ 'code' = 39; 'label' = "TCPKeepalivearbage"; 'length' = 1 } # # RFC section 8 # NISDomain = @{ 'code' = 40; 'label' = "NISDomain"; 'length' = 1 } # NISServer = @{ 'code' = 41; 'label' = "NISServer"; 'length' = 1 } # NTPServer = @{ 'code' = 42; 'label' = "NTPServer"; 'length' = 1 } # VendorSpecificInformation = @{ 'code' = 43; 'label' = "VendorSpecificInformation"; 'length' = 1 } # NetBIOSNameServer = @{ 'code' = 44; 'label' = "NetBIOSNameServer"; 'length' = 1 } # NetBIOSDatagramDistributionServer = @{ 'code' = 45; 'label' = "NetBIOSDatagramDistributionServer"; 'length' = 1 } # NetBIOSNodeType = @{ 'code' = 46; 'label' = "NetBIOSNodeType"; 'length' = 1 } # NetBIOSScope = @{ 'code' = 47; 'label' = "NetBIOSScope"; 'length' = 1 } # XFontServer = @{ 'code' = 48; 'label' = "XFontServer"; 'length' = 1 } # XDisplayManager = @{ 'code' = 49; 'label' = "XDisplayManager"; 'length' = 1 } # NISPLUSDomain = @{ 'code' = 64; 'label' = "NISPLUSDomain"; 'length' = 1 } # NISPLUSServer = @{ 'code' = 65; 'label' = "NISPLUSServer"; 'length' = 1 } # MobileIPHomeAgent = @{ 'code' = 68; 'label' = "MobileIPHomeAgent"; 'length' = 1 } # SMTPServer = @{ 'code' = 69; 'label' = "SMTPServer"; 'length' = 1 } # POP3Server = 70 # NNTPServer = @{ 'code' = 71; 'label' = "NNTPServer"; 'length' = 1 } # WWWServer = @{ 'code' = 72; 'label' = "WWWServer"; 'length' = 1 } # FingerServer = @{ 'code' = 73; 'label' = "FingerServer"; 'length' = 1 } # IRCServer = @{ 'code' = 74; 'label' = "IRCServer"; 'length' = 1 } # StreetTalkServer = @{ 'code' = 75; 'label' = "StreetTalkServer"; 'length' = 1 } # STDAServer = @{ 'code' = 76; 'label' = "STDAServer"; 'length' = 1 } # # RFC section 9 # RequestedIPAddress = @{ 'code' = 50; 'label' = "RequestedIPAddress"; 'length' = 1 } # IPAddressLeaseTime = @{ 'code' = 51; 'label' = "IPAddressLeaseTime"; 'length' = 1 } # OptionOverload = @{ 'code' = 52; 'label' = "OptionOverload"; 'length' = 1 } # DHCPMessageType = @{ 'code' = 53; 'label' = "DHCPMessageType"; 'length' = 1 } # ServerIdentifier = @{ 'code' = 54; 'label' = "ServerIdentifier"; 'length' = 1 } # ParameterRequestList = @{ 'code' = 55; 'label' = "ParameterRequestList"; 'length' = 1 } # Message = @{ 'code' = 56; 'label' = "Message"; 'length' = 1 } # MaximumDHCPMessageSize = @{ 'code' = 57; 'label' = "MaximumDHCPMessageSize"; 'length' = 1 } # RenewalTimeValue = @{ 'code' = 58; 'label' = "RenewalTimeValue"; 'length' = 1 } # RebindingTimeValue = @{ 'code' = 59; 'label' = "RebindingTimeValue"; 'length' = 1 } # Vendorclassidentifier = @{ 'code' = 60; 'label' = "Vendorclassidentifier"; 'length' = 1 } # ClientIdentifier = @{ 'code' = 61; 'label' = "ClientIdentifier"; 'length' = 1 } # TFTPservername = @{ 'code' = 66; 'label' = "TFTPservername"; 'length' = 1 } # Bootfilename = @{ 'code' = 67; 'label' = "Bootfilename"; 'length' = 1 } # # # END = @{ 'code' = 255; 'label' = "END"; 'length' = 1 } # } |