Zeroconfig: Support for multiple network devices. Allow static DNS when using DHCP.

Netstat: New window for IP configuration.
network.ini: New format that allows configuring more then one network device.


git-svn-id: svn://kolibrios.org@5586 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr 2015-07-20 14:05:04 +00:00
parent 8b61a2e72d
commit 061e9e3bd8
9 changed files with 1200 additions and 625 deletions

View File

@ -1,12 +1,18 @@
[ipconfig]
; type should be static or zeroconf
; zeroconf means the service first tries to contact a DHCP server
; If dhcp is not available, it switches to link-local
type = zeroconf
; General configuration for otherwise unlisted devices.
[ip?]
; type should be dhcp, auto or disabled.
ip_type = auto
dns_type= auto
; Specific configuration for network device 1.
[ip1]
; type can be dhcp, auto, static or disabled.
ip_type = auto
ip = 192.168.1.150
gateway = 192.168.1.1
dns = 192.168.1.1
subnet = 255.255.255.0
gateway = 192.168.1.1
dns_type= auto
dns = 192.168.1.1
[proxy]
; If Internet connection requires HTTP proxy, set it here

View File

@ -1,12 +1,18 @@
[ipconfig]
; type should be static or zeroconf
; zeroconf means the service first tries to contact a DHCP server
; If dhcp is not available, it switches to link-local
type = zeroconf
; General configuration for otherwise unlisted devices.
[ip?]
; type should be dhcp, auto or disabled.
ip_type = auto
dns_type= auto
; Specific configuration for network device 1.
[ip1]
; type can be dhcp, auto, static or disabled.
ip_type = auto
ip = 192.168.1.150
gateway = 192.168.1.1
dns = 192.168.1.1
subnet = 255.255.255.0
gateway = 192.168.1.1
dns_type= auto
dns = 192.168.1.1
[proxy]
; If Internet connection requires HTTP proxy, set it here

View File

@ -1,12 +1,18 @@
[ipconfig]
; type should be static or zeroconf
; zeroconf means the service first tries to contact a DHCP server
; If dhcp is not available, it switches to link-local
type = zeroconf
; General configuration for otherwise unlisted devices.
[ip?]
; type should be dhcp, auto or disabled.
ip_type = auto
dns_type= auto
; Specific configuration for network device 1.
[ip1]
; type can be dhcp, auto, static or disabled.
ip_type = auto
ip = 192.168.1.150
gateway = 192.168.1.1
dns = 192.168.1.1
subnet = 255.255.255.0
gateway = 192.168.1.1
dns_type= auto
dns = 192.168.1.1
[proxy]
; If Internet connection requires HTTP proxy, set it here

View File

@ -1,12 +1,18 @@
[ipconfig]
; type should be static or zeroconf
; zeroconf means the service first tries to contact a DHCP server
; If dhcp is not available, it switches to link-local
type = zeroconf
; General configuration for otherwise unlisted devices.
[ip?]
; type should be dhcp, auto or disabled.
ip_type = auto
dns_type= auto
; Specific configuration for network device 1.
[ip1]
; type can be dhcp, auto, static or disabled.
ip_type = auto
ip = 192.168.1.150
gateway = 192.168.1.1
dns = 192.168.1.1
subnet = 255.255.255.0
gateway = 192.168.1.1
dns_type= auto
dns = 192.168.1.1
[proxy]
; If Internet connection requires HTTP proxy, set it here

View File

@ -1,12 +1,18 @@
[ipconfig]
; type should be static or zeroconf
; zeroconf means the service first tries to contact a DHCP server
; If dhcp is not available, it switches to link-local
type = zeroconf
; General configuration for otherwise unlisted devices.
[ip?]
; type should be dhcp, auto or disabled.
ip_type = auto
dns_type= auto
; Specific configuration for network device 1.
[ip1]
; type can be dhcp, auto, static or disabled.
ip_type = auto
ip = 192.168.1.150
gateway = 192.168.1.1
dns = 192.168.1.1
subnet = 255.255.255.0
gateway = 192.168.1.1
dns_type= auto
dns = 192.168.1.1
[proxy]
; If Internet connection requires HTTP proxy, set it here

View File

