Webserver+3d print

Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

ethernet.c File Reference

ethernet.c File Reference

Ethernet. More...

Go to the source code of this file.

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.c.


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.