More and more there computers that use UEFI.
The only way I have found to distinguish them using: Client System Architecture Type Option Definition (93)
If DHCP package 93 we get: 0000 - this will be the BIOS 'basis
If we get DHCP package: 0009 - it will be the basis for UEFI :
or more :
Type Architecture Name
---- -----------------
0 Intel x86PC
1 NEC/PC98
2 EFI Itanium
3 DEC Alpha
4 Arc x86
5 Intel Lean Client
6 EFI IA32
7 EFI BC
8 EFI Xscale
9 EFI x86-64
Legacy Bios :
10:00:17 dhcp,debug,packet default received request with id 704693540 from 0.0.0.0
10:00:17 dhcp,debug,packet secs = 4
10:00:17 dhcp,debug,packet flags = broadcast
10:00:17 dhcp,debug,packet ciaddr = 0.0.0.0
10:00:17 dhcp,debug,packet chaddr = 00:0C:29:00:C5:24
10:00:17 dhcp,debug,packet Msg-Type = request
10:00:17 dhcp,debug,packet Address-Request = 10.10.10.59
10:00:17 dhcp,debug,packet Parameter-List = Subnet-Mask,Unknown(2),Router,Unknown(5),Domain-Server,Unknown(11),Host-Name,Unknown(13),Domain-Name,Unknown(16),Unknown(17),Unknown(18),Vendor-Specific,Server-Id,Class-Id,Unknown(67),Unknown(128),Unknown
(129),Unknown(130),Unknown(131)
10:00:17 dhcp,debug,packet ,Unknown(132),Unknown(133),Unknown(134),Unknown(135)
10:00:17 dhcp,debug,packet Max-DHCP-Message-Size = 1260
10:00:17 dhcp,debug,packet Server-Id = 10.10.10.1
10:00:17 dhcp,debug,packet Unknown(97) = 00-56-4D-0E-48-42-BB-F9-A4-DD-FF-B7-64-B9-00-C5-24
10:00:17 dhcp,debug,packet Unknown(93) = 00-00
10:00:17 dhcp,debug,packet Unknown(94) = 01-02-01
10:00:17 dhcp,debug,packet Class-Id = "PXEClient:Arch:00000:UNDI:002001"
10:00:17 dhcp,info default assigned 10.10.10.59 to 00:0C:29:00:C5:24
10:00:17 dhcp,debug,packet default sending ack with id 704693540 to 255.255.255.255
10:00:17 dhcp,debug,packet flags = broadcast
10:00:17 dhcp,debug,packet ciaddr = 0.0.0.0
10:00:17 dhcp,debug,packet yiaddr = 10.10.10.59
10:00:17 dhcp,debug,packet siaddr = 10.10.10.62
10:00:17 dhcp,debug,packet chaddr = 00:0C:29:00:C5:24
10:00:17 dhcp,debug,packet Msg-Type = ack
10:00:17 dhcp,debug,packet Server-Id = 10.10.10.1
10:00:17 dhcp,debug,packet Address-Time = 600
10:00:17 dhcp,debug,packet Subnet-Mask = 255.255.255.192
10:00:17 dhcp,debug,packet Router = 10.10.10.1
10:00:17 dhcp,debug,packet Domain-Server = 10.10.10.1
10:00:17 dhcp,debug,packet Domain-Name = "10.10.10.1"
10:00:17 dhcp,debug,packet Unknown(67) = 42-6F-6F-74-2F-78-36-34-2F-45-46-49-2F-42-6F-6F-74-2F-62-6F-6F-74-78-36-34-2E-65-66-69
UEFI Bios :
10:03:05 dhcp,debug,packet default received request with id 2089842577 from 0.0.0.0
10:03:05 dhcp,debug,packet flags = broadcast
10:03:05 dhcp,debug,packet ciaddr = 0.0.0.0
10:03:05 dhcp,debug,packet chaddr = 00:0C:29:00:C5:24
10:03:05 dhcp,debug,packet Msg-Type = request
10:03:05 dhcp,debug,packet Server-Id = 10.10.10.1
10:03:05 dhcp,debug,packet Address-Request = 10.10.10.59
10:03:05 dhcp,debug,packet Max-DHCP-Message-Size = 65280
10:03:05 dhcp,debug,packet Parameter-List = Subnet-Mask,Unknown(2),Router,Unknown(4),Unknown(5),Domain-Server,Host-Name,Unknown(13),Domain-Name,Unknown(17),Unknown(18),Unknown(22),Unknown(23),Broadcast-Address,Unknown(40),Unknown(41),NTP-Server,Ven
dor-Specific,Address-Request,Ad
10:03:05 dhcp,debug,packet dress-Time,Server-Id,Renewal-Time,Rebinding-Time,Class-Id,Unknown(66),Unknown(67),Unknown(97),Unknown(128),Unknown(129),Unknown(130),Unknown(131),Unknown(132),Unknown(133),Unknown(134),Unknown(135)
10:03:05 dhcp,debug,packet Unknown(97) = 00-56-4D-0E-48-42-BB-F9-A4-DD-FF-B7-64-B9-00-C5-24
10:03:05 dhcp,debug,packet Unknown(94) = 01-03-10
10:03:05 dhcp,debug,packet Unknown(93) = 00-09
10:03:05 dhcp,debug,packet Class-Id = "PXEClient:Arch:00009:UNDI:003016"
10:03:05 dhcp,info default assigned 10.10.10.59 to 00:0C:29:00:C5:24
10:03:05 dhcp,debug,packet default sending ack with id 2089842577 to 255.255.255.255
10:03:05 dhcp,debug,packet flags = broadcast
10:03:05 dhcp,debug,packet ciaddr = 0.0.0.0
10:03:05 dhcp,debug,packet yiaddr = 10.10.10.59
10:03:05 dhcp,debug,packet siaddr = 10.10.10.62
10:03:05 dhcp,debug,packet chaddr = 00:0C:29:00:C5:24
10:03:05 dhcp,debug,packet Msg-Type = ack
10:03:05 dhcp,debug,packet Server-Id = 10.10.10.1
10:03:05 dhcp,debug,packet Address-Time = 600
10:03:05 dhcp,debug,packet Subnet-Mask = 255.255.255.192
10:03:05 dhcp,debug,packet Router = 10.10.10.1
10:03:05 dhcp,debug,packet Domain-Server = 10.10.10.1
10:03:05 dhcp,debug,packet Domain-Name = "10.10.10.1"
10:03:05 dhcp,debug,packet NTP-Server = 192.168.102.254
10:03:05 dhcp,debug,packet Unknown(67) = 42-6F-6F-74-2F-78-36-34-2F-45-46-49-2F-42-6F-6F-74-2F-62-6F-6F-74-78-36-34-2E-65-66-69
It's very simple soliution, we have everything we need.
Mikcrotik - please please please, Do It
It wil be best solution PXE function for multiboot.
People are looking for the answer to distinguish the BIOS and UEFI boot.
http://forum.mikrotik.com/viewtopic.php ... fi#p450329