summaryrefslogtreecommitdiff
path: root/net/udp.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/udp.c')
-rw-r--r--net/udp.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/net/udp.c b/net/udp.c
new file mode 100644
index 0000000..6913256
--- /dev/null
+++ b/net/udp.c
@@ -0,0 +1,16 @@
+#include "udp.h"
+#include "inet.h"
+#include "ipv4.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);
+}