Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

ethernet.h File Reference

ethernet.h File Reference

Ethernet. More...

Go to the source code of this file.

Data Structures

struct  MacFilterEntry
 MAC filter table entry. More...

Enumerations

enum  MacAddrFlags
 

MAC address flags.

More...
enum  EthType
 

Ethernet Type field.

More...

Functions

error_t ethInit (NetInterface *interface)
 Ethernet related initialization.
void ethProcessFrame (NetInterface *interface, EthHeader *ethFrame, size_t length)
 Process an incoming Ethernet frame.
error_t ethSendFrame (NetInterface *interface, const MacAddr *destAddr, NetBuffer *buffer, size_t offset, uint16_t type)
 Send an Ethernet frame.
error_t ethCheckDestAddr (NetInterface *interface, const MacAddr *macAddr)
 Destination MAC address filtering.
error_t ethAcceptMulticastAddr (NetInterface *interface, const MacAddr *macAddr)
 Add a multicast address to the MAC filter table.
error_t ethDropMulticastAddr (NetInterface *interface, const MacAddr *macAddr)
 Remove a multicast address from the MAC filter table.
uint32_t ethCalcCrc (const void *data, size_t length)
 Ethernet CRC calculation.
uint32_t ethCalcCrcEx (const NetBuffer *buffer, size_t offset, size_t length)
 Calculate CRC over a multi-part buffer.
NetBufferethAllocBuffer (size_t length, size_t *offset)
 Allocate a buffer to hold an Ethernet frame.
error_t macStringToAddr (const char_t *str, MacAddr *macAddr)
 Convert a string representation of a MAC address to a binary MAC address.
char_t * macAddrToString (const MacAddr *macAddr, char_t *str)
 Convert a MAC address to a dash delimited string.
error_t eui64StringToAddr (const char_t *str, Eui64 *eui64)
 Convert a string representation of an EUI-64 address to a binary EUI-64 address.
char_t * eui64AddrToString (const Eui64 *eui64, char_t *str)
 Convert an EUI-64 address to a dash delimited string.
void macAddrToEui64 (const MacAddr *macAddr, Eui64 *interfaceId)
 Map a MAC address to the IPv6 modified EUI-64 identifier.
void ethDumpHeader (const EthHeader *ethHeader)
 Dump Ethernet header for debugging purpose.

Detailed Description

Ethernet.

License

Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneTCP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author:
Oryx Embedded SARL (www.oryx-embedded.com)
Version:
1.7.6

Definition in file ethernet.h.


Enumeration Type Documentation

enum EthType

Ethernet Type field.

Definition at line 96 of file ethernet.h.

MAC address flags.

Definition at line 85 of file ethernet.h.


Function Documentation

error_t ethAcceptMulticastAddr ( NetInterface *  interface,
const MacAddr *  macAddr 
)

Add a multicast address to the MAC filter table.

Parameters:
[in]interfaceUnderlying network interface
[in]macAddrMulticast MAC address to accept
Returns:
Error code

Definition at line 472 of file ethernet.c.

NetBuffer* ethAllocBuffer ( size_t  length,
size_t *  offset 
)

Allocate a buffer to hold an Ethernet frame.

Parameters:
[in]lengthDesired payload length
[out]offsetOffset to the first byte of the payload
Returns:
The function returns a pointer to the newly allocated buffer. If the system is out of resources, NULL is returned

Definition at line 729 of file ethernet.c.

uint32_t ethCalcCrc ( const void *  data,
size_t  length 
)

Ethernet CRC calculation.

Parameters:
[in]dataPointer to the data over which to calculate the CRC
[in]lengthNumber of bytes to process
Returns:
Resulting CRC value

Definition at line 596 of file ethernet.c.

uint32_t ethCalcCrcEx ( const NetBuffer buffer,
size_t  offset,
size_t  length 
)

Calculate CRC over a multi-part buffer.

Parameters:
[in]bufferPointer to the multi-part buffer
[in]offsetOffset from the beginning of the buffer
[in]lengthNumber of bytes to process
Returns:
Resulting CRC value

Definition at line 656 of file ethernet.c.

error_t ethCheckDestAddr ( NetInterface *  interface,
const MacAddr *  macAddr 
)

Destination MAC address filtering.

Parameters:
[in]interfaceUnderlying network interface
[in]macAddrDestination MAC address to be checked
Returns:
Error code

Definition at line 417 of file ethernet.c.

error_t ethDropMulticastAddr ( NetInterface *  interface,
const MacAddr *  macAddr 
)

Remove a multicast address from the MAC filter table.

Parameters:
[in]interfaceUnderlying network interface
[in]macAddrMulticast MAC address to drop
Returns:
Error code

Definition at line 542 of file ethernet.c.

void ethDumpHeader ( const EthHeader *  ethHeader )

Dump Ethernet header for debugging purpose.

Parameters:
[in]ethHeaderPointer to the Ethernet header

Definition at line 1008 of file ethernet.c.

error_t ethInit ( NetInterface *  interface )

Ethernet related initialization.

Parameters:
[in]interfaceUnderlying network interface
Returns:
Error code

Definition at line 151 of file ethernet.c.

void ethProcessFrame ( NetInterface *  interface,
EthHeader *  ethFrame,
size_t  length 
)

Process an incoming Ethernet frame.

Parameters:
[in]interfaceUnderlying network interface
[in]ethFrameIncoming Ethernet frame to process
[in]lengthTotal frame length

Definition at line 169 of file ethernet.c.

error_t ethSendFrame ( NetInterface *  interface,
const MacAddr *  destAddr,
NetBuffer buffer,
size_t  offset,
uint16_t  type 
)

Send an Ethernet frame.

Parameters:
[in]interfaceUnderlying network interface
[in]destAddrMAC address of the destination host
[in]bufferMulti-part buffer containing the payload
[in]offsetOffset to the first payload byte
[in]typeEthernet type
Returns:
Error code

Definition at line 314 of file ethernet.c.

char_t* eui64AddrToString ( const Eui64 *  eui64,
char_t *  str 
)

Convert an EUI-64 address to a dash delimited string.

Parameters:
[in]eui64Pointer to the EUI-64 address
[out]strNULL-terminated string representing the EUI-64 address
Returns:
Pointer to the formatted string

Definition at line 956 of file ethernet.c.

error_t eui64StringToAddr ( const char_t *  str,
Eui64 *  eui64 
)

Convert a string representation of an EUI-64 address to a binary EUI-64 address.

Parameters:
[in]strNULL-terminated string representing the EUI-64 address
[out]eui64Binary representation of the EUI-64 address
Returns:
Error code

Definition at line 867 of file ethernet.c.

void macAddrToEui64 ( const MacAddr *  macAddr,
Eui64 *  interfaceId 
)

Map a MAC address to the IPv6 modified EUI-64 identifier.

Parameters:
[in]macAddrHost MAC address
[out]interfaceIdIPv6 modified EUI-64 identifier

Definition at line 981 of file ethernet.c.

char_t* macAddrToString ( const MacAddr *  macAddr,
char_t *  str 
)

Convert a MAC address to a dash delimited string.

Parameters:
[in]macAddrPointer to the MAC address
[out]strNULL-terminated string representing the MAC address
Returns:
Pointer to the formatted string

Definition at line 843 of file ethernet.c.

error_t macStringToAddr ( const char_t *  str,
MacAddr *  macAddr 
)

Convert a string representation of a MAC address to a binary MAC address.

Parameters:
[in]strNULL-terminated string representing the MAC address
[out]macAddrBinary representation of the MAC address
Returns:
Error code

Definition at line 754 of file ethernet.c.