Go to the documentation of this file.
   32 #define TRACE_LEVEL NIC_TRACE_LEVEL 
   74 #if (UDP_SUPPORT == ENABLED) 
   82 #if (ETH_SUPPORT == ENABLED) 
   86 #if (ETH_VLAN_SUPPORT == ENABLED) 
   90 #if (ETH_VMAN_SUPPORT == ENABLED) 
   94 #if (ETH_PORT_TAGGING_SUPPORT == ENABLED) 
   99 #if (ETH_TIMESTAMP_SUPPORT == ENABLED) 
  109 #if (ETH_SUPPORT == ENABLED) 
  114 #if (ETH_PORT_TAGGING_SUPPORT == ENABLED) 
  117 #if (ETH_TIMESTAMP_SUPPORT == ENABLED) 
  149          entry->
param = param;
 
  183          entry->
param == param)
 
  208    if(interface->linkState)
 
  211       TRACE_INFO(
"Link is up (%s)...\r\n", interface->name);
 
  232          TRACE_INFO(
"  Link speed = %" PRIu32 
" bps\r\n",
 
  233             interface->linkSpeed);
 
  251       TRACE_INFO(
"Link is down (%s)...\r\n", interface->name);
 
  260 #if (IPV4_SUPPORT == ENABLED) 
  265 #if (IPV6_SUPPORT == ENABLED) 
  270 #if (DNS_CLIENT_SUPPORT == ENABLED || MDNS_CLIENT_SUPPORT == ENABLED || \ 
  271    NBNS_CLIENT_SUPPORT == ENABLED) 
  276 #if (MDNS_RESPONDER_SUPPORT == ENABLED) 
  281 #if (DNS_SD_RESPONDER_SUPPORT == ENABLED) 
  301             entry->
callback(interface, interface->linkState, entry->
param);
 
  312 #if (TCP_SUPPORT == ENABLED) 
  320 #if (UDP_SUPPORT == ENABLED) 
  328 #if (RAW_SOCKET_SUPPORT == ENABLED) 
  367          entry->
param = param;
 
  440 #if (PPP_SUPPORT == ENABLED) 
  460 #if (IPV4_SUPPORT == ENABLED && ETH_SUPPORT == ENABLED) 
  480 #if (IPV4_SUPPORT == ENABLED && IPV4_FRAG_SUPPORT == ENABLED) 
  500 #if (IPV4_SUPPORT == ENABLED && (IGMP_HOST_SUPPORT == ENABLED || \ 
  501    IGMP_ROUTER_SUPPORT == ENABLED || IGMP_SNOOPING_SUPPORT == ENABLED)) 
  521 #if (IPV4_SUPPORT == ENABLED && AUTO_IP_SUPPORT == ENABLED) 
  539 #if (IPV4_SUPPORT == ENABLED && DHCP_CLIENT_SUPPORT == ENABLED) 
  557 #if (IPV4_SUPPORT == ENABLED && DHCP_SERVER_SUPPORT == ENABLED) 
  575 #if (IPV4_SUPPORT == ENABLED && NAT_SUPPORT == ENABLED) 
  589 #if (IPV6_SUPPORT == ENABLED && IPV6_FRAG_SUPPORT == ENABLED) 
  609 #if (IPV6_SUPPORT == ENABLED && MLD_NODE_SUPPORT == ENABLED) 
  629 #if (IPV6_SUPPORT == ENABLED && NDP_SUPPORT == ENABLED) 
  649 #if (IPV6_SUPPORT == ENABLED && NDP_ROUTER_ADV_SUPPORT == ENABLED) 
  667 #if (IPV6_SUPPORT == ENABLED && DHCPV6_CLIENT_SUPPORT == ENABLED) 
  685 #if (TCP_SUPPORT == ENABLED) 
  699 #if (DNS_CLIENT_SUPPORT == ENABLED || MDNS_CLIENT_SUPPORT == ENABLED || \ 
  700    NBNS_CLIENT_SUPPORT == ENABLED || LLMNR_CLIENT_SUPPORT == ENABLED) 
  714 #if (MDNS_RESPONDER_SUPPORT == ENABLED) 
  732 #if (DNS_SD_RESPONDER_SUPPORT == ENABLED) 
  902    for(i = 0; i < 10; i++)
 
  908    for(i = 0; i < 10; i++)
 
  910       state->