@ -0,0 +1,397 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Copyright (C) KolibriOS team 2010-2015. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License ;;
;; ;;
;; Written by hidnplayr@kolibrios.org ;;
;; ;;
;; GNU GENERAL PUBLIC LICENSE ;;
;; Version 2, June 1991 ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
enum_callback:
ipcfg:
mcall 40, EVM_MOUSE + EVM_MOUSE_FILTER + EVM_REDRAW + EVM_BUTTON + EVM_KEY + EVM_STACK
; Create the 'ip..' string with correct device number
call create_str_ini_int
; Try to read settings from .ini file
invoke ini.get_str, net_ini, str_ini_int, str_ini_ip_type, ini_buf, 16, sz_0
test eax, eax
jz @f
; If settings not found, use default settings from 'ip?' section
mov dword[str_ini_int], 'ip?'
@@:
; Read ip/subnet/gateway type
mov [option_ip], op_ip_static
invoke ini.get_str, net_ini, str_ini_int, str_ini_ip_type, ini_buf, 16, sz_0
; test eax, eax
; jz .disabled
cmp dword[ini_buf], 'dhcp'
jne @f
mov [option_ip], op_ip_auto
@@:
; Read DNS type
mov [option_dns], op_dns_static
invoke ini.get_str, net_ini, str_ini_int, str_ini_dns_type, ini_buf, 16, sz_0
cmp dword[ini_buf], 'dhcp'
jne @f
mov [option_dns], op_dns_auto
@@:
; Read all IP addresses
mov [str_edit_ip], 0
mov [str_edit_subnet], 0
mov [str_edit_gateway], 0
mov [str_edit_dns], 0
invoke ini.get_str, net_ini, str_ini_int, str_ini_ip, str_edit_ip, 16, sz_0
invoke ini.get_str, net_ini, str_ini_int, str_ini_subnet, str_edit_subnet, 16, sz_0
invoke ini.get_str, net_ini, str_ini_int, str_ini_gateway, str_edit_gateway, 16, sz_0
invoke ini.get_str, net_ini, str_ini_int, str_ini_dns, str_edit_dns, 16, sz_0
invoke edit_set_text, edit_ip, str_edit_ip
invoke edit_set_text, edit_subnet, str_edit_subnet
invoke edit_set_text, edit_gateway, str_edit_gateway
invoke edit_set_text, edit_dns, str_edit_dns
.parse_settings:
call toggle_editboxes
.draw:
; get system colors
mcall 48, 3, sc, 40
mcall 12, 1
mov edx, [sc.work]
or edx, 0x34000000
xor esi, esi
mov edi, str_title
mcall 0, 50 shl 16 + 200, 30 shl 16 + 200
mov ecx, 0x80000000
or ecx, [sc.work_text]
; mov ebx, 47 shl 16 + 10
; mov edx, str_mode
; mcall
mov ebx, 59 shl 16 + 35
mov edx, sz_ip
mcall 4
mov ebx, 5 shl 16 + 55
mov edx, sz_subnet
mcall
mov ebx, 29 shl 16 + 75
mov edx, sz_gateway
mcall
; mov ebx, 47 shl 16 + 80
; mov edx, str_mode
; mcall
mov ebx, 53 shl 16 + 120
mov edx, sz_dns
mcall
invoke edit_box_draw, edit_ip
invoke edit_box_draw, edit_subnet
invoke edit_box_draw, edit_gateway
invoke edit_box_draw, edit_dns
invoke option_box_draw, Option_boxs1
invoke option_box_draw, Option_boxs2
mcall 8, 80 shl 16 + 100, 150 shl 16 + 16, 2, [sc.work_button]
mov ecx, 0x80000000
or ecx, [sc.work_button_text]
mov ebx, 112 shl 16 + 155
mov edx, sz_apply
mcall 4
mcall 12, 2
.loop:
mcall 10
dec eax
jz .draw
dec eax
jz .key
dec eax
jz .btn
cmp [edit_ip.color], 0xcacaca
je @f
invoke edit_box_mouse, edit_ip
invoke edit_box_mouse, edit_subnet
invoke edit_box_mouse, edit_gateway
@@:
cmp [edit_dns.color], 0xcacaca
je @f
invoke edit_box_mouse, edit_dns
@@:
push [option_ip] [option_dns]
invoke option_box_mouse, Option_boxs1
invoke option_box_mouse, Option_boxs2
pop ebx eax
cmp eax, [option_ip]
jne @f
cmp ebx, [option_dns]
je .loop
@@:
call toggle_editboxes
jmp .draw
.btn:
mcall 17
test ah , ah
jz .loop
cmp ah, 2 ; apply
jne .exit
; Apply settings!
.apply:
xor edi, edi
cmp [edit_ip.color], 0xcacaca
je .skip_ip
mov [edit_ip.color], 0xffffff
mov esi, str_edit_ip
call validate_ip
test eax, eax
jz @f
mov [edit_ip.color], 0xff4444
inc edi
@@:
mov [edit_subnet.color], 0xffffff
mov esi, str_edit_subnet
call validate_ip
test eax, eax
jz @f
mov [edit_subnet.color], 0xff4444
inc edi
@@:
mov [edit_gateway.color], 0xffffff
mov esi, str_edit_gateway
call validate_ip
test eax, eax
jz @f
mov [edit_gateway.color], 0xff4444
inc edi
@@:
.skip_ip:
cmp [edit_dns.color], 0xcacaca
je .skip_dns
mov [edit_dns.color], 0xffffff
mov esi, str_edit_dns
call validate_ip
test eax, eax
jz @f
mov [edit_dns.color], 0xff4444
inc edi
@@:
.skip_dns:
test edi, edi
jnz .draw
; Settings look valid, save them to the ini file
; Re-create 'ip..' string, we dont want to save to 'ip?' section.
call create_str_ini_int
cmp [option_ip], op_ip_auto
jne .ip_static
invoke ini.set_str, net_ini, str_ini_int, str_ini_ip_type, sz_dhcp, 4
jmp @f
.ip_static:
invoke ini.set_str, net_ini, str_ini_int, str_ini_ip_type, sz_static2, 6
@@:
cmp [option_dns], op_dns_auto
invoke ini.set_str, net_ini, str_ini_int, str_ini_dns_type, sz_dhcp, 4
jmp @f
.dns_static:
invoke ini.set_str, net_ini, str_ini_int, str_ini_dns_type, sz_static2, 6
@@:
invoke ini.set_str, net_ini, str_ini_int, str_ini_ip, str_edit_ip, [edit_ip.size]
invoke ini.set_str, net_ini, str_ini_int, str_ini_subnet, str_edit_subnet, [edit_subnet.size]
invoke ini.set_str, net_ini, str_ini_int, str_ini_gateway, str_edit_gateway, [edit_gateway.size]
invoke ini.set_str, net_ini, str_ini_int, str_ini_dns, str_edit_dns, [edit_dns.size]
.exit:
mcall -1
.key:
mcall 2
; Stupid editbox doesnt allow us to disable edit boxes nor filter input decently, so we do it here.
cmp ah, 13
je .apply
cmp ah, 8
je @f
cmp ah, '.'
je @f
cmp ah, '0'
jb .loop
cmp ah, '9'
ja .loop
@@:
cmp [edit_ip.color], 0xffffff
jne @f
invoke edit_box_key, edit_ip
invoke edit_box_key, edit_subnet
invoke edit_box_key, edit_gateway
@@:
cmp [edit_dns.color], 0xffffff
jne @f
invoke edit_box_key, edit_dns
@@:
jmp .loop
toggle_editboxes:
mov [edit_ip.color], 0xffffff
mov [edit_subnet.color], 0xffffff
mov [edit_gateway.color], 0xffffff
cmp [option_ip], op_ip_static
je @f
mov [edit_ip.color], 0xcacaca
mov [edit_subnet.color], 0xcacaca
mov [edit_gateway.color], 0xcacaca
@@:
mov [edit_dns.color], 0xffffff
cmp [option_dns], op_dns_static
je @f
mov [edit_dns.color], 0xcacaca
@@:
ret
; in: esi = ptr to ascii ip
; out: eax = 0 - ok / -1 - error
validate_ip:
xor ecx, ecx ; octet count
.outer_loop:
xor ebx, ebx ; current number
inc ecx
.inner_loop:
lodsb ; load one character from ascii string
test al, al
je .finish
cmp al, '.'
je .outer_loop
; Convert current digit from ascii to bin, if valid
sub al, '0'
jb .invalid
cmp al, 9
ja .invalid
; multiply current number by 10
add bl, bl
jc .invalid
lea ebx, [ebx + 4 * ebx]
test ebx, 0xffffff00
jnz .invalid
; add current digit to current number
add bl, al
jc .invalid
jmp .inner_loop
.finish:
cmp cl, 4
jne .invalid
xor eax, eax
ret
.invalid:
or eax, -1
ret
create_str_ini_int:
movzx eax, [device]
mov ebx, 10
xor edx, edx
push 0
@@:
div ebx
add dl, '0'
push edx
test eax, eax
jnz @r
@@:
mov edi, str_ini_int+2
@@:
pop eax
stosb
test eax, eax
jnz @r
ret
;-------------------------
; DATA
edit_ip edit_box 100, 80, 30, 0xffffff, 0x6f9480, 0, 0, 0, 15, str_edit_ip, mouse_dd, 0, 0, 1
edit_subnet edit_box 100, 80, 50, 0xffffff, 0x6f9480, 0, 0, 0, 15, str_edit_subnet, mouse_dd, 0, 0, 1
edit_gateway edit_box 100, 80, 70, 0xffffff, 0x6f9480, 0, 0, 0, 15, str_edit_gateway, mouse_dd, 0, 0, 1
edit_dns edit_box 100, 80, 115, 0xffffff, 0x6f9480, 0, 0, 0, 15, str_edit_dns, mouse_dd, 0, 0, 1
op_ip_auto option_box option_ip, 15, 10, 6, 12, 0xffffff, 0, 0, sz_auto, 5
op_ip_static option_box option_ip, 80, 10, 6, 12, 0xffffff, 0, 0, sz_static, 7
op_dns_auto option_box option_dns, 15, 95, 6, 12, 0xffffff, 0, 0, sz_auto, 5
op_dns_static option_box option_dns, 80, 95, 6, 12, 0xffffff, 0, 0, sz_static, 7
option_ip dd op_ip_auto
option_dns dd op_dns_auto
Option_boxs1 dd op_ip_auto, op_ip_static, 0
Option_boxs2 dd op_dns_auto, op_dns_static, 0
net_ini db '/sys/settings/network.ini', 0
str_ini_int db 'ip1', 0
rb 10
str_ini_ip db 'ip', 0
str_ini_subnet db 'subnet', 0
str_ini_gateway db 'gateway', 0
str_ini_dns db 'dns1', 0
str_ini_ip_type db 'ip_type', 0
str_ini_dns_type db 'dns_type', 0
sz_0 db 0
sz_dhcp db 'dhcp', 0
sz_static2 db 'static', 0
str_title db 'IP settings', 0
sz_ip db 'IP:', 0
sz_subnet db 'Subnet mask:', 0
sz_gateway db 'Gateway:', 0
sz_dns db 'DNS:', 0
sz_auto db 'Auto', 0
sz_static db 'Static', 0
sz_apply db 'Apply', 0
str_edit_ip rb 16
str_edit_subnet rb 16
str_edit_gateway rb 16
str_edit_dns rb 16
ini_buf rb 16
mouse_dd dd ?

