summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-09-24 20:58:52 -0400
committerIan Moffett <ian@osmora.org>2025-09-24 20:58:52 -0400
commit570dc38023cac588a66118e8beb8dba66a3ec459 (patch)
treee330acd2f1dc7105523467c362f36b6d6806c612 /src/main.c
parente42e9220a91da7f83b4754be690a67a5ef65eed0 (diff)
dgram: Add datagram layer
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index 4616d12..62bf519 100644
--- a/src/main.c
+++ b/src/main.c
@@ -38,6 +38,7 @@
#include <unistd.h>
#include <string.h>
#include "if_ether.h"
+#include "dgram.h"
#define TEST_STR "Hello from o.1p!! Meow meow!"
@@ -57,15 +58,18 @@ help(char **argv)
static int
data_send(void)
{
- char data[256], *p;
+ char data[DGRAM_LEN(128)], *p;
struct sockaddr_ll saddr;
struct ether_hdr *eth;
+ struct onet_dgram *dgram;
struct ifreq ifr;
int error, sockfd;
- memset(data, 0, sizeof(data));
eth = (struct ether_hdr *)data;
- p = &data[sizeof(eth) + 100];
+ p = DGRAM_DATA(data);
+ dgram = DGRAM_HDR(data);
+
+ memset(data, 0, sizeof(data));
memcpy(p, TEST_STR, sizeof(TEST_STR));
sockfd = socket(AF_PACKET, SOCK_RAW, IPPROTO_RAW);
@@ -83,12 +87,13 @@ data_send(void)
}
/*
- * Set up link layer sockaddr, load up the frame
+ * Set up link layer sockaddr, load up the frame, datagram
* and send it off.
*/
saddr.sll_ifindex = ifr.ifr_ifindex;
saddr.sll_halen = ETH_ALEN;
ether_load_route(0x54E1AD2CAE48, 0xFFFFFFFFFFFF, eth);
+ dgram_load(sizeof(TEST_STR), 50, dgram);
sendto(
sockfd, &data, sizeof(data), 0,
(struct sockaddr *)&saddr, sizeof(struct sockaddr_ll)