<commit_before>TROUBLESHOOTING GUIDE:

note: Upon initial release, this project was tested on PXE clients that followed the Intel version 2.1 specification

Wireshark was used for packet capture.

ISSUE: DHCP request packet is not being sent to 4011, only is being broadcasted to port 67 (which the router, not the proxy DHCP server, responds to)

SERVER ADDRESSES IN DHCP OFFER:
	The DHCP offer sent has a server address specified in siaddr (a.k.a. next server address), which
	is set to the IP address of the proxy server's machine. There is also a Server ID option (DHCP option 54).
	Check to make sure that in the DHCP offer, this is also set to the Proxy DHCP server's address.

IPXE CLIENT PARTIAL PROTOCOL:
	
	If in the configuration file, the DHCP Offer is supposed to redirect the client to the TFTP server:
	
	Check to confirm that the siaddr field in the DHCP offer is set to the TFTP server address. The server ID option
	should still be set to the Proxy DHCP server's address. There should be vendor options (DCHP option 43) sent,
	with suboption 6 (discovery control) which should be set to 7. The boot servers suboption should have a single boot
	server of type 0, with the address set to the same addres in siaddr. The discovery control set to 7 ensures that this
	is the server that is used for booting. 
	
	If the DHCP offer does not redirect to TFTP server:
	
	In the DHCP offer's vendor options, discovery control should be set to 7 and the boot servers suboption should have type 0 and
	the address of the  Proxy DHCP server. The DHCP server ID option should be set to the Proxy DHCP server's address. The siaddr should
	also be set to the proxy DHCP server's address.
	
IF YOU ARE UNEXPECTEDLY HAVING PARTIAL PROTOCOL (client not sending a request):
ipxe source code requires that the DHCP offer be sent from port 67 to port 68 and the DHCP ack be sent from port 4011 to port 4011.
I.E. the source port matters. From your packet capture, make sure that the source ports for the offer and ack are as described above.
	<commit_msg>added functional testing results to troubleshooting guide<commit_after>TROUBLESHOOTING GUIDE:

note: Upon initial release, this project was tested on PXE clients that followed the Intel version 2.1 specification

Wireshark was used for packet capture.

ISSUE: DHCP request packet is not being sent to 4011, only is being broadcasted to port 67 (which the router, not the proxy DHCP server, responds to)

SERVER ADDRESSES IN DHCP OFFER:
	The DHCP offer sent has a server address specified in siaddr (a.k.a. next server address), which
	is set to the IP address of the proxy server's machine. There is also a Server ID option (DHCP option 54).
	Check to make sure that in the DHCP offer, this is also set to the Proxy DHCP server's address.

IPXE CLIENT PARTIAL PROTOCOL:
	
	If in the configuration file, the DHCP Offer is supposed to redirect the client to the TFTP server:
	
	Check to confirm that the siaddr field in the DHCP offer is set to the TFTP server address. The server ID option
	should still be set to the Proxy DHCP server's address. There should be vendor options (DCHP option 43) sent,
	with suboption 6 (discovery control) which should be set to 7. The boot servers suboption should have a single boot
	server of type 0, with the address set to the same addres in siaddr. The discovery control set to 7 ensures that this
	is the server that is used for booting. 
	
	If the DHCP offer does not redirect to TFTP server:
	
	In the DHCP offer's vendor options, discovery control should be set to 7 and the boot servers suboption should have type 0 and
	the address of the  Proxy DHCP server. The DHCP server ID option should be set to the Proxy DHCP server's address. The siaddr should
	also be set to the proxy DHCP server's address.
	
IF YOU ARE UNEXPECTEDLY HAVING PARTIAL PROTOCOL (client not sending a request):
ipxe source code requires that the DHCP offer be sent from port 67 to port 68 and the DHCP ack be sent from port 4011 to port 4011.
I.E. the source port matters. From your packet capture, make sure that the source ports for the offer and ack are as described above.

TESTING RESULTS:

Notes:
DHCP Proxy server address: 192.168.1.3
Boot server address: 192.168.1.7


Non ipxe/gpxe/nonzero client arch. client: no vendor options sent

DHCP Offer:
siaddr set to 192.168.1.3
server id option: 192.168.1.7

result: client did not send DHCP request to proxy.

DHCP Offer:
siaddr set to 192.168.1.3
server id option: 192.168.1.3

result: client sent DHCP request to proxy.

DHCP Ack:
siaddr: 192.168.1.3
server id option: 192.168.1.7

result: client tried to contact DHCP server for tftp

DHCP Ack:
siaddr: 192.168.1.7
server id option: 192.168.1.7

result: client error since server id option should be address of DHCP server

DHCP Ack:
siaddr: 192.168.1.7
server id option: 192.168.1.3

result: tftp carried out with tftp server, no errors

	
{'fraction_non_alphanumeric': 0.03803905614320586, 'fraction_numerical': 0.03173311635475997, 'mean_word_length': 3.9417085427135676, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 12, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6319622', 'n_tokens_mistral': 1592, 'n_tokens_neox': 1378, 'n_words': 834}