s[12 + i] = 
iv[i];
 
  914    for(i = 11; i < 22; i++)
 
  916       state->
s[i] = (state->
s[i + 1] << 5) | (state->
s[i] >> 3);
 
  925    for(i = 0; i < (4 * 288); i++)
 
  946    for(i = 0; i < 32; i++)
 
  996    for(i = 0; i < 
length; i++)
 
 1002       for(j = 0; j < 8; j++)
 
 1054    for(i = 35; i > 0; i--)
 
 1056       state->
s[i] = (state->
s[i] << 1) | (state->
s[i - 1] >> 7);
 
 1059    state->
s[0] = state->
s[0] << 1;
 
  
IPv6 (Internet Protocol Version 6)
 
NetTimerCallback callback
 
systime_t ipv4FragTickCounter
 
void netStartTimer(NetTimer *timer, systime_t interval)
Start timer.
 
void ipv6FragTick(NetInterface *interface)
Fragment reassembly timeout handler.
 
#define IF_MIB_SET_TIME_TICKS(name, value)
 
void ipv4FragTick(NetInterface *interface)
Fragment reassembly timeout handler.
 
const NetTxAncillary NET_DEFAULT_TX_ANCILLARY
 
bool_t netTimerRunning(NetTimer *timer)
Check whether the timer is running.
 
systime_t netGetRemainingTime(NetTimer *timer)
Get the remaining value of the running timer.
 
#define NET_RAND_STATE_SET_BIT(s, n, v)
 
void udpUpdateEvents(Socket *socket)
Update UDP related events.
 
void ndpTick(NetInterface *interface)
NDP timer handler.
 
error_t netAttachLinkChangeCallback(NetInterface *interface, NetLinkChangeCallback callback, void *param)
Register link change callback.
 
#define DNS_TICK_INTERVAL
 
#define IPV4_FRAG_TICK_INTERVAL
 
error_t netAttachTimerCallback(systime_t period, NetTimerCallback callback, void *param)
Register timer callback.
 
NetTimerCallbackEntry timerCallbacks[NET_MAX_TIMER_CALLBACKS]
 
void ipv4LinkChangeEvent(NetInterface *interface)
Callback function for link change event.
 
void ndpRouterAdvTick(NdpRouterAdvContext *context)
RA service timer handler.
 
systime_t dnsSdResponderTickCounter
 
#define ARP_TICK_INTERVAL
 
#define NET_INTERFACE_COUNT
 
#define NET_TICK_INTERVAL
 
void mldTick(NetInterface *interface)
MLD node timer handler.
 
void pppTick(NetInterface *interface)
PPP timer handler.
 
Helper functions for DHCPv6 client.
 
void dnsFlushCache(NetInterface *interface)
Flush DNS cache.
 
Helper functions for DHCP client.
 
void arpTick(NetInterface *interface)
ARP timer handler.
 
Pseudo-random number generator state.
 
systime_t ipv6FragTickCounter
 
Helper functions for DHCP server.
 
#define NET_MAX_LINK_CHANGE_CALLBACKS
 
error_t netDetachTimerCallback(NetTimerCallback callback, void *param)
Unregister timer callback.
 
Definitions common to mDNS client and mDNS responder.
 
uint32_t netGenerateRand(void)
Generate a random 32-bit value.
 
void dnsSdResponderTick(DnsSdResponderContext *context)
DNS-SD responder timer handler.
 
systime_t igmpTickCounter
 
#define MIB2_IF_SET_TIME_TICKS(name, value)
 
void(* NetLinkChangeCallback)(NetInterface *interface, bool_t linkState, void *param)
Link change callback.
 
uint32_t netGenerateRandBit(NetRandState *state)
Generate one random bit.
 
systime_t dhcpServerTickCounter
 
Helper functions for TCP.
 
uint32_t netGenerateRandRange(uint32_t min, uint32_t max)
Generate a random value in the specified range.
 
#define IPV6_FRAG_TICK_INTERVAL
 
void dhcpv6ClientTick(Dhcpv6ClientContext *context)
DHCPv6 client timer handler.
 
#define eui64CopyAddr(destEui64Addr, srcEui64Addr)
 
void netStopTimer(NetTimer *timer)
Stop timer.
 
Definitions common to NBNS client and NBNS responder.
 
DNS-SD responder (DNS-Based Service Discovery)
 
NetLinkChangeCallbackEntry linkChangeCallbacks[NET_MAX_LINK_CHANGE_CALLBACKS]
 