View File

@ -1,6 +1,6 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Copyright (C) KolibriOS team 2010-2014. All rights reserved. ;;
;; Copyright (C) KolibriOS team 2010-2015. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License ;;
;; ;;
;; netstat.asm - Network Status Tool for KolibriOS ;;
@ -29,13 +29,30 @@ use32
dd (I_END+0x1000) ; esp
dd 0, 0 ; I_Param, I_Path
include '../../proc32.inc'
include '../../macros.inc'
include '../../dll.inc'
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../network.inc'
include 'ipcfg.inc'
START:
mcall 68, 11
stdcall dll.Load, @IMPORT
or eax, eax
jnz exit
mcall 40, EVM_REDRAW + EVM_BUTTON + EVM_STACK2 + EVM_KEY
window_redraw:
; get system colors
mcall 48, 3, sc, 40
; Notify kernel of start of window draw
mcall 12, 1
@ -134,6 +151,12 @@ redraw:
mov edx, str_bytes_rx
mcall
add ebx, 18
mov edx, str_speed_tx
mcall
add ebx, 18
mov edx, str_speed_rx
mcall
add ebx, 18
mov edx, str_link
mcall
@ -150,7 +173,7 @@ redraw:
push eax
push bx
mov edx, 134 shl 16 + 35 + 5*18
mov edx, 134 shl 16 + 35 + 7*18
call draw_mac
jmp end_of_draw
@ -209,6 +232,12 @@ redraw:
add edx, 18
call draw_ip
cmp [device], 0
je end_of_draw
mcall 8, 128 shl 16 + 100, 150 shl 16 + 20, 2, [sc.work_button]
mcall 4, 150 shl 16 + 157, [sc.work_button_text], str_ip_cfg, str_ip_cfg.len
jmp end_of_draw
.no_ip:
@ -275,38 +304,65 @@ draw_stats:
cmp bl, 10
jbe @r
pop eax
test al, al
pop ecx
push [time]
pop [delta_time]
mcall 26, 9
mov [time], eax
sub eax, [delta_time]
jnz @f
inc eax ; Zero time units? Lets make it at least one.
@@:
mov [delta_time], eax
mov eax, [esp+4] ; bytes received
push eax
sub eax, [prev_rx]
pop [prev_rx]
xor edx, edx
div [delta_time]
push eax
mov eax, [esp+4] ; bytes sent
push eax
sub eax, [prev_tx]
pop [prev_tx]
xor edx, edx
div [delta_time]
push eax
test cl, cl
jnz @f
mov edx, str_down
jmp .print_link
@@:
cmp al, 100b
cmp cl, 100b
jnz @f
mov edx, str_10m
jmp .print_link
@@:
cmp al, 110b
cmp cl, 110b
jnz @f
mov edx, str_10mfd
jmp .print_link
@@:
cmp al, 1000b
cmp cl, 1000b
jnz @f
mov edx, str_100m
jmp .print_link
@@:
cmp al, 1010b
cmp cl, 1010b
jnz @f
mov edx, str_100mfd
jmp .print_link
@@:
cmp al, 1100b
cmp cl, 1100b
jnz @f
mov edx, str_1g
jmp .print_link
@@:
cmp al, 1110b
cmp cl, 1110b
jnz @f
mov edx, str_1gfd
jmp .print_link
@ -314,25 +370,39 @@ draw_stats:
mov edx, str_unknown
.print_link:
mov ebx, 134 shl 16 + 35 + 4*18
mov ebx, 134 shl 16 + 35 + 6*18
mov ecx, 0xc0000000
mov edi, 0x00f3f3f3
mcall 4
; speed tx
mov ebx, 0x000a0000
pop ecx
mov edx, 134 shl 16 + 35 + 3*18
mov edx, 134 shl 16 + 35 + 5*18
mov esi, 0x40000000
mcall 47
; speed rx
sub edx, 18
pop ecx
mcall
; bytes received
sub edx, 18
pop ecx
mcall
; bytes sent
sub edx, 18
pop ecx
mcall
; packets received
sub edx, 18
pop ecx
mcall
; packets sent
sub edx, 18
pop ecx
mcall
@ -646,12 +716,18 @@ button: ; button
mcall 17 ; get id
cmp ah, 1
je exit
cmp ah, 2
je .ipcfg
cmp ah, 0
je .interface
shr ax, 8
mov [mode], ax
jmp redraw
.ipcfg:
mcall 51, 1, ipcfg, I_END+0x1000
jmp mainloop
.interface:
shr eax, 16
mov [device], al
@ -818,6 +894,31 @@ draw_interfaces:
; DATA AREA
align 16
@IMPORT:
library box_lib , 'box_lib.obj', \
libini , 'libini.obj'
import libini, \
ini.get_str , 'ini_get_str' ,\
ini.set_str , 'ini_set_str' ,\
ini.enum_sections, 'ini_enum_sections'
import box_lib ,\
edit_box_draw , 'edit_box' ,\
edit_box_key , 'edit_box_key' ,\
edit_box_mouse , 'edit_box_mouse' ,\
edit_set_text , 'edit_box_set_text' ,\
version_ed , 'version_ed' ,\
init_checkbox , 'init_checkbox2' ,\
check_box_draw , 'check_box_draw2' ,\
check_box_mouse , 'check_box_mouse2' ,\
version_ch , 'version_ch2' ,\
option_box_draw , 'option_box_draw' ,\
option_box_mouse, 'option_box_mouse' ,\
version_op , 'version_op'
name db 'Network status', 0
mode dw 101 ; currently selected protocol
device db 1 ; currently selected device
@ -837,10 +938,14 @@ str_subnet db 'Subnet mask: . . .', 0
str_gateway db 'Standard gateway: . . .', 0
str_arp db 'ARP entrys:', 0
str_conflicts db 'ARP conflicts:', 0
str_missed db 'Packets missed:',0
str_dumped db 'Packets dumped:',0
str_queued db 'Packets queued:',0
str_link db 'Link state:',0
str_missed db 'Packets missed:', 0
str_dumped db 'Packets dumped:', 0
str_queued db 'Packets queued:', 0
str_link db 'Link state:', 0
str_speed_tx db 'Upload (kb/s):', 0
str_speed_rx db 'Download (kb/s):', 0
str_ip_cfg db 'Configure'
.len = $ - str_ip_cfg
str_down db 'disconnected ', 0
str_unknown db 'unknown ', 0
@ -854,7 +959,14 @@ str_1gfd db '1 Gbit Full duplex ', 0
str_ARP_legend db 'IP-address MAC-address Status TTL', 0
str_ARP_entry db ' . . . - - - - -', 0
prev_rx dd ?
prev_tx dd ?
time dd ?
delta_time dd ?
namebuf rb 64
arp_buf ARP_entry
sc system_colors
I_END:

