xref: /kvmtool/net/uip/dhcp.c (revision 0c4bfcac1c3ca01fb6e58b6921217b5194d550ff)
1*0c4bfcacSAsias He #include "kvm/uip.h"
2*0c4bfcacSAsias He 
3*0c4bfcacSAsias He bool uip_udp_is_dhcp(struct uip_udp *udp)
4*0c4bfcacSAsias He {
5*0c4bfcacSAsias He 	struct uip_dhcp *dhcp;
6*0c4bfcacSAsias He 
7*0c4bfcacSAsias He 	if (ntohs(udp->sport) != UIP_DHCP_PORT_CLIENT ||
8*0c4bfcacSAsias He 	    ntohs(udp->dport) != UIP_DHCP_PORT_SERVER)
9*0c4bfcacSAsias He 		return false;
10*0c4bfcacSAsias He 
11*0c4bfcacSAsias He 	dhcp = (struct uip_dhcp *)udp;
12*0c4bfcacSAsias He 
13*0c4bfcacSAsias He 	if (ntohl(dhcp->magic_cookie) != UIP_DHCP_MAGIC_COOKIE)
14*0c4bfcacSAsias He 		return false;
15*0c4bfcacSAsias He 
16*0c4bfcacSAsias He 	return true;
17*0c4bfcacSAsias He }
18