TEMU  2
The Terma Emulator
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Ethernet.h File Reference
#include "temu-c/Support/Objsys.h"
#include "temu-c/Support/Buffer.h"
#include "temu-c/Support/Bitmanip.h"
#include <stdint.h>
Include dependency graph for Ethernet.h:

Go to the source code of this file.

Data Structures

struct  temu_EthFrame
 
struct  temu_MACIface
 
struct  temu_PHYIface
 
struct  temu_EthernetIface
 
struct  temu_MDIOIface
 

Macros

#define TEMU_ETH_CRC_ERR   1
 
#define TEMU_ETH_ETH_CRC_NOT_SET   (1 << 1)
 
#define TEMU_ETH_IP_CRC_NOT_SET   (1 << 2)
 
#define TEMU_ETH_UDP_CRC_NOT_SET   (1 << 3)
 
#define TEMU_ETH_TCP_CRC_NOT_SET   (1 << 4)
 
#define TEMU_MAC_IFACE_TYPE   "temu::MACIface"
 
#define TEMU_PHY_IFACE_TYPE   "temu::PHYIface"
 
#define TEMU_ETHERNET_IFACE_TYPE   "temu::EthernetIface"
 
#define TEMU_MDIO_IFACE_TYPE   "temu::MDIOIface"
 
#define TEMU_ETH_MIN_PAYLOAD   46
 
#define TEMU_ETH_MAX_PAYLOAD   1500
 
#define TEMU_ETH_LAYER1_HEADER_LENGTH   (7+1+12+2)
 
#define TEMU_ETH_LAYER2_HEADER_LENGTH   (6 + 6 + 2)
 
#define TEMU_ETH_CRC_LENGTH   4
 
#define TEMU_ETH_INTERPACKET_GAP   12
 
#define TEMU_ETH_PAYLOAD_OFFSET   (6 + 6 + 2)
 
#define TEMU_ETH_MAX_FRAME_LENGTH   1518
 
#define TEMU_ETH_802_1Q_MAX_FRAME_LENGTH   1522
 
#define TEMU_ETHTYPE_IPV4   0x0800
 
#define TEMU_ETHTYPE_ARP   0x0806
 
#define TEMU_ETHTYPE_WAKE_ON_LAN   0x0842
 
#define TEMU_ETHTYPE_SRP   0x22ea
 
#define TEMU_ETHTYPE_RARP   0x8035
 
#define TEMU_ETHTYPE_802_1Q   0x8100
 
#define TEMU_ETHTYPE_IPV6   0x86dd
 
#define TEMU_ETHTYPE_PTP   0x88f7
 
#define TEMU_ETHTYPE_TTE_CTRL   0x891d
 
#define TEMU_ETH_IPV4_VERS_IHL_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 0)
 
#define TEMU_ETH_IPV4_DSCP_ECN_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 1)
 
#define TEMU_ETH_IPV4_TOTAL_LENGTH_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 2)
 
#define TEMU_ETH_IPV4_FRAGMENTATION_INFO_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 6)
 
#define TEMU_ETH_IPV4_TTL_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 8)
 
#define TEMU_ETH_IPV4_PROTOCOL_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 9)
 
#define TEMU_ETH_IPV4_CRC_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 10)
 
#define TEMU_ETH_IPV4_SRC_IP_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 12)
 
#define TEMU_ETH_IPV4_DST_IP_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 16)
 
#define TEMU_IP_PROT_TCP   0x06
 
#define TEMU_IP_PROT_UDP   0x11
 
#define TEMU_TCP_CRC_OFFSET   16
 
#define TEMU_UDP_CRC_OFFSET   6
 
#define ETH_BCAST_ADDR   UINT64_C(0xffffffffffff)
 
#define ETH_ETHERTYPE_MIN   1536
 
#define ETH_CRC_MAGIC   0xC704DD7B
 
#define ETH_CRC_POLY_NORM   0x04C11DB7
 
#define ETH_CRC_POLY_REV   0xEDB88320
 
#define ETH_CRC_POLY_REV_RECIP   0x82608EDB
 
#define ETH_CRC_POLY_LE   0xedb88320
 
#define ETH_CRC_POLY_BE   0x04c11db6
 

Functions

 TEMU_IFACE_REFERENCE_TYPE (temu_MAC)
 
 TEMU_IFACE_REFERENCE_TYPE (temu_PHY)
 
 TEMU_IFACE_REFERENCE_TYPE (temu_Ethernet)
 
 TEMU_IFACE_REFERENCE_TYPE (temu_MDIO)
 

Macro Definition Documentation

#define ETH_BCAST_ADDR   UINT64_C(0xffffffffffff)

Definition at line 256 of file Ethernet.h.

#define ETH_CRC_MAGIC   0xC704DD7B

Definition at line 283 of file Ethernet.h.

#define ETH_CRC_POLY_BE   0x04c11db6

Definition at line 289 of file Ethernet.h.

#define ETH_CRC_POLY_LE   0xedb88320

Definition at line 288 of file Ethernet.h.

#define ETH_CRC_POLY_NORM   0x04C11DB7

Definition at line 284 of file Ethernet.h.

#define ETH_CRC_POLY_REV   0xEDB88320

Definition at line 285 of file Ethernet.h.

#define ETH_CRC_POLY_REV_RECIP   0x82608EDB

