21#ifndef DETERMINISTICESPASYNCWEBSERVER_RAWL2_H
22#define DETERMINISTICESPASYNCWEBSERVER_RAWL2_H
33 static constexpr uint16_t ETH_ALEN = 6;
34 static constexpr uint16_t ETH_HDR_LEN = 14;
35 static constexpr uint16_t ETH_VLAN_HDR_LEN = 18;
36 static constexpr uint16_t ETH_TPID_8021Q = 0x8100;
37 static constexpr uint16_t ETHERTYPE_IPV4 = 0x0800;
38 static constexpr uint16_t ETHERTYPE_ARP = 0x0806;
39 static constexpr uint16_t ETHERTYPE_PROFINET = 0x8892;
40 static constexpr uint16_t ETHERTYPE_GOOSE = 0x88B8;
41 static constexpr uint16_t ETHERTYPE_POWERLINK = 0x88AB;
48size_t detws_eth_build(
const uint8_t *dst,
const uint8_t *src, uint16_t ethertype,
const uint8_t *payload,
49 size_t payload_len, uint8_t *out,
size_t cap);
58size_t detws_eth_build_vlan(
const uint8_t *dst,
const uint8_t *src, uint8_t pcp,
bool dei, uint16_t vid,
59 uint16_t ethertype,
const uint8_t *payload,
size_t payload_len, uint8_t *out,
size_t cap);
70 const uint8_t *payload;
75bool detws_eth_parse(
const uint8_t *frame,
size_t len, EthFrame *out);
78uint32_t detws_eth_fcs(
const uint8_t *bytes,
size_t len);
User-facing configuration for DeterministicESPAsyncWebServer.