View File

@ -1,126 +1,126 @@
;Name Number Length Meaning
dhcp_pad_option equ 0 ; 0 None
dhcp_end_option equ 255 ; 0 None
dhcp_subnet_mask equ 1 ; 4 Subnet Mask Value
dhcp_time_offset equ 2 ; 4 Time Offset in Seconds from UTC
dhcp_router equ 3 ; N×4 Router addresses
dhcp_time_server equ 4 ; N×4 Timeserver addresses
dhcp_name_server equ 5 ; N×4 IEN-116 Server addresses
dhcp_domain_server equ 6 ; N×4 DNS Server addresses
dhcp_log_server equ 7 ; N×4 Logging Server addresses
dhcp_quotes_server equ 8 ; N×4 Quotes Server addresses
dhcp_lpr_server equ 9 ; N×4 Printer Server addresses
dhcp_impress_server equ 10 ; N×4 Impress Server addresses
dhcp_rlp_server equ 11 ; N×4 N RLP Server addresses
dhcp_hostname equ 12 ; N Hostname string
dhcp_boot_file_size equ 13 ; 2 Size of boot file in 512-octet blocks
dhcp_merit_dump_file equ 14 ; N Client to dump and name the file to dump it to
dhcp_domain_name equ 15 ; N The DNS domain name of the client
dhcp_swap_server equ 16 ; 4 Swap Server address
dhcp_root_path equ 17 ; N Path name for root disk
dhcp_extension_file equ 18 ; N Path name for more BOOTP info
dhcp_pad_option = 0 ; 0 None
dhcp_end_option = 255 ; 0 None
dhcp_subnet_mask = 1 ; 4 Subnet Mask Value
dhcp_time_offset = 2 ; 4 Time Offset in Seconds from UTC
dhcp_router = 3 ; N×4 Router addresses
dhcp_time_server = 4 ; N×4 Timeserver addresses
dhcp_name_server = 5 ; N×4 IEN-116 Server addresses
dhcp_domain_server = 6 ; N×4 DNS Server addresses
dhcp_log_server = 7 ; N×4 Logging Server addresses
dhcp_quotes_server = 8 ; N×4 Quotes Server addresses
dhcp_lpr_server = 9 ; N×4 Printer Server addresses
dhcp_impress_server = 10 ; N×4 Impress Server addresses
dhcp_rlp_server = 11 ; N×4 N RLP Server addresses
dhcp_hostname = 12 ; N Hostname string
dhcp_boot_file_size = 13 ; 2 Size of boot file in 512-octet blocks
dhcp_merit_dump_file = 14 ; N Client to dump and name the file to dump it to
dhcp_domain_name = 15 ; N The DNS domain name of the client
dhcp_swap_server = 16 ; 4 Swap Server address
dhcp_root_path = 17 ; N Path name for root disk
dhcp_extension_file = 18 ; N Path name for more BOOTP info
;IP Layer Parameters per Host
dhcp_forward equ 19 ; 1 Enable/Disable IP Forwarding
dhcp_srcrte equ 20 ; 1 Enable/Disable Non-Local Source Routing
dhcp_policy equ 21 ; N×8 Non-Local Source Routing Policy Filters
dhcp_mag_dg_assembly equ 22 ; 2 Max Datagram Reassembly Size
dhcp_default_ip_tll equ 23 ; 1 Default IP Time to Live
dhcp_mtu_timeout equ 24 ; 4 Path MTU Aging Timeout
dhcp_mtu_plateau equ 25 ; N×2 Path MTU Plateau Table
dhcp_forward = 19 ; 1 Enable/Disable IP Forwarding
dhcp_srcrte = 20 ; 1 Enable/Disable Non-Local Source Routing
dhcp_policy = 21 ; N×8 Non-Local Source Routing Policy Filters
dhcp_mag_dg_assembly = 22 ; 2 Max Datagram Reassembly Size
dhcp_default_ip_tll = 23 ; 1 Default IP Time to Live
dhcp_mtu_timeout = 24 ; 4 Path MTU Aging Timeout
dhcp_mtu_plateau = 25 ; N×2 Path MTU Plateau Table
;IP Layer Parameters per Interface
dhcp_mtu_interface equ 26 ; 2 Interface MTU Size
dhcp_mtu_subnet equ 27 ; 1 All Subnets are Local
dhcp_broadcast_address equ 28 ; 4 Broadcast Address
dhcp_mask_discovery equ 29 ; 1 Perform Mask Discovery
dhcp_mask_supplier equ 30 ; 1 Provide Mask to Others
dhcp_router_discovery equ 31 ; 1 Perform Router Discovery
dhcp_router_request equ 32 ; 4 Router Solicitation Address
dhcp_static_route equ 33 ; N×8 Static Routing Table
dhcp_mtu_interface = 26 ; 2 Interface MTU Size
dhcp_mtu_subnet = 27 ; 1 All Subnets are Local
dhcp_broadcast_address = 28 ; 4 Broadcast Address
dhcp_mask_discovery = 29 ; 1 Perform Mask Discovery
dhcp_mask_supplier = 30 ; 1 Provide Mask to Others
dhcp_router_discovery = 31 ; 1 Perform Router Discovery
dhcp_router_request = 32 ; 4 Router Solicitation Address
dhcp_static_route = 33 ; N×8 Static Routing Table
;Link Layer Parameters per Interface
dhcp_trailers equ 34 ; 1 Trailer Encapsulation
dhcp_arp_timeout equ 35 ; 4 ARP Cache Timeout
dhcp_ethernet equ 36 ; 1 Ethernet Encapsulation
dhcp_trailers = 34 ; 1 Trailer Encapsulation
dhcp_arp_timeout = 35 ; 4 ARP Cache Timeout
dhcp_ethernet = 36 ; 1 Ethernet Encapsulation
;TCP Parameters
dhcp_default_tcp_tll equ 37 ; 1 Default TCP Time to Live
dhcp_keepalive_time equ 38 ; 4 TCP Keepalive Interval
dhcp_keepalive_data equ 39 ; 1 TCP Keepalive Garbage
dhcp_default_tcp_tll = 37 ; 1 Default TCP Time to Live
dhcp_keepalive_time = 38 ; 4 TCP Keepalive Interval
dhcp_keepalive_data = 39 ; 1 TCP Keepalive Garbage
;Application and Service Parameters
dhcp_nis_domain equ 40 ; N NIS Domain Name
dhcp_nis_servers equ 41 ; N×4 NIS Server Addresses
dhcp_ntp_servers equ 42 ; N×4 NTP Server Addresses
dhcp_vendor_specific equ 43 ; N Vendor Specific Information
dhcp_netbios_name_srv equ 44 ; N×4 NETBIOS Name Servers
dhcp_netbios_dist_srv equ 45 ; N×4 NETBIOS Datagram Distribution
dhcp_netbios_node_type equ 46 ; 1 NETBIOS Node Type
dhcp_netbios_scope equ 47 ; N NETBIOS Scope
dhcp_x_window_font equ 48 ; N×4 X Window Font Server
dhcp_x_window_manager equ 49 ; N×4 X Window Display Manager
dhcp_nis_domain_name equ 64 ; N NIS+ v3 Client Domain Name
dhcp_nis_server_addr equ 65 ; N×4 NIS+ v3 Server Addresses
dhcp_home_agent_addrs equ 68 ; N×4 Mobile IP Home Agent Addresses
dhcp_smtp_server equ 69 ; N×4 Simple Mail Server Addresses
dhcp_pop3_server equ 70 ; N×4 Post Office Server Addresses
dhcp_nntp_server equ 71 ; N×4 Network News Server Addresses
dhcp_www_server equ 72 ; N×4 WWW Server Addresses
dhcp_finger_server equ 73 ; N×4 Finger Server Addresses
dhcp_irc_server equ 74 ; N×4 Chat Server Addresses
dhcp_streettalk_server equ 75 ; N×4 StreetTalk Server Addresses
dhcp_stda_server equ 76 ; N×4 ST Directory Assist. Addresses
dhcp_nis_domain = 40 ; N NIS Domain Name
dhcp_nis_servers = 41 ; N×4 NIS Server Addresses
dhcp_ntp_servers = 42 ; N×4 NTP Server Addresses
dhcp_vendor_specific = 43 ; N Vendor Specific Information
dhcp_netbios_name_srv = 44 ; N×4 NETBIOS Name Servers
dhcp_netbios_dist_srv = 45 ; N×4 NETBIOS Datagram Distribution
dhcp_netbios_node_type = 46 ; 1 NETBIOS Node Type
dhcp_netbios_scope = 47 ; N NETBIOS Scope
dhcp_x_window_font = 48 ; N×4 X Window Font Server
dhcp_x_window_manager = 49 ; N×4 X Window Display Manager
dhcp_nis_domain_name = 64 ; N NIS+ v3 Client Domain Name
dhcp_nis_server_addr = 65 ; N×4 NIS+ v3 Server Addresses
dhcp_home_agent_addrs = 68 ; N×4 Mobile IP Home Agent Addresses
dhcp_smtp_server = 69 ; N×4 Simple Mail Server Addresses
dhcp_pop3_server = 70 ; N×4 Post Office Server Addresses
dhcp_nntp_server = 71 ; N×4 Network News Server Addresses
dhcp_www_server = 72 ; N×4 WWW Server Addresses
dhcp_finger_server = 73 ; N×4 Finger Server Addresses
dhcp_irc_server = 74 ; N×4 Chat Server Addresses
dhcp_streettalk_server = 75 ; N×4 StreetTalk Server Addresses
dhcp_stda_server = 76 ; N×4 ST Directory Assist. Addresses
;DHCP Extensions
dhcp_address_request equ 50 ; 4 Requested IP Address
dhcp_address_time equ 51 ; 4 IP Address Lease Time
dhcp_option_overload equ 52 ; 1 Overload "sname" or "file"
dhcp_msg_type equ 53 ; 1 DHCP Message Type
dhcp_dhcp_server_id equ 54 ; 4 DHCP Server Identification
dhcp_parameter_list equ 55 ; N Parameter Request List
dhcp_dhcp_message equ 56 ; N DHCP Error Message
dhcp_dhcp_max_msg_size equ 57 ; 2 DHCP Maximum Message Size
dhcp_renewal_time equ 58 ; 4 DHCP Renewal (T1) Time
dhcp_rebinding_time equ 59 ; 4 DHCP Rebinding (T2) Time
dhcp_class_id equ 60 ; N Vendor Class Identifier
dhcp_client_id equ 61 ; N Client Identifier
dhcp_server_name equ 66 ; N TFTP Server Name
dhcp_bootfile_name equ 67 ; N Boot File Name
dhcp_address_request = 50 ; 4 Requested IP Address
dhcp_address_time = 51 ; 4 IP Address Lease Time
dhcp_option_overload = 52 ; 1 Overload "sname" or "file"
dhcp_msg_type = 53 ; 1 DHCP Message Type
dhcp_dhcp_server_id = 54 ; 4 DHCP Server Identification
dhcp_parameter_list = 55 ; N Parameter Request List
dhcp_dhcp_message = 56 ; N DHCP Error Message
dhcp_dhcp_max_msg_size = 57 ; 2 DHCP Maximum Message Size
dhcp_renewal_time = 58 ; 4 DHCP Renewal (T1) Time
dhcp_rebinding_time = 59 ; 4 DHCP Rebinding (T2) Time
dhcp_class_id = 60 ; N Vendor Class Identifier
dhcp_client_id = 61 ; N Client Identifier
dhcp_server_name = 66 ; N TFTP Server Name
dhcp_bootfile_name = 67 ; N Boot File Name
;Newer extensions
dhcp_netware_ip_domain equ 62 ; N Netware/IP Domain Name
dhcp_netware_ip_option equ 63 ; N Netware/IP sub Options
dhcp_user_class equ 77 ; N User Class Information
dhcp_directory_agent equ 78 ; N directory agent information
dhcp_service_scope equ 79 ; N service location agent scope
dhcp_rapid_commit equ 80 ; 0 Rapid Commit
dhcp_client_fqdn equ 81 ; N Fully Qualified Domain Name
dhcp_relay_agent_info equ 82 ; N Relay Agent Information, RFC 3046
dhcp_isns equ 83 ; N Internet Storage Name Service
dhcp_netware_ip_domain = 62 ; N Netware/IP Domain Name
dhcp_netware_ip_option = 63 ; N Netware/IP sub Options
dhcp_user_class = 77 ; N User Class Information
dhcp_directory_agent = 78 ; N directory agent information
dhcp_service_scope = 79 ; N service location agent scope
dhcp_rapid_commit = 80 ; 0 Rapid Commit
dhcp_client_fqdn = 81 ; N Fully Qualified Domain Name
dhcp_relay_agent_info = 82 ; N Relay Agent Information, RFC 3046
dhcp_isns = 83 ; N Internet Storage Name Service
; 84 REMOVED/Unassigned
dhcp_nds_servers equ 85 ; N Novell Directory Services
dhcp_nds_tree_name equ 86 ; N Novell Directory Services
dhcp_nds_conext equ 87 ; N Novell Directory Services
dhcp_bcmcs equ 88 ; Controller Domain Name list
dhcp_bcmcs equ 89 ; Controller IPv4 address option
dhcp_authentication equ 90 ; N Authentication
dhcp_nds_servers = 85 ; N Novell Directory Services
dhcp_nds_tree_name = 86 ; N Novell Directory Services
dhcp_nds_conext = 87 ; N Novell Directory Services
dhcp_bcmcs = 88 ; Controller Domain Name list
dhcp_bcmcs = 89 ; Controller IPv4 address option
dhcp_authentication = 90 ; N Authentication
; 91 REMOVED/Unassigned
; 92 REMOVED/Unassigned
dhcp_client_system equ 93 ; N Client System Architecture
dhcp_client_ndi equ 94 ; N Client Network Device Interface
dhcp_ldap equ 95 ; N Lightweight Directory Access Protocol
dhcp_client_system = 93 ; N Client System Architecture
dhcp_client_ndi = 94 ; N Client Network Device Interface
dhcp_ldap = 95 ; N Lightweight Directory Access Protocol
; 96 REMOVED/Unassigned
dhcp_uuid_guid equ 97 ; N UUID/GUID-based Client Identifier
dchp_user_auth equ 98 ; N Open Group's User Authentication
dhcp_uuid_guid = 97 ; N UUID/GUID-based Client Identifier
dchp_user_auth = 98 ; N Open Group's User Authentication
; 99 REMOVED/Unassigned
; 100 REMOVED/Unassigned
; 101 REMOVED/Unassigned
@ -134,42 +134,42 @@ dchp_user_auth equ 98 ; N Open Group's User Authentication
; 109 REMOVED/Unassigned
; 110 REMOVED/Unassigned
; 111 REMOVED/Unassigned
dhcp_netinfo_address equ 112 ; N NetInfo Parent Server Address
dhcp_netinfo_tag equ 113 ; N NetInfo Parent Server Tag
dhcp_url equ 114 ; N URL
dhcp_netinfo_address = 112 ; N NetInfo Parent Server Address
dhcp_netinfo_tag = 113 ; N NetInfo Parent Server Tag
dhcp_url = 114 ; N URL
; 115 REMOVED/Unassigned
dhcp_auto_config equ 116 ; N DHCP Auto-Configuration
dhcp_ns_search equ 117 ; N Name Service Search
dhcp_subnet_selection equ 118 ; 4 Subnet Selection Option
dhcp_domain_search equ 119 ; N DNS domain search list
dhcp_sip_servers equ 120 ; N SIP Servers DHCP Option
dhcp_cl_static_route equ 121 ; N Classless Static Route Option
dhcp_ccc equ 122 ; N CableLabs Client Configuration
dhcp_geoconf equ 123 ; 16 GeoConf Option
dhcp_v_i_vendor_class equ 124 ; Vendor-Identifying Vendor Class
dhcp_v_i_vendor_spec equ 125 ; Vendor-Identifying Vendor-Specific
dhcp_auto_config = 116 ; N DHCP Auto-Configuration
dhcp_ns_search = 117 ; N Name Service Search
dhcp_subnet_selection = 118 ; 4 Subnet Selection Option
dhcp_domain_search = 119 ; N DNS domain search list
dhcp_sip_servers = 120 ; N SIP Servers DHCP Option
dhcp_cl_static_route = 121 ; N Classless Static Route Option
dhcp_ccc = 122 ; N CableLabs Client Configuration
dhcp_geoconf = 123 ; 16 GeoConf Option
dhcp_v_i_vendor_class = 124 ; Vendor-Identifying Vendor Class
dhcp_v_i_vendor_spec = 125 ; Vendor-Identifying Vendor-Specific
; 126 REMOVED/Unassigned
; 127 REMOVED/Unassigned
dhcp_pxe equ 128 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_etherboot_sign equ 128 ; Etherboot signature. 6 bytes: E4:45:74:68:00:00
dhcp_docsis equ 128 ; DOCSIS "full security" server IP address
dhcp_tftp_server_ip equ 128 ; TFTP Server IP address (for IP Phone software load)
dhcp_pxe equ 129 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_kernel_options equ 129 ; Kernel options. Variable length string
dhcp_call_server_ip equ 129 ; Call Server IP address
dhcp_pxe equ 130 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_ethernet_interface equ 130 ; Ethernet interface. Variable length string.
dhcp_siscrimination equ 130 ; Discrimination string (to identify vendor)
dhcp_pxe equ 131 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_remote_stat_server equ 131 ; Remote statistics server IP address
dhcp_pxe equ 132 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_802.1p equ 132 ; 802.1P VLAN ID
dhcp_pxe equ 133 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_802.1q equ 133 ; 802.1Q L2 Priority
dhcp_pxe equ 134 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_diffserv equ 134 ; Diffserv Code Point
dhcp_pxe equ 135 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_http_proxy_psa equ 135 ; HTTP Proxy for phone-specific applications
dhcp_pxe = 128 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_etherboot_sign = 128 ; Etherboot signature. 6 bytes: E4:45:74:68:00:00
dhcp_docsis = 128 ; DOCSIS "full security" server IP address
dhcp_tftp_server_ip = 128 ; TFTP Server IP address (for IP Phone software load)
dhcp_pxe = 129 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_kernel_options = 129 ; Kernel options. Variable length string
dhcp_call_server_ip = 129 ; Call Server IP address
dhcp_pxe = 130 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_ethernet_interface = 130 ; Ethernet interface. Variable length string.
dhcp_siscrimination = 130 ; Discrimination string (to identify vendor)
dhcp_pxe = 131 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_remote_stat_server = 131 ; Remote statistics server IP address
dhcp_pxe = 132 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_802.1p = 132 ; 802.1P VLAN ID
dhcp_pxe = 133 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_802.1q = 133 ; 802.1Q L2 Priority
dhcp_pxe = 134 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_diffserv = 134 ; Diffserv Code Point
dhcp_pxe = 135 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005)
dhcp_http_proxy_psa = 135 ; HTTP Proxy for phone-specific applications
; 136 REMOVED/Unassigned
; 137 REMOVED/Unassigned
; 138 REMOVED/Unassigned
@ -184,9 +184,9 @@ dhcp_http_proxy_psa equ 135 ; HTTP Proxy for phone-specific application
; 147 REMOVED/Unassigned
; 148 REMOVED/Unassigned
; 149 REMOVED/Unassigned
dhcp_tftp_server_addr equ 150 ; TFTP server address (Tentatively Assigned - 23 June 2005)
dhcp_etherboot equ 150 ; Etherboot
dhcp_grub_conf_path equ 150 ; GRUB configuration path name
dhcp_tftp_server_addr = 150 ; TFTP server address (Tentatively Assigned - 23 June 2005)
dhcp_etherboot = 150 ; Etherboot
dhcp_grub_conf_path = 150 ; GRUB configuration path name
; 151 REMOVED/Unassigned
; 152 REMOVED/Unassigned
; 153 REMOVED/Unassigned
@ -211,10 +211,10 @@ dhcp_grub_conf_path equ 150 ; GRUB configuration path name
; 172 REMOVED/Unassigned
; 173 REMOVED/Unassigned
; 174 REMOVED/Unassigned
dhcp_etherboot equ 175 ; Etherboot (Tentatively Assigned - 23 June 2005)
dhcp_ip_telephone equ 176 ; IP Telephone (Tentatively Assigned - 23 June 2005)
dhcp_etherboot equ 177 ; Etherboot (Tentatively Assigned - 23 June 2005)
dhcp_packetcable equ 177 ; PacketCable and CableHome (replaced by 122)
dhcp_etherboot = 175 ; Etherboot (Tentatively Assigned - 23 June 2005)
dhcp_ip_telephone = 176 ; IP Telephone (Tentatively Assigned - 23 June 2005)
dhcp_etherboot = 177 ; Etherboot (Tentatively Assigned - 23 June 2005)
dhcp_packetcable = 177 ; PacketCable and CableHome (replaced by 122)
; 178 REMOVED/Unassigned
; 179 REMOVED/Unassigned
; 180 REMOVED/Unassigned
@ -245,10 +245,10 @@ dhcp_packetcable equ 177 ; PacketCable and CableHome (replaced by 122)
; 205 REMOVED/Unassigned
; 206 REMOVED/Unassigned
; 207 REMOVED/Unassigned
dhcp_pxelinux.magic equ 208 ; pxelinux.magic (string) = F1:00:74:7E (241.0.116.126) (Tentatively Assigned - 23 June 2005)
dhcp_pxelinux.conffile equ 209 ; pxelinux.configfile (text) (Tentatively Assigned - 23 June 2005)
dhcp_pxelinux.path equ 210 ; pxelinux.pathprefix (text) (Tentatively Assigned - 23 June 2005)
dhcp_pxelinux.reboot equ 211 ; pxelinux.reboottime (unsigned integer 32 bits) (Tentatively Assigned - 23 June 2005)
dhcp_pxelinux.magic = 208 ; pxelinux.magic (string) = F1:00:74:7E (241.0.116.126) (Tentatively Assigned - 23 June 2005)
dhcp_pxelinux.conffile = 209 ; pxelinux.configfile (text) (Tentatively Assigned - 23 June 2005)
dhcp_pxelinux.path = 210 ; pxelinux.pathprefix (text) (Tentatively Assigned - 23 June 2005)
dhcp_pxelinux.reboot = 211 ; pxelinux.reboottime (unsigned integer 32 bits) (Tentatively Assigned - 23 June 2005)
; 212 REMOVED/Unassigned
; 213 REMOVED/Unassigned
; 214 REMOVED/Unassigned
@ -257,7 +257,7 @@ dhcp_pxelinux.reboot equ 211 ; pxelinux.reboottime (unsigned integer
; 217 REMOVED/Unassigned
; 218 REMOVED/Unassigned
; 219 REMOVED/Unassigned
dhcp_subnet_aloc equ 220 ; Subnet Allocation Option (Tentatively Assigned - 23 June 2005)
dhcp_virtual_subnet equ 221 ; Virtual Subnet Selection Option (Tentatively Assigned - 23 June 2005)
dhcp_subnet_aloc = 220 ; Subnet Allocation Option (Tentatively Assigned - 23 June 2005)
dhcp_virtual_subnet = 221 ; Virtual Subnet Selection Option (Tentatively Assigned - 23 June 2005)
; 222 REMOVED/Unassigned
; 223 REMOVED/Unassigned

File diff suppressed because it is too large Load Diff