Definition at line 286 of file Ethernet.h.

#define ETH_ETHERTYPE_MIN   1536

Definition at line 280 of file Ethernet.h.

#define TEMU_ETH_802_1Q_MAX_FRAME_LENGTH   1522

Definition at line 151 of file Ethernet.h.

#define TEMU_ETH_CRC_ERR   1

Definition at line 62 of file Ethernet.h.

#define TEMU_ETH_CRC_LENGTH   4

Definition at line 147 of file Ethernet.h.

#define TEMU_ETH_ETH_CRC_NOT_SET   (1 << 1)

Definition at line 64 of file Ethernet.h.

#define TEMU_ETH_INTERPACKET_GAP   12

Definition at line 148 of file Ethernet.h.

#define TEMU_ETH_IP_CRC_NOT_SET   (1 << 2)

Definition at line 65 of file Ethernet.h.

#define TEMU_ETH_IPV4_CRC_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 10)

Definition at line 174 of file Ethernet.h.

#define TEMU_ETH_IPV4_DSCP_ECN_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 1)

Definition at line 169 of file Ethernet.h.

#define TEMU_ETH_IPV4_DST_IP_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 16)

Definition at line 176 of file Ethernet.h.

#define TEMU_ETH_IPV4_FRAGMENTATION_INFO_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 6)

Definition at line 171 of file Ethernet.h.

#define TEMU_ETH_IPV4_PROTOCOL_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 9)

Definition at line 173 of file Ethernet.h.

#define TEMU_ETH_IPV4_SRC_IP_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 12)

Definition at line 175 of file Ethernet.h.

#define TEMU_ETH_IPV4_TOTAL_LENGTH_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 2)

Definition at line 170 of file Ethernet.h.

#define TEMU_ETH_IPV4_TTL_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 8)

Definition at line 172 of file Ethernet.h.

#define TEMU_ETH_IPV4_VERS_IHL_OFFSET   (TEMU_ETH_PAYLOAD_OFFSET + 0)

Definition at line 168 of file Ethernet.h.

#define TEMU_ETH_LAYER1_HEADER_LENGTH   (7+1+12+2)

Definition at line 145 of file Ethernet.h.

#define TEMU_ETH_LAYER2_HEADER_LENGTH   (6 + 6 + 2)

Definition at line 146 of file Ethernet.h.

#define TEMU_ETH_MAX_FRAME_LENGTH   1518

Definition at line 150 of file Ethernet.h.

#define TEMU_ETH_MAX_PAYLOAD   1500

Definition at line 144 of file Ethernet.h.

#define TEMU_ETH_MIN_PAYLOAD   46

Definition at line 143 of file Ethernet.h.

#define TEMU_ETH_PAYLOAD_OFFSET   (6 + 6 + 2)

Definition at line 149 of file Ethernet.h.

#define TEMU_ETH_TCP_CRC_NOT_SET   (1 << 4)

Definition at line 67 of file Ethernet.h.

#define TEMU_ETH_UDP_CRC_NOT_SET   (1 << 3)

Definition at line 66 of file Ethernet.h.

#define TEMU_ETHERNET_IFACE_TYPE   "temu::EthernetIface"

Definition at line 121 of file Ethernet.h.

#define TEMU_ETHTYPE_802_1Q   0x8100

Definition at line 162 of file Ethernet.h.

#define TEMU_ETHTYPE_ARP   0x0806

Definition at line 158 of file Ethernet.h.

#define TEMU_ETHTYPE_IPV4   0x0800

Definition at line 157 of file Ethernet.h.

#define TEMU_ETHTYPE_IPV6   0x86dd

Definition at line 163 of file Ethernet.h.

#define TEMU_ETHTYPE_PTP   0x88f7

Definition at line 164 of file Ethernet.h.

#define TEMU_ETHTYPE_RARP   0x8035

Definition at line 161 of file Ethernet.h.

#define TEMU_ETHTYPE_SRP   0x22ea

Definition at line 160 of file Ethernet.h.

#define TEMU_ETHTYPE_TTE_CTRL   0x891d

Definition at line 165 of file Ethernet.h.

#define TEMU_ETHTYPE_WAKE_ON_LAN   0x0842

Definition at line 159 of file Ethernet.h.

#define TEMU_IP_PROT_TCP   0x06

Definition at line 178 of file Ethernet.h.

#define TEMU_IP_PROT_UDP   0x11

Definition at line 179 of file Ethernet.h.

#define TEMU_MAC_IFACE_TYPE   "temu::MACIface"

Definition at line 86 of file Ethernet.h.

#define TEMU_MDIO_IFACE_TYPE   "temu::MDIOIface"

Definition at line 140 of file Ethernet.h.

#define TEMU_PHY_IFACE_TYPE   "temu::PHYIface"

Definition at line 98 of file Ethernet.h.

#define TEMU_TCP_CRC_OFFSET   16

Definition at line 182 of file Ethernet.h.

#define TEMU_UDP_CRC_OFFSET   6

Definition at line 183 of file Ethernet.h.

Function Documentation

TEMU_IFACE_REFERENCE_TYPE ( temu_MAC  )
TEMU_IFACE_REFERENCE_TYPE ( temu_PHY  )
TEMU_IFACE_REFERENCE_TYPE ( temu_Ethernet  )
TEMU_IFACE_REFERENCE_TYPE ( temu_MDIO  )