From 25872d593fc4f9d2845ef6f676ce4ec3d55e9aac Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Thu, 25 Sep 2025 12:47:06 -0400 Subject: dgram: Allow specification of dest hwaddr Signed-off-by: Ian Moffett --- src/dgram/dgram_link.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/dgram') diff --git a/src/dgram/dgram_link.c b/src/dgram/dgram_link.c index 718201b..eec8697 100644 --- a/src/dgram/dgram_link.c +++ b/src/dgram/dgram_link.c @@ -38,7 +38,7 @@ #include "dgram.h" tx_len_t -dgram_send(struct onet_link *link, void *buf, uint16_t len) +dgram_send(struct onet_link *link, mac_addr_t dst, void *buf, uint16_t len) { struct sockaddr_ll saddr; struct ether_hdr *eth; @@ -60,13 +60,16 @@ dgram_send(struct onet_link *link, void *buf, uint16_t len) memset(data, 0, len); memcpy(data, buf, len); + /* Hardware address needs to be big endian */ + dst = mac_swap((void *)&dst); + /* * Set up link layer sockaddr, load up the frame, datagram * and send it off. */ saddr.sll_ifindex = link->iface_idx; saddr.sll_halen = HW_ADDR_LEN; - ether_load_route(link->hwaddr, 0xFFFFFFFFFFFF, eth); + ether_load_route(link->hwaddr, dst, eth); dgram_load(len, 50, dgram); sendto( link->sockfd, p, dgram_len, 0, -- cgit v1.2.3