From 5dbca8a6cd6df906c279bf47d561b692b5c77d65 Mon Sep 17 00:00:00 2001 From: Richard Cochran Date: Sat, 17 Mar 2012 17:21:25 +0100 Subject: [PATCH] Add a header defining the Ethernet header and MAC addresses. Signed-off-by: Richard Cochran --- ether.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 ether.h diff --git a/ether.h b/ether.h new file mode 100644 index 0000000..78fd3e6 --- /dev/null +++ b/ether.h @@ -0,0 +1,41 @@ +/** + * @file ether.h + * @brief Provides definitions useful when working with Ethernet packets. + * @note Copyright (C) 2012 Richard Cochran + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +#ifndef HAVE_ETHER_H +#define HAVE_ETHER_H + +#include + +#define MAC_LEN 6 +#define PTP_DST_MAC 0x01, 0x1B, 0x19, 0x00, 0x00, 0x00 +#define P2P_DST_MAC 0x01, 0x80, 0xC2, 0x00, 0x00, 0x0E + +struct eth_addr { + uint8_t dst[MAC_LEN]; + uint8_t src[MAC_LEN]; +} __attribute__((packed)); + +struct eth_hdr { + struct eth_addr mac; + uint16_t type; +} __attribute__((packed)); + +#define OFF_ETYPE sizeof(struct eth_addr) + +#endif