int_t socket(int_t family, int_t type, int_t protocol)
Create a socket that is bound to a specific transport service provider.
 
NBNS client (NetBIOS Name Service)
 
#define IGMP_TICK_INTERVAL
 
const NetRxAncillary NET_DEFAULT_RX_ANCILLARY
 
systime_t dhcpv6ClientTickCounter
 
#define DHCP_SERVER_TICK_INTERVAL
 
void netGenerateRandData(uint8_t *data, size_t length)
Get a string of random data.
 
#define NET_RAND_GET_BIT(s, n)
 
#define NAT_TICK_INTERVAL
 
mDNS client (Multicast DNS)
 
void tcpUpdateEvents(Socket *socket)
Update TCP related events.
 
#define NDP_TICK_INTERVAL
 
error_t netDetachLinkChangeCallback(NetInterface *interface, NetLinkChangeCallback callback, void *param)
Unregister link change callback.
 
void natTick(NatContext *context)
NAT timer handler.
 
Interfaces Group MIB module.
 
void netProcessLinkChange(NetInterface *interface)
Process link state change event.
 
#define TCP_TICK_INTERVAL
 
Socket socketTable[SOCKET_MAX_COUNT]
 
Helper functions for NAT.
 
NatContext * natContext
NAT context.
 
void rawSocketUpdateEvents(Socket *socket)
Update event state for raw sockets.
 
void mdnsResponderTick(MdnsResponderContext *context)
mDNS responder timer handler
 
void dnsTick(void)
DNS timer handler.
 
NDP (Neighbor Discovery Protocol)
 
DNS client (Domain Name System)
 
uint32_t systime_t
System time.
 
#define NET_MAX_TIMER_CALLBACKS
 
MLD node (Multicast Listener Discovery for IPv6)
 
LLMNR client (Link-Local Multicast Name Resolution)
 
#define MDNS_RESPONDER_TICK_INTERVAL
 
NetLinkChangeCallback callback
 
#define NIC_TICK_INTERVAL
 
void mdnsResponderLinkChangeEvent(MdnsResponderContext *context)
Callback function for link change event.
 
#define NDP_ROUTER_ADV_TICK_INTERVAL
 
void netInitRand(void)
Initialize random number generator.
 
#define AUTO_IP_TICK_INTERVAL
 
void netTick(void)
Manage TCP/IP timers.
 
Link change callback entry.
 
systime_t autoIpTickCounter
 
#define DHCP_CLIENT_TICK_INTERVAL
 
systime_t dhcpClientTickCounter
 
#define MLD_TICK_INTERVAL
 
#define DHCPV6_CLIENT_TICK_INTERVAL
 
#define PPP_TICK_INTERVAL
 
#define osGetSystemTime64()
 
void autoIpTick(AutoIpContext *context)
Auto-IP timer handler.
 
NetRandState randState
Pseudo-random number generator state.
 
void tcpTick(void)
TCP timer handler.
 
Helper functions for Auto-IP.
 
LLMNR responder (Link-Local Multicast Name Resolution)
 
void dhcpClientTick(DhcpClientContext *context)
DHCP client timer handler.
 
IPv4 (Internet Protocol Version 4)
 
void ipv6LinkChangeEvent(NetInterface *interface)
Callback function for link change event.
 
void nicTick(NetInterface *interface)
Network controller timer handler.
 
void igmpTick(NetInterface *interface)
IGMP timer handler.
 
Helper functions for router advertisement service.
 
uint8_t randSeed[NET_RAND_SEED_SIZE]
Random seed.
 
#define osMemset(p, value, length)
 
bool_t netTimerExpired(NetTimer *timer)
Check whether the timer has expired.
 
systime_t mdnsResponderTickCounter
 
ARP (Address Resolution Protocol)
 
#define DNS_SD_RESPONDER_TICK_INTERVAL
 
Helper functions for TCP/IP stack.
 
systime_t ndpRouterAdvTickCounter
 
void dnsSdResponderLinkChangeEvent(DnsSdResponderContext *context)
Callback function for link change event.
 
void(* NetTimerCallback)(void *param)
Timer callback.
 
NBNS responder (NetBIOS Name Service)
 
mDNS responder (Multicast DNS)
 
void dhcpServerTick(DhcpServerContext *context)
DHCP server timer handler.
 
systime_t osGetSystemTime(void)
Retrieve system time.