21#ifndef PROTOCORE_RAWL2_H
22#define PROTOCORE_RAWL2_H
26#if PROTOCORE_ENABLE_RAWL2
37#define ETH_VLAN_HDR_LEN 18
38#define ETH_TPID_8021Q 0x8100
39#define ETHERTYPE_IPV4 0x0800
40#define ETHERTYPE_ARP 0x0806
41#define ETHERTYPE_PROFINET 0x8892
42#define ETHERTYPE_GOOSE 0x88B8
43#define ETHERTYPE_POWERLINK 0x88AB
54 const uint8_t *payload;
64 const uint8_t *payload;
79 const uint8_t *payload;
134 Rawl2BuildArgs build_args;
135 Rawl2BuildVlanArgs build_vlan_args;
136 Rawl2ParseArgs parse_args;
137 Rawl2FcsArgs fcs_args;
144extern Rawl2Vars Rawl2V;
149 void (*
const build)(uint8_t *work);
150 void (*
const build_vlan)(uint8_t *work);
151 void (*
const parse)(uint8_t *work);
152 void (*
const fcs)(uint8_t *work);
157void protocore_rawl2_build(uint8_t *work);
158void protocore_rawl2_build_vlan(uint8_t *work);
159void protocore_rawl2_parse(uint8_t *work);
160void protocore_rawl2_fcs(uint8_t *work);
166static const Rawl2Ns Rawl2 __attribute__((unused)) = {
167 .build = protocore_rawl2_build,
168 .build_vlan = protocore_rawl2_build_vlan,
169 .parse = protocore_rawl2_parse,
170 .fcs = protocore_rawl2_fcs,
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS