- memset(&dest, 0, sizeof(dest));
- memset(&packet, 0, sizeof(packet));
- packet.data = *payload; /* struct copy */
+ memset(&dest_sll, 0, sizeof(dest_sll));
+ memset(&packet, 0, offsetof(struct ip_udp_dhcp_packet, data));
+ packet.data = *dhcp_pkt; /* struct copy */
+
+ dest_sll.sll_family = AF_PACKET;
+ dest_sll.sll_protocol = htons(ETH_P_IP);
+ dest_sll.sll_ifindex = ifindex;
+ dest_sll.sll_halen = 6;
+ memcpy(dest_sll.sll_addr, dest_arp, 6);