Asynchronous tcp/ip maintenance functions, Other functions/pointers – Maxim Integrated High-Speed Microcontroller Users Guide: Network Microcontroller Supplement User Manual

Page 216

Advertising
background image

High-Speed Microcontroller User’s

Guide: Network Microcontroller

Supplement

ASYNCHRONOUS TCP/IP MAINTENANCE FUNCTIONS

The default timer-interrupt handler (

WOS_tick) periodically calls the default task scheduler (WOS_IOPoll). This WOS_IOPoll routine

automatically calls certain asynchronous TCP/IP stack-maintenance functions and then calls the

User_IOPoll redirect function. The

User_IOPoll hook provides a simple means for the user to extend the task scheduler if he/she desires. Since WOS_IOPoll is already
designed to handle the necessary TCP/IP maintenance function and can easily be supplemented with user-specific task-scheduler

code, it is the preferred method for ensuring proper and timely execution of the specified TCP/IP maintenance tasks. Therefore, only

high-level descriptions are given for the functions called by

WOS_IOPoll.

MAINTENANCE FUNCTION

DESCRIPTION

1)

IP_ProcessReceiveQueues

Drive all the protocol receive queues. Checks the ARP, TCP, UDP, and ICMP

receive queues for messages that need to be processed. Processing the receive

packet may involve passing the message to a higher level protocol handler or

building a response queuing the response for transmission.

2)

IP_ProcessOutput

Drive all the protocol transmit queues. Checks all active connections to deter

mine whether output is needed in the form of data, acknowledge, or both.

3)

IP6_ProcessReceiveQueues

Drive all the IPv6 protocol receive queues

4)

IP6_ProcessOutput

Drive all the IPv6 protocol transmit queues

5)

TCP_RetryTop

Run TCP retry process. Searches connections for unacknowledged segments.

Any found with expired retry timers are retransmitted.

6)

ETH_ProcessOutput

Age all entries in the ARP cache

7)

IGMP_GroupMaintenance

Let IGMP output run. Checks all groups to see if IGMP report messages need to

be generated.

OTHER FUNCTIONS/POINTERS

eth_processinterrupt—default Ethernet interrupt handler. The Ethernet interrupt handler unloads packets from the Ethernet hardware
buffer and enqueues them into the appropriate TCP/IP protocol queues.

arp_generaterequest—generates ARP request

MAC_ID—pointer to MAC ID, stored Big Endian

entercritsection—enter critical section. This function increments the variable wos_crit_count located in direct data memory at
address 68h.

leavecritsection—leave critical section. This function decrements the variable wos_crit_count located in direct data memory at
address 68h.

WOS_tick—default timer interrupt handler. A flow diagram for this interrupt handler is provided in Figure 23-1.

BLOB—pointer to the start address of xdata memory ignored by NetBoot. The BLOB memory space, by default, occupies at least 4kB
of contiguous memory, ending at address (BOOT_MEMBEGIN - 1). Since this memory is not touched by the DS80C400 Silicon

Software, it is well suited for user xdata.

RAMTOP—reserved for use by Maxim.

BOOT_MEMBEGIN—pointer to starting address of network stack buffers and heap memory. The user may define this starting address
as an input parameter to the

rom_init function call or may allow a default assignment to be made by rom_init. The default starting

address for heap memory is the second 256-byte page boundary (i.e., 00xx00h) following address = BLOB + 1000h.

BOOT_MEMEND—pointer to the ending address of network stack buffers and heap memory. The user may define this ending address
as an input parameter to the

rom_init function call or may allow a default assignment to be made by rom_init. The default ending

address for heap memory is 00FFFFh.

autobaud—The same autobaud procedure is executed as can be executed during the boot process. Please reference the earlier text
for a description of the autobaud function.

216

Maxim Integrated

Advertising