From 8c193693d7d0b5b118cf2831eeef15e28ee9851e Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 25 Apr 2014 03:23:13 +0200 Subject: Move around some code --- src/fastd.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/fastd.h') diff --git a/src/fastd.h b/src/fastd.h index 328666c..f12d036 100644 --- a/src/fastd.h +++ b/src/fastd.h @@ -349,6 +349,29 @@ static inline size_t fastd_max_inner_packet(void) { } } +static inline fastd_eth_addr_t fastd_get_source_address(const fastd_buffer_t buffer) { + fastd_eth_addr_t ret; + + switch (conf.mode) { + case MODE_TAP: + memcpy(&ret, buffer.data+offsetof(struct ethhdr, h_source), ETH_ALEN); + return ret; + default: + exit_bug("invalid mode"); + } +} + +static inline fastd_eth_addr_t fastd_get_dest_address(const fastd_buffer_t buffer) { + fastd_eth_addr_t ret; + switch (conf.mode) { + case MODE_TAP: + memcpy(&ret, buffer.data+offsetof(struct ethhdr, h_dest), ETH_ALEN); + return ret; + default: + exit_bug("invalid mode"); + } +} + static inline size_t fastd_max_outer_packet(void) { return PACKET_TYPE_LEN + fastd_max_inner_packet() + conf.max_overhead; } -- cgit v1.2.3