Index: head/share/man/man4/Makefile =================================================================== --- head/share/man/man4/Makefile (revision 121613) +++ head/share/man/man4/Makefile (revision 121614) @@ -1,375 +1,377 @@ # @(#)Makefile 8.1 (Berkeley) 6/18/93 # $FreeBSD$ MAN= aac.4 \ acpi.4 \ adv.4 \ adw.4 \ agp.4 \ aha.4 \ ahb.4 \ ahc.4 \ ahd.4 \ aio.4 \ amd.4 \ amr.4 \ an.4 \ asr.4 \ ata.4 \ atapicam.4 \ atkbd.4 \ atkbdc.4 \ ath.4 \ ath_hal.4 \ aue.4 \ awi.4 \ axe.4 \ bfe.4 \ bge.4 \ bktr.4 \ blackhole.4 \ bpf.4 \ bridge.4 \ bt.4 \ cardbus.4 \ ccd.4 \ cd.4 \ ch.4 \ ciss.4 \ crypto.4 \ csa.4 \ cue.4 \ da.4 \ dc.4 \ dcons.4 \ dcons_crom.4 \ ddb.4 \ de.4 \ devctl.4 \ disc.4 \ divert.4 \ dpt.4 \ dummynet.4 \ ed.4 \ ef.4 \ ehci.4 \ em.4 \ en.4 \ exca.4 \ faith.4 \ fast_ipsec.4 \ fatm.4 \ fd.4 \ fdc.4 \ firewire.4 \ fla.4 \ fpa.4 \ fwe.4 \ fwohci.4 \ fxp.4 \ gbde.4 \ gem.4 \ geom.4 \ gif.4 \ gre.4 \ gusc.4 \ gx.4 \ harp.4 \ hatm.4 \ hifn.4 \ hme.4 \ ichsmb.4 \ icmp.4 \ icmp6.4 \ ida.4 \ ieee80211.4 \ ifmib.4 \ iic.4 \ iicbb.4 \ iicbus.4 \ iicsmb.4 \ iir.4 \ inet.4 \ inet6.4 \ intpm.4 \ intro.4 \ ip.4 \ ip6.4 \ ipfirewall.4 \ ipsec.4 \ isp.4 \ ispfw.4 \ joy.4 \ kame.4 \ keyboard.4 \ kld.4 \ kue.4 \ ktr.4 \ lge.4 \ lmc.4 \ lo.4 \ lomac.4 \ lp.4 \ lpbb.4 \ lpt.4 \ maestro3.4 \ md.4 \ mem.4 \ miibus.4 \ mlx.4 \ mly.4 \ mac.4 \ mac_biba.4 \ mac_bsdextended.4 \ mac_ifoff.4 \ mac_lomac.4 \ mac_mls.4 \ mac_none.4 \ mac_partition.4 \ mac_portacl.4 \ mac_seeotheruids.4 \ mac_stub.4 \ mac_test.4 \ mouse.4 \ mtio.4 \ multicast.4 \ my.4 \ natm.4 \ natmip.4 \ ncr.4 \ netgraph.4 \ netintro.4 \ ng_atm.4 \ ng_atmpif.4 \ ng_UI.4 \ ng_async.4 \ ng_bluetooth.4 \ ng_bpf.4 \ ng_bridge.4 \ ng_bt3c.4 \ ng_btsocket.4 \ ng_cisco.4 \ ng_echo.4 \ ng_etf.4 \ ng_ether.4 \ ng_frame_relay.4 \ ng_gif.4 \ ng_h4.4 \ ng_hci.4 \ ng_hole.4 \ ng_iface.4 \ ng_ip_input.4 \ ng_ksocket.4 \ ng_l2cap.4 \ ng_l2tp.4 \ ng_lmi.4 \ ng_mppc.4 \ ng_one2many.4 \ ng_ppp.4 \ ng_pppoe.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 \ ng_vjc.4 \ nge.4 \ nmdm.4 \ null.4 \ ohci.4 \ oldcard.4 \ orm.4 \ pass.4 \ patm.4 \ pci.4 \ pccard.4 \ pccbb.4 \ pcic.4 \ pcm.4 \ pcn.4 \ pcvt.4 \ pim.4 \ polling.4 \ ppbus.4 \ ppc.4 \ ppi.4 \ ppp.4 \ psm.4 \ pst.4 \ pt.4 \ pty.4 \ puc.4 \ raid.4 \ random.4 \ re.4 \ rl.4 \ rndtest.4 \ route.4 \ rp.4 \ rue.4 \ sa.4 \ safe.4 \ sbc.4 \ sbp.4 \ sbsh.4 \ screen.4 \ scsi.4 \ sd.4 \ sem.4 \ ses.4 \ sf.4 \ si.4 \ sio.4 \ sis.4 \ sk.4 \ sl.4 \ smb.4 \ smbus.4 \ smp.4 \ sn.4 \ snp.4 \ spic.4 \ splash.4 \ sppp.4 \ st.4 \ ste.4 \ stf.4 \ stg.4 \ sym.4 \ syncache.4 \ syncer.4 \ syscons.4 \ sysmouse.4 \ tap.4 \ targ.4 \ tcp.4 \ tdfx.4 \ termios.4 \ ti.4 \ tl.4 \ trm.4 \ ttcp.4 \ tty.4 \ tun.4 \ twe.4 \ txp.4 \ uart.4 \ ubsa.4 \ ubsec.4 \ ubtbcmfw.4 \ ucom.4 \ udbp.4 \ udp.4 \ uftdi.4 \ ugen.4 \ uhci.4 \ uhid.4 \ uhidev.4 \ ukbd.4 \ ulpt.4 \ umass.4 \ umodem.4 \ ums.4 \ unix.4 \ uplcom.4 \ urio.4 \ usb.4 \ uscanner.4 \ utopia.4 \ uvisor.4 \ uvscom.4 \ vga.4 \ vinum.4 \ vlan.4 \ vpo.4 \ vr.4 \ watchdog.4 \ wb.4 \ wi.4 \ witness.4 \ wlan.4 \ worm.4 \ xl.4 \ xpt.4 \ zero.4 MLINKS= agp.4 agpgart.4 MLINKS+=an.4 if_an.4 MLINKS+=ata.4 acd.4 ata.4 ad.4 ata.4 afd.4 ata.4 ast.4 MLINKS+=aue.4 if_aue.4 MLINKS+=awi.4 if_awi.4 MLINKS+=bge.4 if_bge.4 MLINKS+=bktr.4 brooktree.4 MLINKS+=cue.4 if_cue.4 MLINKS+=dc.4 if_dc.4 MLINKS+=de.4 if_de.4 MLINKS+=disc.4 if_disc.4 MLINKS+=ed.4 if_ed.4 MLINKS+=ef.4 if_ef.4 MLINKS+=em.4 if_em.4 MLINKS+=en.4 if_en.4 MLINKS+=faith.4 if_faith.4 MLINKS+=fatm.4 if_fatm.4 MLINKS+=fd.4 stderr.4 fd.4 stdin.4 fd.4 stdout.4 MLINKS+=fpa.4 fea.4 MLINKS+=fwe.4 if_fwp.4 MLINKS+=fxp.4 if_fxp.4 MLINKS+=gem.4 if_gem.4 MLINKS+=geom.4 GEOM.4 MLINKS+=gif.4 if_gif.4 MLINKS+=gre.4 if_gre.4 MLINKS+=gx.4 if_gx.4 MLINKS+=hatm.4 if_hatm.4 MLINKS+=hme.4 if_hme.4 MLINKS+=ipfirewall.4 ipacct.4 ipfirewall.4 ipaccounting.4 ipfirewall.4 ipfw.4 MLINKS+=kue.4 if_kue.4 MLINKS+=lge.4 if_lge.4 MLINKS+=lo.4 loop.4 MLINKS+=lp.4 plip.4 MLINKS+=md.4 vn.4 MLINKS+=mem.4 kmem.4 MLINKS+=netintro.4 networking.4 MLINKS+=nge.4 if_nge.4 MLINKS+=oldcard.4 card.4 MLINKS+=patm.4 if_patm.4 MLINKS+=pccbb.4 cbb.4 MLINKS+=pcm.4 snd.4 MLINKS+=pcn.4 if_pcn.4 MLINKS+=pcvt.4 vt.4 MLINKS+=ppp.4 if_ppp.4 MLINKS+=rl.4 if_rl.4 MLINKS+=sbsh.4 if_sbsh.4 MLINKS+=scsi.4 CAM.4 MLINKS+=scsi.4 SCSI.4 MLINKS+=scsi.4 cam.4 MLINKS+=scsi.4 scbus.4 MLINKS+=sf.4 if_sf.4 MLINKS+=sis.4 if_sis.4 MLINKS+=sk.4 if_sk.4 MLINKS+=sl.4 if_sl.4 MLINKS+=smp.4 SMP.4 MLINKS+=sn.4 if_sn.4 MLINKS+=ste.4 if_ste.4 MLINKS+=stf.4 if_stf.4 MLINKS+=splash.4 screensaver.4 MLINKS+=syncache.4 syncookies.4 MLINKS+=syscons.4 sc.4 MLINKS+=tap.4 if_tap.4 MLINKS+=ti.4 if_ti.4 MLINKS+=tl.4 if_tl.4 MLINKS+=tun.4 if_tun.4 MLINKS+=txp.4 if_txp.4 MLINKS+=vlan.4 if_vlan.4 MLINKS+=vpo.4 imm.4 MLINKS+=vr.4 if_vr.4 MLINKS+=wb.4 if_wb.4 MLINKS+=wi.4 if_wi.4 MLINKS+=xl.4 if_xl.4 # XXX NOT IMPORTED: man4.hp300 man4.sparc man4.tahoe man4.vax .if exists(${.CURDIR}/man4.${MACHINE_ARCH}) SUBDIR= man4.${MACHINE_ARCH} .endif .include Index: head/share/man/man4/ng_sscfu.4 =================================================================== --- head/share/man/man4/ng_sscfu.4 (nonexistent) +++ head/share/man/man4/ng_sscfu.4 (revision 121614) @@ -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 +.\" +.\" $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 +.Fd #include +.Fd #include +.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 Property changes on: head/share/man/man4/ng_sscfu.4 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: head/share/man/man4/ng_sscop.4 =================================================================== --- head/share/man/man4/ng_sscop.4 (nonexistent) +++ head/share/man/man4/ng_sscop.4 (revision 121614) @@ -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 +.\" +.\" $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 +.Fd #include +.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 Property changes on: head/share/man/man4/ng_sscop.4 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property