#include "udp.h" #include "inet.h" #include "ipv4.h" #include "ntp.h" uint32_t udp_generic(struct netdev *dev, uint32_t ip, uint16_t src, uint16_t dst, uint8_t* pos,uint8_t *end) { pos-=8; //we need 64 bytes struct udp_v4 *udp=pos; udp->src_port=htons(src); udp->dst_port=htons(dst); udp->len=htons(end-pos); udp->csum=0; // TODO: optional return ipv4_generic(dev,ip,IPV4_P_UDP,pos,end); } uint32_t udp_incoming(uint8_t* start,uint8_t *pos) { struct udp_v4 *udp=pos; pos+=8; //header 64 bytes if(udp->src_port==htons(123)) return ntp_incoming(start, pos); return 0; }