Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages | Examples

Network Buffer
[Network Devices]

Collaboration diagram for Network Buffer:


Detailed Description

Network buffer support.

The network buffer handling is designed to make life easy when it comes to handling ISO-layered communications. By this we're thinking about communications structures that are hierarchically organized.

The idea is that network buffer structures are allocated every time a new packet is either received or ready for sending. The various fields of the network buffer are then handled by matching layers within the appropriate protocol stack.

Linked list of NETBUF structures:

inline_dotgraph_3


Data Structures

struct  _NBDATA
 Data part of a network buffer structure. More...
struct  _NETBUF
 Network buffer structure. More...
struct  _NBDATA
 Data part of a network buffer structure. More...
struct  _NETBUF
 Network buffer structure. More...

Defines

#define NBAF_DATALINK   0x10
 Datalink buffer allocated flag.
#define NBAF_NETWORK   0x20
 Network buffer allocated flag.
#define NBAF_TRANSPORT   0x40
 Transport buffer allocated flag.
#define NBAF_APPLICATION   0x80
 Application buffer allocated flag.
#define NBAF_ALL   0xf0
 Masks allocated buffer flags flag.

Typedefs

typedef _NETBUF NETBUF
 Network buffer type.
typedef _NBDATA NBDATA
 Network buffer data type.

Functions

NETBUFNutNetBufAlloc (NETBUF *nb, u_char type, u_short size)
 Allocate or re-allocate a network buffer part.
NETBUFNutNetBufClone (NETBUF *nb)
 Create a copy of an existing network buffer structure.
int NutNetBufFree (NETBUF *nb)
 Release a network buffer structure.


Function Documentation

NETBUF* NutNetBufAlloc NETBUF nb,
u_char  type,
u_short  size
 

Allocate or re-allocate a network buffer part.

Parameters:
nb Points to an existing network buffer structure or NULL, if a new structure should be created. An existing buffer must not be used any further if this function returns a null pointer.
type Part of the buffer to be allocated. This can be any of the following:
  • NBAF_DATALINK
  • NBAF_NETWORK
  • NBAF_TRANSPORT
  • NBAF_APPLICATION
size Size of the part to be allocated.
Returns:
Pointer to the allocated network buffer structure. A null pointer is returned if not enough memory is available and the whole structure is released.

NETBUF* NutNetBufClone NETBUF nb  ) 
 

Create a copy of an existing network buffer structure.

Parameters:
nb Points to an existing network buffer structure, previously allocated by NutNetBufAlloc().
Returns:
Pointer to a newly allocated copy.

int NutNetBufFree NETBUF nb  ) 
 

Release a network buffer structure.

Returns all memory previously allocated by a network buffer to the available heap space.

Parameters:
nb Points to an existing network buffer structure, previously allocated by NutNetBufAlloc().
Returns:
0 if successfull or -1 if the structure contains previously released memory space.


© 2000-2006 by egnite Software GmbH - visit http://www.ethernut.de/