Deleted Added
full compact
ng_uni.4 (123943) ng_uni.4 (130857)
1.\"
2.\" Copyright (c) 2001-2003
3.\" Fraunhofer Institute for Open Communication Systems (FhG Fokus).
4.\" All rights reserved.
5.\"
6.\" Author: Hartmut Brandt <harti@freebsd.org>
7.\"
8.\" Redistribution and use in source and binary forms, with or without

--- 12 unchanged lines hidden (view full) ---

21.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27.\" SUCH DAMAGE.
28.\"
1.\"
2.\" Copyright (c) 2001-2003
3.\" Fraunhofer Institute for Open Communication Systems (FhG Fokus).
4.\" All rights reserved.
5.\"
6.\" Author: Hartmut Brandt <harti@freebsd.org>
7.\"
8.\" Redistribution and use in source and binary forms, with or without

--- 12 unchanged lines hidden (view full) ---

21.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27.\" SUCH DAMAGE.
28.\"
29.\" $FreeBSD: head/share/man/man4/ng_uni.4 123943 2003-12-28 22:34:47Z ru $
29.\" $FreeBSD: head/share/man/man4/ng_uni.4 130857 2004-06-21 17:42:49Z mpp $
30.\"
31.Dd October 6, 2003
32.Dt NG_UNI 4
33.Os FreeBSD
34.Sh NAME
35.Nm ng_uni
36.Nd netgraph UNI node type
37.Sh SYNOPSIS

--- 15 unchanged lines hidden (view full) ---

53.Sh HOOKS
54Each
55.Nm
56node has three hooks with fixed names:
57.Bl -tag -width xxx
58.It Dv lower
59This hook is the interface of the UNI protocol to the transport layer of
60the ATM control plane.
30.\"
31.Dd October 6, 2003
32.Dt NG_UNI 4
33.Os FreeBSD
34.Sh NAME
35.Nm ng_uni
36.Nd netgraph UNI node type
37.Sh SYNOPSIS

--- 15 unchanged lines hidden (view full) ---

53.Sh HOOKS
54Each
55.Nm
56node has three hooks with fixed names:
57.Bl -tag -width xxx
58.It Dv lower
59This hook is the interface of the UNI protocol to the transport layer of
60the ATM control plane.
61The node expectes the interface exported by
61The node expects the interface exported by
62.Xr ng_sscfu 4
63at this hook.
64.It Dv upper
65This hook is the
66.Ql user
67interface of the UNI protocol.
68Because there is no standardized interface
69at this point, this implementation follows more or less the interface

--- 16 unchanged lines hidden (view full) ---

86.Nm
87node is loosely modelled after the interface specified in the ITU-T signalling
88standards.
89There is however one derivation from this: normally there exists
90four kinds of signals: requests, responses, indications and confirmations.
91These signals are usually triggered either by external events (receiving a
92message) or internal events (a timer or another signal).
93This scheme works
62.Xr ng_sscfu 4
63at this hook.
64.It Dv upper
65This hook is the
66.Ql user
67interface of the UNI protocol.
68Because there is no standardized interface
69at this point, this implementation follows more or less the interface

--- 16 unchanged lines hidden (view full) ---

86.Nm
87node is loosely modelled after the interface specified in the ITU-T signalling
88standards.
89There is however one derivation from this: normally there exists
90four kinds of signals: requests, responses, indications and confirmations.
91These signals are usually triggered either by external events (receiving a
92message) or internal events (a timer or another signal).
93This scheme works
94fine for user APIs that are entirely asynchronuous and in cases, where
94fine for user APIs that are entirely asynchronous and in cases, where
95error handling is not taken into account.
95error handling is not taken into account.
96With synchronuous APIs and error
96With synchronous APIs and error
97handling, however there is a problem.
98If, for example, the application
99issues a request to setup a connection.
100It may do it by sending a
101.Dv SETUP.request
102signal to the UNI.
103Normally the UNI stack will send a SETUP message and
104receive a message from the switch (a RELEASE, CONNECT, CALL PROCEEDING or
105ALERTING) or a timer in the UNI stack will time out.
106In any of these cases
107the UNI stack is supposed to report an event back to the application and
97handling, however there is a problem.
98If, for example, the application
99issues a request to setup a connection.
100It may do it by sending a
101.Dv SETUP.request
102signal to the UNI.
103Normally the UNI stack will send a SETUP message and
104receive a message from the switch (a RELEASE, CONNECT, CALL PROCEEDING or
105ALERTING) or a timer in the UNI stack will time out.
106In any of these cases
107the UNI stack is supposed to report an event back to the application and
108the application will unblock (in the case of a synchronuous API) and handle
108the application will unblock (in the case of a synchronous API) and handle
109the event.
110The problem occurs, when an error happens.
111Suppose there is no
112memory to send the SETUP message and to start the timer.
113In this case the
114application will block forever, because no received message and no timer
115will wake it up.
116For this reason this implementation uses an additional message:
117for each signal sent from the application to the stack, the stack will
118respond with an error code.
119If this code is zero, the stack has accepted
120the signal and the application may block, if the code is non-zero, the signal
109the event.
110The problem occurs, when an error happens.
111Suppose there is no
112memory to send the SETUP message and to start the timer.
113In this case the
114application will block forever, because no received message and no timer
115will wake it up.
116For this reason this implementation uses an additional message:
117for each signal sent from the application to the stack, the stack will
118respond with an error code.
119If this code is zero, the stack has accepted
120the signal and the application may block, if the code is non-zero, the signal
121is effectivly ignored and the code describes, what was wrong.
121is effectively ignored and the code describes, what was wrong.
122This system
123makes it very easy to make a blocking interface out of the message based
124netgraph interface.
125.Pp
126The
127.Dv upper
128interface uses the following structure:
129.Bd -literal

--- 270 unchanged lines hidden (view full) ---

400LIJ (leaf-initiated-join) is not implemented yet.
401.It
402GFP (generic functional protocol, Q.2932.1) is not yet implemented.
403.It
404More testing needed.
405.It
406PNNI not yet implemented.
407.It
122This system
123makes it very easy to make a blocking interface out of the message based
124netgraph interface.
125.Pp
126The
127.Dv upper
128interface uses the following structure:
129.Bd -literal

--- 270 unchanged lines hidden (view full) ---

400LIJ (leaf-initiated-join) is not implemented yet.
401.It
402GFP (generic functional protocol, Q.2932.1) is not yet implemented.
403.It
404More testing needed.
405.It
406PNNI not yet implemented.
407.It
408Need to implement connection modification and the Q.2931 amandements.
408Need to implement connection modification and the Q.2931 amendments.
409.Sh AUTHORS
410The
411.Nm
412netgraph node
413and this manual page was written by
414.An Harti Brandt Aq harti@freebsd.org
409.Sh AUTHORS
410The
411.Nm
412netgraph node
413and this manual page was written by
414.An Harti Brandt Aq harti@freebsd.org