This module provides data structures for Ethernet frames as well as parsers and unparsers for Ethernet frames.
- data EthernetFrame = EthernetFrame EthernetHeader EthernetBody
- data EthernetHeader
- = EthernetHeader { }
- | Ethernet8021Q { }
- type EthernetTypeCode = Word16
- ethTypeVLAN :: EthernetTypeCode
- ethTypeIP :: EthernetTypeCode
- ethTypeARP :: EthernetTypeCode
- ethTypeLLDP :: EthernetTypeCode
- typeEth2Cutoff :: EthernetTypeCode
- type VLANPriority = Word8
- type VLANID = Word16
- data EthernetBody
- data ARPPacket = ARPPacket {}
- data ARPOpCode
- = ARPRequest
- | ARPReply
- type GetE a = ErrorT ErrorMessage Get a
- type ErrorMessage = String
- runGetE :: GetE a -> ByteString -> Either ErrorMessage a
- getEthernetFrame :: GetE EthernetFrame
- getEthHeader :: GetE EthernetHeader
- putEthHeader :: EthernetHeader -> Put
- getARPPacket :: GetE ARPPacket
Data types
data EthernetFrame Source
An Ethernet frame consists of an Ethernet header and an Ethernet body.
type EthernetTypeCode = Word16Source
Ethernet type code, determines the type of payload carried by an Ethernet frame.
type VLANPriority = Word8Source
data EthernetBody Source
The body of an Ethernet frame is either an IP packet, an ARP packet, or an uninterpreted ByteString
An ARP packet
Parsers and unparsers
type GetE a = ErrorT ErrorMessage Get aSource
Type of parsers that can fail with an error message
type ErrorMessage = StringSource
When a GetE
parser fails, it provides an error message as a string
runGetE :: GetE a -> ByteString -> Either ErrorMessage aSource
Method to run a GetE
parser
getEthernetFrame :: GetE EthernetFrameSource
Parser for Ethernet frames.
getEthHeader :: GetE EthernetHeaderSource
Parser for Ethernet headers.
putEthHeader :: EthernetHeader -> PutSource
Unparser for Ethernet headers.
getARPPacket :: GetE ARPPacketSource
Parser for ARP packets