/*-------------------------------------------------------------*/
typedef netwib_err (*netwib_ip_frag_pf)(netwib_constbuf *pfrag,
netwib_ptr infos);
/*-------------------------------------------------------------*/
/* Name : netwib_ip_frag
Description :
Fragment an IP packet
Input parameter(s) :
*pippkt : IP packet (containing IP header)
fragdatasize : data size to send in each fragment in bytes.
It is rounded to 8 : 1->8bytes, 7->8bytes,
8->8, 9->16, etc.
The first fragment may be bigger than
the others because it contains more IPv4
options, or IPv6 extensions.
If fragdatasize == 0, this limit is not used.
fragtotalsize : maximum total size of the packet in bytes.
If fragtotalsize == 0, this limit is not used.
pfunc : memory address of the function which will
be called for each fragment
For each call, the first parameter ('infos')
will be set with the optional parameter below.
Input/output parameter(s) :
infos : optional parameter (can be NULL) which will be
used as the first parameter for *pfunc.
This may be used to send information to *pfunc.
Output parameter(s) :
Normal return values :
NETWIB_ERR_OK : ok
*/
netwib_err netwib_ip_frag(netwib_constbuf *pippkt,
netwib_uint32 fragdatasize,
netwib_uint32 fragtotalsize,
netwib_ip_frag_pf pfunc,
netwib_ptr infos);
/*-------------------------------------------------------------*/
#define NETWIB_MTU_MIN_IP4 576 /* rfc 791 */
#define NETWIB_MTU_MIN_IP6 1280 /* rfc 2460 */