Skip to content

Commit 4558e48

Browse files
committed
std.os.linux: add constants for ETH
1 parent 0cd31fc commit 4558e48

File tree

1 file changed

+233
-0
lines changed

1 file changed

+233
-0
lines changed

lib/std/os/linux.zig

+233
Original file line numberDiff line numberDiff line change
@@ -4212,6 +4212,239 @@ pub const IPV6 = struct {
42124212
pub const FREEBIND = 78;
42134213
};
42144214

4215+
/// IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
4216+
/// and FCS/CRC (frame check sequence).
4217+
pub const ETH = struct {
4218+
/// Octets in one ethernet addr
4219+
pub const ALEN = 6;
4220+
/// Octets in ethernet type field
4221+
pub const TLEN = 2;
4222+
/// Total octets in header
4223+
pub const HLEN = 14;
4224+
/// Min. octets in frame sans FC
4225+
pub const ZLEN = 60;
4226+
/// Max. octets in payload
4227+
pub const DATA_LEN = 1500;
4228+
/// Max. octets in frame sans FCS
4229+
pub const FRAME_LEN = 1514;
4230+
/// Octets in the FCS
4231+
pub const FCS_LEN = 4;
4232+
4233+
/// Min IPv4 MTU per RFC791
4234+
pub const MIN_MTU = 68;
4235+
/// 65535, same as IP_MAX_MTU
4236+
pub const MAX_MTU = 0xFFFF;
4237+
4238+
/// These are the defined Ethernet Protocol ID's.
4239+
pub const P = struct {
4240+
/// Ethernet Loopback packet
4241+
pub const LOOP = 0x0060;
4242+
/// Xerox PUP packet
4243+
pub const PUP = 0x0200;
4244+
/// Xerox PUP Addr Trans packet
4245+
pub const PUPAT = 0x0201;
4246+
/// TSN (IEEE 1722) packet
4247+
pub const TSN = 0x22F0;
4248+
/// ERSPAN version 2 (type III)
4249+
pub const ERSPAN2 = 0x22EB;
4250+
/// Internet Protocol packet
4251+
pub const IP = 0x0800;
4252+
/// CCITT X.25
4253+
pub const X25 = 0x0805;
4254+
/// Address Resolution packet
4255+
pub const ARP = 0x0806;
4256+
/// G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ]
4257+
pub const BPQ = 0x08FF;
4258+
/// Xerox IEEE802.3 PUP packet
4259+
pub const IEEEPUP = 0x0a00;
4260+
/// Xerox IEEE802.3 PUP Addr Trans packet
4261+
pub const IEEEPUPAT = 0x0a01;
4262+
/// B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ]
4263+
pub const BATMAN = 0x4305;
4264+
/// DEC Assigned proto
4265+
pub const DEC = 0x6000;
4266+
/// DEC DNA Dump/Load
4267+
pub const DNA_DL = 0x6001;
4268+
/// DEC DNA Remote Console
4269+
pub const DNA_RC = 0x6002;
4270+
/// DEC DNA Routing
4271+
pub const DNA_RT = 0x6003;
4272+
/// DEC LAT
4273+
pub const LAT = 0x6004;
4274+
/// DEC Diagnostics
4275+
pub const DIAG = 0x6005;
4276+
/// DEC Customer use
4277+
pub const CUST = 0x6006;
4278+
/// DEC Systems Comms Arch
4279+
pub const SCA = 0x6007;
4280+
/// Trans Ether Bridging
4281+
pub const TEB = 0x6558;
4282+
/// Reverse Addr Res packet
4283+
pub const RARP = 0x8035;
4284+
/// Appletalk DDP
4285+
pub const ATALK = 0x809B;
4286+
/// Appletalk AARP
4287+
pub const AARP = 0x80F3;
4288+
/// 802.1Q VLAN Extended Header
4289+
pub const P_8021Q = 0x8100;
4290+
/// ERSPAN type II
4291+
pub const ERSPAN = 0x88BE;
4292+
/// IPX over DIX
4293+
pub const IPX = 0x8137;
4294+
/// IPv6 over bluebook
4295+
pub const IPV6 = 0x86DD;
4296+
/// IEEE Pause frames. See 802.3 31B
4297+
pub const PAUSE = 0x8808;
4298+
/// Slow Protocol. See 802.3ad 43B
4299+
pub const SLOW = 0x8809;
4300+
/// Web-cache coordination protocol defined in draft-wilson-wrec-wccp-v2-00.txt
4301+
pub const WCCP = 0x883E;
4302+
/// MPLS Unicast traffic
4303+
pub const MPLS_UC = 0x8847;
4304+
/// MPLS Multicast traffic
4305+
pub const MPLS_MC = 0x8848;
4306+
/// MultiProtocol Over ATM
4307+
pub const ATMMPOA = 0x884c;
4308+
/// PPPoE discovery messages
4309+
pub const PPP_DISC = 0x8863;
4310+
/// PPPoE session messages
4311+
pub const PPP_SES = 0x8864;
4312+
/// HPNA, wlan link local tunnel
4313+
pub const LINK_CTL = 0x886c;
4314+
/// Frame-based ATM Transport over Ethernet
4315+
pub const ATMFATE = 0x8884;
4316+
/// Port Access Entity (IEEE 802.1X)
4317+
pub const PAE = 0x888E;
4318+
/// PROFINET
4319+
pub const PROFINET = 0x8892;
4320+
/// Multiple proprietary protocols
4321+
pub const REALTEK = 0x8899;
4322+
/// ATA over Ethernet
4323+
pub const AOE = 0x88A2;
4324+
/// EtherCAT
4325+
pub const ETHERCAT = 0x88A4;
4326+
/// 802.1ad Service VLAN
4327+
pub const @"8021AD" = 0x88A8;
4328+
/// 802.1 Local Experimental 1.
4329+
pub const @"802_EX1" = 0x88B5;
4330+
/// 802.11 Preauthentication
4331+
pub const PREAUTH = 0x88C7;
4332+
/// TIPC
4333+
pub const TIPC = 0x88CA;
4334+
/// Link Layer Discovery Protocol
4335+
pub const LLDP = 0x88CC;
4336+
/// Media Redundancy Protocol
4337+
pub const MRP = 0x88E3;
4338+
/// 802.1ae MACsec
4339+
pub const MACSEC = 0x88E5;
4340+
/// 802.1ah Backbone Service Tag
4341+
pub const @"8021AH" = 0x88E7;
4342+
/// 802.1Q MVRP
4343+
pub const MVRP = 0x88F5;
4344+
/// IEEE 1588 Timesync
4345+
pub const @"1588" = 0x88F7;
4346+
/// NCSI protocol
4347+
pub const NCSI = 0x88F8;
4348+
/// IEC 62439-3 PRP/HSRv0
4349+
pub const PRP = 0x88FB;
4350+
/// Connectivity Fault Management
4351+
pub const CFM = 0x8902;
4352+
/// Fibre Channel over Ethernet
4353+
pub const FCOE = 0x8906;
4354+
/// Infiniband over Ethernet
4355+
pub const IBOE = 0x8915;
4356+
/// TDLS
4357+
pub const TDLS = 0x890D;
4358+
/// FCoE Initialization Protocol
4359+
pub const FIP = 0x8914;
4360+
/// IEEE 802.21 Media Independent Handover Protocol
4361+
pub const @"80221" = 0x8917;
4362+
/// IEC 62439-3 HSRv1
4363+
pub const HSR = 0x892F;
4364+
/// Network Service Header
4365+
pub const NSH = 0x894F;
4366+
/// Ethernet loopback packet, per IEEE 802.3
4367+
pub const LOOPBACK = 0x9000;
4368+
/// deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ]
4369+
pub const QINQ1 = 0x9100;
4370+
/// deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ]
4371+
pub const QINQ2 = 0x9200;
4372+
/// deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ]
4373+
pub const QINQ3 = 0x9300;
4374+
/// Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ]
4375+
pub const EDSA = 0xDADA;
4376+
/// Fake VLAN Header for DSA [ NOT AN OFFICIALLY REGISTERED ID ]
4377+
pub const DSA_8021Q = 0xDADB;
4378+
/// A5PSW Tag Value [ NOT AN OFFICIALLY REGISTERED ID ]
4379+
pub const DSA_A5PSW = 0xE001;
4380+
/// ForCES inter-FE LFB type
4381+
pub const IFE = 0xED3E;
4382+
/// IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ]
4383+
pub const AF_IUCV = 0xFBFB;
4384+
/// If the value in the ethernet type is more than this value then the frame is Ethernet II. Else it is 802.3
4385+
pub const @"802_3_MIN" = 0x0600;
4386+
4387+
// Non DIX types. Won't clash for 1500 types.
4388+
4389+
/// Dummy type for 802.3 frames
4390+
pub const @"802_3" = 0x0001;
4391+
/// Dummy protocol id for AX.25
4392+
pub const AX25 = 0x0002;
4393+
/// Every packet (be careful!!!)
4394+
pub const ALL = 0x0003;
4395+
/// 802.2 frames
4396+
pub const @"802_2" = 0x0004;
4397+
/// Internal only
4398+
pub const SNAP = 0x0005;
4399+
/// DEC DDCMP: Internal only
4400+
pub const DDCMP = 0x0006;
4401+
/// Dummy type for WAN PPP frames
4402+
pub const WAN_PPP = 0x0007;
4403+
/// Dummy type for PPP MP frames
4404+
pub const PPP_MP = 0x0008;
4405+
/// Localtalk pseudo type
4406+
pub const LOCALTALK = 0x0009;
4407+
/// CAN: Controller Area Network
4408+
pub const CAN = 0x000C;
4409+
/// CANFD: CAN flexible data rate
4410+
pub const CANFD = 0x000D;
4411+
/// CANXL: eXtended frame Length
4412+
pub const CANXL = 0x000E;
4413+
/// Dummy type for Atalk over PPP
4414+
pub const PPPTALK = 0x0010;
4415+
/// 802.2 frames
4416+
pub const TR_802_2 = 0x0011;
4417+
/// Mobitex ([email protected])
4418+
pub const MOBITEX = 0x0015;
4419+
/// Card specific control frames
4420+
pub const CONTROL = 0x0016;
4421+
/// Linux-IrDA
4422+
pub const IRDA = 0x0017;
4423+
/// Acorn Econet
4424+
pub const ECONET = 0x0018;
4425+
/// HDLC frames
4426+
pub const HDLC = 0x0019;
4427+
/// 1A for ArcNet :-)
4428+
pub const ARCNET = 0x001A;
4429+
/// Distributed Switch Arch.
4430+
pub const DSA = 0x001B;
4431+
/// Trailer switch tagging
4432+
pub const TRAILER = 0x001C;
4433+
/// Nokia Phonet frames
4434+
pub const PHONET = 0x00F5;
4435+
/// IEEE802.15.4 frame
4436+
pub const IEEE802154 = 0x00F6;
4437+
/// ST-Ericsson CAIF protocol
4438+
pub const CAIF = 0x00F7;
4439+
/// Multiplexed DSA protocol
4440+
pub const XDSA = 0x00F8;
4441+
/// Qualcomm multiplexing and aggregation protocol
4442+
pub const MAP = 0x00F9;
4443+
/// Management component transport protocol packets
4444+
pub const MCTP = 0x00FA;
4445+
};
4446+
};
4447+
42154448
pub const MSG = struct {
42164449
pub const OOB = 0x0001;
42174450
pub const PEEK = 0x0002;

0 commit comments

Comments
 (0)