ifq_handoff man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

ALTQ(9)			 BSD Kernel Developer's Manual		       ALTQ(9)

NAME
     ALTQ — kernel interfaces for manipulating output queues on network inter‐
     faces

SYNOPSIS
     #include <sys/types.h>
     #include <sys/socket.h>
     #include <net/if.h>
     #include <net/ifq_var.h>

     static int
     ifq_enqueue(struct ifaltq *_ifq, struct mbuf *_m,
	 struct altq_pkgattr *_pa);

     static int
     ifq_handoff(struct ifnet *_ifp, struct mbuf *_m,
	 struct altq_pkgattr *_pa);

     struct mbuf *
     ifq_dequeue(struct ifaltq *_ifq, struct mbuf *_mpolled);

     struct mbuf *
     ifq_poll(struct ifaltq *_ifq);

     void
     ifq_purge(struct ifaltq *_ifq);

     void
     ifq_classify(struct ifaltq *_ifq, struct mbuf *_m, uint8_t _af,
	 struct altq_pkgattr *_pa);

     int
     ifq_is_empty(struct ifaltq *_ifq);

     void
     ifq_set_maxlen(struct ifaltq *_ifq, int _len);

     void
     ifq_set_ready(struct ifaltq *_ifq);

     int
     ifq_is_enabled(struct ifaltq *_ifq);

DESCRIPTION
     The ALTQ system is a framework to manage queueing disciplines on network
     interfaces.  ALTQ introduces new functions to manipulate output queues.
     The output queue functions are used to abstract queue operations and not
     to touch the internal fields of the output queue structure.

     ifq_enqueue() and ifq_handoff() enqueue a packet _m to the queue _ifq.
     The underlying queueing discipline may discard the packet.	 They return 0
     on success, or ENOBUFS if the packet is discarded.	 The packet pointed to
     by _m will be freed by the device driver on success or by the queueing
     discipline on failure, so that the caller should not touch _m after call‐
     ing ifq_enqueue().	 ifq_handoff() combines the enqueue operation with
     statistic generation and calls if_start() upon successful enqueue to ini‐
     tiate the actual send.

     ifq_dequeue() dequeues a packet from the queue.  It returns the dequeued
     packet, or NULL if no packet is dequeued.	The caller must always check
     the return value since a non-empty queue could return NULL under rate-
     limiting.

     ifq_poll() returns the next packet without removing it from the queue.
     It is guaranteed by the underlying queueing discipline that ifq_dequeue()
     immediately after ifq_poll() returns the same packet.

     ifq_purge() discards all the packets in the queue.	 The purge operation
     is needed since a non-work conserving queue cannot be emptied by a
     dequeue loop.

     ifq_classify() classifies a packet to a scheduling class, and returns the
     result in _pa.

     ifq_is_empty() can be used to check if the queue is empty.	 Note that
     ifq_dequeue() could still return NULL if the queueing discipline is non-
     work conserving.

     ifq_set_maxlen() sets the queue length limit to the default FIFO queue.

     ifq_set_ready() sets a flag to indicate that this driver is converted to
     use the new macros.  ALTQ can be enabled only on interfaces with this
     flag.

     ifq_is_enabled() returns 1 if ALTQ is enabled for the queue, 0 if not.

QUEUEING DISCIPLINES
     Queueing disciplines need to maintain ifq_len (used by ifq_is_empty()).
     Queueing disciplines also need to guarantee that the same mbuf is
     returned if ifq_dequeue() is called immediately after ifq_poll().

SEE ALSO
     altq(4), pf(4), pf.conf(5), pfctl(8)

HISTORY
     The ALTQ system first appeared in March 1997 and was imported into
     DragonFly 1.1.

BSD			       November 18, 2007			   BSD
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net