Man pages for the NgATM SAAL protocol nodes.
This commit is contained in:
parent
027ebd2f39
commit
07d86d1506
@ -170,6 +170,8 @@ MAN= aac.4 \
|
||||
ng_pptpgre.4 \
|
||||
ng_rfc1490.4 \
|
||||
ng_socket.4 \
|
||||
ng_sscfu.4 \
|
||||
ng_sscop.4 \
|
||||
ng_tee.4 \
|
||||
ng_tty.4 \
|
||||
ng_ubt.4 \
|
||||
|
155
share/man/man4/ng_sscfu.4
Normal file
155
share/man/man4/ng_sscfu.4
Normal file
@ -0,0 +1,155 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2001-2003
|
||||
.\" Fraunhofer Institute for Open Communication Systems (FhG Fokus).
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" Author: Hartmut Brandt <harti@freebsd.org>
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.\" ng_sscfu(4) man page
|
||||
.\"
|
||||
.Dd October 24, 2003
|
||||
.Dt ng_sscfu 4
|
||||
.Os FreeBSD
|
||||
.Sh NAME
|
||||
.Nm ng_sscfu
|
||||
.Nd netgraph SSCF at the UNI node type
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <netnatm/saal/sscopdef.h>
|
||||
.Fd #include <netnatm/saal/sscfudef.h>
|
||||
.Fd #include <netgraph/atm/ng_sscfu.h>
|
||||
.Sh DESCIPTION
|
||||
The
|
||||
.Nm
|
||||
netgraph node implements ITU-T recommendation Q.2130.
|
||||
This recommendation specifies the Service Specific Coordination
|
||||
Function at the UNI.
|
||||
This is a thin sub-layer between the SSCOP (see
|
||||
.Xr ng_sscop 4 )
|
||||
and the UNI signalling.
|
||||
This node does not really implement a protocol but
|
||||
provides a mapping between the signals at the upper layer of the SSCOP and
|
||||
the signals, the UNI expectes at its lower layer.
|
||||
It also provides default values for the parameters of the SSCOP.
|
||||
.Pp
|
||||
After creation of the node, the SSCF instance must be created by sending
|
||||
an enable message to the node.
|
||||
If the node is enabled, default SSCOP parameters
|
||||
can be retrieved and and set in the corresponding SSCOP instance.
|
||||
.Pp
|
||||
The node is shutdown either by a
|
||||
.Dv NGM_SHUTDOWN
|
||||
message or when all hooks are disconnected.
|
||||
.Sh HOOKS
|
||||
Each
|
||||
.Nm
|
||||
node has two hooks with fixed names:
|
||||
.Bl -tag -width upper
|
||||
.It Dv lower
|
||||
This hook is the interface to the SSCOP.
|
||||
The interface expected here is exactly
|
||||
that which is exported by the
|
||||
.Xr ng_sscop 4
|
||||
node type.
|
||||
.It Dv upper
|
||||
This is the interface to the UNI. It uses the following message format:
|
||||
.Bd -literal
|
||||
struct sscfu_arg {
|
||||
uint32_t sig;
|
||||
u_char data[];
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
.Fa sig
|
||||
is one of the following signals:
|
||||
.Bd -literal
|
||||
enum saal_sig {
|
||||
SAAL_ESTABLISH_request, /* U -> SAAL: (UU) */
|
||||
SAAL_ESTABLISH_indication, /* SAAL -> U: (UU) */
|
||||
SAAL_ESTABLISH_confirm, /* SAAL -> U: (UU) */
|
||||
SAAL_RELEASE_request, /* U -> SAAL: (UU) */
|
||||
SAAL_RELEASE_confirm, /* SAAL -> U: */
|
||||
SAAL_RELEASE_indication, /* SAAL -> U: (UU) */
|
||||
SAAL_DATA_request, /* U -> SAAL: (DATA) */
|
||||
SAAL_DATA_indication, /* SAAL -> U: (DATA) */
|
||||
SAAL_UDATA_request, /* U -> SAAL: (UDATA) */
|
||||
SAAL_UDATA_indication, /* SAAL -> U: (UDATA) */
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
The arrows in the comment show the direction of the signal whether it
|
||||
is a signal that comes out of the node
|
||||
.Ql ->
|
||||
or is sent by the node user to the node
|
||||
.Ql <- .
|
||||
The type of data expected for the signal is specified in parantheses.
|
||||
This data starts at the
|
||||
.Fa data
|
||||
field of the message structure.
|
||||
.El
|
||||
.Pp
|
||||
If the
|
||||
.Dv lower
|
||||
hook is disconnected and the node is enabled, the protocol state is
|
||||
reset.
|
||||
.Sh CONTROL MESSAGES
|
||||
The
|
||||
.Nm
|
||||
node understands the generic messages plus the following:
|
||||
.Bl -tag -width xxx
|
||||
.It Dv NGM_SSCFU_GETDEFPARAM
|
||||
This message returns a
|
||||
.Fa sscop_param
|
||||
structure, which contains the default parameters for the SSCOP at the
|
||||
UNI.
|
||||
This structure should be used for a
|
||||
.Dv NGM_SSCOP_SETPARAM
|
||||
message to the SSCOP node below the SSCF.
|
||||
.It Dv NGM_SSCFU_ENABLE
|
||||
This message creates the actual SSCF instance and initializes it.
|
||||
Until this is done, parameters may not be retrieved not set and all message
|
||||
received on any hook are discarded.
|
||||
.It Dv NGM_SSCFU_DISABLE
|
||||
Destroy the SSCF instance.
|
||||
After this all messages on any hooks are discarded.
|
||||
.It Dv NGM_SSCFU_GETDEBUG
|
||||
Retrieve the debugging flags in an
|
||||
.Vt uint32_t .
|
||||
.It Dv NGM_SSCFU_SETDEBUG
|
||||
Set debugging flags.
|
||||
The argument must be an
|
||||
.Vt uint32_t .
|
||||
.It Dv NGM_SSCFU_GETSTATE
|
||||
Retrieve the current state of the SSCFU instance in an
|
||||
.Vt uint32_t .
|
||||
If the node has not been enabled, 0 is returned.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr netgraph 4 ,
|
||||
.Xr ng_atm 4 ,
|
||||
.Xr ng_sscop 4 ,
|
||||
.Xr ngctl 8
|
||||
.Sh AUTHORS
|
||||
.An Harti Brandt Aq harti@freebsd.org
|
355
share/man/man4/ng_sscop.4
Normal file
355
share/man/man4/ng_sscop.4
Normal file
@ -0,0 +1,355 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2001-2003
|
||||
.\" Fraunhofer Institute for Open Communication Systems (FhG Fokus).
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" Author: Hartmut Brandt <harti@freebsd.org>
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.\" ng_sscop(4) man page
|
||||
.\"
|
||||
.Dd October 24, 2003
|
||||
.Dt ng_sscop 4
|
||||
.Os FreeBSD
|
||||
.Sh NAME
|
||||
.Nm ng_sscop
|
||||
.Nd netgraph SSCOP node type
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <netnatm/saal/sscopdef.h>
|
||||
.Fd #include <netgraph/atm/ng_sscop.h>
|
||||
.Sh DESCIPTION
|
||||
The
|
||||
.Nm
|
||||
netgraph node implements the ITU-T standard Q.2110. This standard describes
|
||||
the so called Service Specific Connection Oriented Protocol (SSCOP) that
|
||||
is used to carry signalling messages over the private and public UNIs and
|
||||
the public NNI.
|
||||
This protocol is a transport protocol with selective
|
||||
acknowledgements and can be tailored to the environment.
|
||||
This implementation is a full implementation of that standard.
|
||||
.Pp
|
||||
After creation of the node, the SSCOP instance must be created by sending
|
||||
an enable message to the node.
|
||||
If the node is enabled, the SSCOP parameters
|
||||
can be retrieved and modified and the protocol can be started.
|
||||
.Pp
|
||||
The node is shutdown either by a
|
||||
.Dv NGM_SHUTDOWN
|
||||
message or when all hooks are disconnected.
|
||||
.Sh HOOKS
|
||||
Each
|
||||
.Nm
|
||||
node has three hooks with fixed names:
|
||||
.Bl -tag -width manage
|
||||
.It Dv lower
|
||||
This hook is the hook that must be connected to a node that ensures
|
||||
transport of packets to and from the remote peer node. Normally this is a
|
||||
.Xr ng_atm 4
|
||||
node with an AAL5 hook, but the
|
||||
.Nm
|
||||
node is able to work on any packet-transporting layer, like, for example,
|
||||
IP or UDP.
|
||||
The node handles flow control messages received on
|
||||
this hook: if it receives a
|
||||
.Dv NGM_HIGH_WATER_PASSED
|
||||
message it declares the
|
||||
.Ql lower layer busy
|
||||
state.
|
||||
If a
|
||||
.Dv NGM_LOW_WATER_PASSED
|
||||
message is received the busy state is cleared.
|
||||
Note, that the node does not
|
||||
look at the message contents of these flow control messages.
|
||||
.It Dv upper
|
||||
This is the interface to the SSCOP user.
|
||||
This interface uses the following message format:
|
||||
.Bd -literal
|
||||
struct sscop_arg {
|
||||
uint32_t sig;
|
||||
uint32_t arg; /* opt. sequence number or clear-buff */
|
||||
u_char data[];
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
.Fa sig
|
||||
is one of the signals defined in the standard:
|
||||
.Bd -literal
|
||||
enum sscop_aasig {
|
||||
SSCOP_ESTABLISH_request, /* <- UU, BR */
|
||||
SSCOP_ESTABLISH_indication, /* -> UU */
|
||||
SSCOP_ESTABLISH_response, /* <- UU, BR */
|
||||
SSCOP_ESTABLISH_confirm, /* -> UU */
|
||||
|
||||
SSCOP_RELEASE_request, /* <- UU */
|
||||
SSCOP_RELEASE_indication, /* -> UU, SRC */
|
||||
SSCOP_RELEASE_confirm, /* -> */
|
||||
|
||||
SSCOP_DATA_request, /* <- MU */
|
||||
SSCOP_DATA_indication, /* -> MU, SN */
|
||||
|
||||
SSCOP_UDATA_request, /* <- MU */
|
||||
SSCOP_UDATA_indication, /* -> MU */
|
||||
|
||||
SSCOP_RECOVER_indication, /* -> */
|
||||
SSCOP_RECOVER_response, /* <- */
|
||||
|
||||
SSCOP_RESYNC_request, /* <- UU */
|
||||
SSCOP_RESYNC_indication, /* -> UU */
|
||||
SSCOP_RESYNC_response, /* <- */
|
||||
SSCOP_RESYNC_confirm, /* -> */
|
||||
|
||||
SSCOP_RETRIEVE_request, /* <- RN */
|
||||
SSCOP_RETRIEVE_indication, /* -> MU */
|
||||
SSCOP_RETRIEVE_COMPL_indication,/* -> */
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
The arrows in the comment show the direction of the signal whether it
|
||||
is a signal that comes out of the node
|
||||
.Ql ->
|
||||
or is sent by the node user to the node
|
||||
.Ql <- .
|
||||
The
|
||||
.Fa arg
|
||||
field contains the argument to some of the signals: it is either a PDU
|
||||
sequence number or the
|
||||
.Dv CLEAR-BUFFER
|
||||
flag.
|
||||
There are a number of special sequence numbers for some operations:
|
||||
.Bl -column SSCOP_RETRIEVE_UNKNOWN -offset indent
|
||||
.It Dv SSCOP_MAXSEQNO Ta maximum legal sequence number
|
||||
.It Dv SSCOP_RETRIEVE_UNKNOWN Ta retrieve transmission queue
|
||||
.It Dv SSCOP_RETRIEVE_TOTAL Ta retrieve transmission buffer and queue
|
||||
.El
|
||||
.Pp
|
||||
For signals that carry user data (as, for example,
|
||||
.Dv SSCOP_DATA_request )
|
||||
these two fields are followed by the variable sized user data.
|
||||
.Pp
|
||||
If the upper hook is disconnected and the SSCOP instance is not in the idle
|
||||
state and the lower hook is still connected, an
|
||||
.Dv SSCOP_RELEASE_request
|
||||
is executed to release the SSCOP connection.
|
||||
.It Dv manage
|
||||
This is the management interface defined in the standard.
|
||||
The data structure used here is:
|
||||
.Bd -literal
|
||||
struct sscop_marg {
|
||||
uint32_t sig;
|
||||
u_char data[];
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
Here
|
||||
.Dv sig
|
||||
is one of
|
||||
.Bd -literal
|
||||
enum sscop_maasig {
|
||||
SSCOP_MDATA_request, /* <- MU */
|
||||
SSCOP_MDATA_indication, /* -> MU */
|
||||
SSCOP_MERROR_indication, /* -> CODE, CNT */
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
The
|
||||
.Dv SSCOP_MDATA
|
||||
signals are followed by the actual management data, where the
|
||||
.Dv SSCOP_MERROR
|
||||
signal has the form:
|
||||
.Bd -literal
|
||||
struct sscop_merr {
|
||||
uint32_t sig;
|
||||
uint32_t err; /* error code */
|
||||
uint32_t cnt; /* error count */
|
||||
};
|
||||
.Ed
|
||||
.Sh CONTROL MESSAGES
|
||||
The
|
||||
.Nm
|
||||
node understands the generic messages plus the following:
|
||||
.Bl -tag -width xxx
|
||||
.It Dv NGM_SSCOP_SETPARAM
|
||||
Set operational parameters of the SSCOP instance and takes the
|
||||
following structure:
|
||||
.Bd -literal
|
||||
struct ng_sscop_setparam {
|
||||
uint32_t mask;
|
||||
struct sscop_param param;
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
The sub-structure
|
||||
.Dv param
|
||||
contains the parameters to set and the
|
||||
.Dv mask
|
||||
field contains a bit mask, telling which of the parameters to set and which
|
||||
to ignore.
|
||||
If a bit is set, the corresponding parameter is set.
|
||||
The parameters are:
|
||||
.Bd -literal
|
||||
struct sscop_param {
|
||||
uint32_t timer_cc; /* timer_cc in msec */
|
||||
uint32_t timer_poll; /* timer_poll im msec */
|
||||
uint32_t timer_keep_alive;/* timer_keep_alive in msec */
|
||||
uint32_t timer_no_response;/*timer_no_response in msec */
|
||||
uint32_t timer_idle; /* timer_idle in msec */
|
||||
uint32_t maxk; /* maximum user data in bytes */
|
||||
uint32_t maxj; /* maximum u-u info in bytes */
|
||||
uint32_t maxcc; /* max. retransmissions for control packets */
|
||||
uint32_t maxpd; /* max. vt(pd) before sending poll */
|
||||
uint32_t maxstat; /* max. number of elements in stat list */
|
||||
uint32_t mr; /* initial window */
|
||||
uint32_t flags; /* flags */
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
The
|
||||
.Dv flags
|
||||
field contains the following flags influencing SSCOP operation:
|
||||
.Bl -column SSCOP_POLLREX -offset indent
|
||||
.It Dv SSCOP_ROBUST Ta enable atmf/97-0216 robustness enhancement
|
||||
.It Dv SSCOP_POLLREX Ta send POLL after each retransmission
|
||||
.El
|
||||
.Pp
|
||||
The bitmap has the following bits:
|
||||
.Bl -column SSCOP_POLLREXx -offset indent
|
||||
.It Dv SSCOP_SET_TCC Ta set Dv timer_cc
|
||||
.It Dv SSCOP_SET_TPOLL Ta set Dv timer_poll
|
||||
.It Dv SSCOP_SET_TKA Ta set Dv timer_keep_alive
|
||||
.It Dv SSCOP_SET_TNR Ta set Dv timer_no_response
|
||||
.It Dv SSCOP_SET_TIDLE Ta set Dv timer_idle
|
||||
.It Dv SSCOP_SET_MAXK Ta set Dv maxk
|
||||
.It Dv SSCOP_SET_MAXJ Ta set Dv maxj
|
||||
.It Dv SSCOP_SET_MAXCC Ta set Dv maxcc
|
||||
.It Dv SSCOP_SET_MAXPD Ta set Dv maxpd
|
||||
.It Dv SSCOP_SET_MAXSTAT Ta set Dv maxstat
|
||||
.It Dv SSCOP_SET_MR Ta set the initial window
|
||||
.It Dv SSCOP_SET_ROBUST Ta set or clear Dv SSCOP_ROBUST
|
||||
.It Dv SSCOP_SET_POLLREX Ta set or clear Dv SSCOP_POLLREX
|
||||
.El
|
||||
.Pp
|
||||
The node responds to the
|
||||
.Dv NGM_SSCOP_SETPARAM
|
||||
message with the following response:
|
||||
.Bd -literal
|
||||
struct ng_sscop_setparam_resp {
|
||||
uint32_t mask;
|
||||
int32_t error;
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
Here
|
||||
.Dv mask
|
||||
contains the a bitmask of the parameters that the user requested to set,
|
||||
but that could not be set and
|
||||
.Dv error
|
||||
is an
|
||||
.Xr errno 3
|
||||
code describing why the parameter could not be set.
|
||||
.It Dv NGM_SSCOP_GETPARAM
|
||||
This message returns the current operational parameters of the SSCOP
|
||||
instance in a
|
||||
.Fa sscop_param
|
||||
structure.
|
||||
.It Dv NGM_SSCOP_ENABLE
|
||||
This message creates the actual SSCOP instance and initializes it.
|
||||
Until this is done, parameters may neither be retrieved not set and all
|
||||
message received on any hook are discarded.
|
||||
.It Dv NGM_SSCOP_DISABLE
|
||||
Destroy the SSCOP instance. After this all messages on any hooks are
|
||||
discarded.
|
||||
.It Dv NGM_SSCOP_SETDEBUG
|
||||
Set debugging flags. The argument is an
|
||||
.Vt uint32_t .
|
||||
.It Dv NGM_SSCOP_GETDEBUG
|
||||
Retrieve the actual debugging flags.
|
||||
Needs no arguments and responds with an
|
||||
.Vt uint32_t .
|
||||
.It Dv NGM_SSCOP_GETSTATE
|
||||
Responds with the current state of the SSCOP instance in an
|
||||
.Vt uint32_t .
|
||||
If the node is not enabled the retrieved state is 0.
|
||||
.El
|
||||
.Sh FLOW CONTROL
|
||||
Flow control works on the upper and on the lower layer interface. At the lower
|
||||
layer interface the two messages
|
||||
.Dv NGM_HIGH_WATER_PASSED
|
||||
and
|
||||
.Dv NGM_LOW_WATER_PASSED
|
||||
are used to declare or clear the
|
||||
.Ql lower layer busy
|
||||
state of the protocol.
|
||||
.Pp
|
||||
At the upper layer interface the
|
||||
.Nm
|
||||
node handles three types of flow control messages:
|
||||
.Bl -tag -width xxx
|
||||
.It Dv NGM_HIGH_WATER_PASSED
|
||||
If this message is received the SSCOP stops moving the receive window.
|
||||
Each time a data message is handed over to the upper layer the receive
|
||||
window is moved by one message.
|
||||
Stopping these updates
|
||||
means that the window will start to close and if the peer has sent
|
||||
all messages allowed by the current window, it stops transmission.
|
||||
This means, that the upper layer must be able to receive still a full window
|
||||
amount of messages.
|
||||
.It Dv NGM_LOW_WATER_PASSED
|
||||
This will re-enable the automatic window updates and if the space indicated
|
||||
in the message is larger than the current window, the window will be opened
|
||||
by that amount.
|
||||
The space is computed as the difference of the
|
||||
.Fa max_queuelen_packets
|
||||
and
|
||||
.Fa current
|
||||
members of the
|
||||
.Fa ngm_queue_state
|
||||
structure.
|
||||
.It Dv NGM_SYNC_QUEUE_STATE
|
||||
If the upper layer buffer filling state as indicated by
|
||||
.Fa current
|
||||
is equal too or higher than
|
||||
.Fa high_watermark
|
||||
than the message is ignored.
|
||||
If this is not the case the amount
|
||||
of receiver space is computed as the difference of
|
||||
.Fa max_queuelen_packets
|
||||
and
|
||||
.Fa current ,
|
||||
if automatic window updates are currently allowed and as the difference of
|
||||
.Fa high_water_mark
|
||||
and
|
||||
.Fa current ,
|
||||
if window updates are disabled.
|
||||
If the resulting value is larger than the current window, the current window
|
||||
is opened up to this value.
|
||||
Automatic window updates are enabled, if they
|
||||
were disabled.
|
||||
.Sh SEE ALSO
|
||||
.Xr netgraph 4 ,
|
||||
.Xr ng_atm 4 ,
|
||||
.Xr ng_sscfu 4 ,
|
||||
.Xr ngctl 8
|
||||
.Sh AUTHORS
|
||||
.An Harti Brandt Aq harti@freebsd.org
|
Loading…
Reference in New Issue
Block a user