OpenSS7
SS7 for the
Common Man
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.
Last modified: Mon, 28 Apr 2008 12:53:46 GMT
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manpage of M_PASSFP
Quick Links

Download

SCTP

SIGTRAN

SS7

Hardware

STREAMS

Asterisk

Related

Package

Manual

FAQ

Man Pages

Applications

SS7 Stack

ISDN Stack

SIGTRAN Stack

VoIP Stack

MG Stack

SS7/ISDN Devices

IP Transport

Embedded Systems

OS

Documentation

FAQ

SIGTRAN

Design

Conformance

Performance

References

Man Pages

Manuals

Papers

Home

Overview

Status

Documentation

Resources

About

News

Manpage of M_PASSFP

Description: Manual Page

Keywords: ss7 ss7/ip ss7 over ip ss7 mtp ss7 sccp ss7 tcap sigtran mtp sccp tcap openss7 acb56 linux telephony pstn linux telephony linux nebs linux compactpci


M_PASSFP

Section: The OpenSS7 Project DDI/DKI (9)
Updated: Tue, 29 Jul 2014 20:51:36 GMT
Index Return to Main Contents

NAME

M_PASSFP - STREAMS pass file pointer message

FORMAT

The M_PASSFP message block is a datab(9) structure and associated data buffer that contains structured data.

An M_PASSFP message is a normal priority message that consists of a single M_PASSFP message block.

INTERFACE

STREAMS.

DESCRIPTION

The M_PASSFP message is used internally by STREAMS to pass a file pointer from the Stream head at one end of a STREAMS-based pipe(4) to the Stream head at the other end of the same STREAMS-based pipe(4).

The message is generated as a result of an I_SENDFD(7) command to an ioctl(2s) system call issued by a user level process to the sending Stream head. STREAMS places the M_PASSFP message directly on the destination Stream head's read queue to be retreived by an I_RECVFD(7) command to the ioctl(2s) system call. The message is placed without passing it through the Stream (i.e., it is not seen by any drivers or modules in the Stream). This message should never be present on any queue except the read queue of a Stream head. Consequently, drivers and modules do not need to recognize this message, and it can be ignored by driver and module developers.

There are several reasons why the M_PASSFP message is placed directly on the opposite Stream head:

(1)
The message contains a reference to a file pointer (file table entry) within the kernel and must not be freed without also releasing this reference.
(2)
The message must not be altered by modules in the Stream.
(3)
Although the message contents are structured, the contents rely on implementation specifics of the Stream head. Therefore, the message is of no use to a portable driver or module.

Because the M_PASSFP message is placed directly on the opposite Stream head, although it is message of normal priority, it is treated as a high priority message. M_PASSFP messages can be generated directly by a user level process with the I_SENDFD(7) ioctl(2s). M_PASSFP messages can be consumed directly by a user level process with the I_RECVFD(7) ioctl(2s). M_PASSFP messages should not be generated by drivers or modules. M_PASSFP messages arriving at a driver or module can be discarded (ignored and freed).

USAGE

There is one standard module (besides the Stream head) that needs to generate an pass a M_PASSFP message. That module is connld(4). The connld(4) module must pass a file pointer to the Stream head opposite to the one that is is pushed over, on each open of the Stream. The The OpenSS7 Project[1] implementation of the M_PASSFP message is detailed below, under IMPLEMENTATION ® as documentation for this module and any other module that needs to perform a similar task.

IMPLEMENTATION

Under The OpenSS7 Project[1], the M_PASSFP message contains (indirectly) a file pointer (that is, a pointer to a file structure as defined in <linux/fs.h>). The Stream head allocates the message block using the esballoc(9) utility instead of allocb(9). The free routine and argument to the free routine are special. The free routine argument is the file pointer, and the free routine simply releases the reference to the file pointer. Rather than pointing into the data buffer, b_rptr points to the free routing argument contained in the data block, datab(9), structure, and b_wptr points one byte past the argument.

In this way, M_PASSFP messages sitting on a Stream head read queue can be flushed as normal, using the flushq(9) utility, and the reference to each file pointer will be released.

SEE ALSO

datab(9), msgb(9).

COMPATIBILITY

The M_PASSFP STREAMS message is compatible with SVR 4.2 MP STREAMS, and implementations based on SVR 4, with the following portability considerations:

---
Contents of the M_PASSFP message and implementation of the sth(4) and connld(4) modules are, by nature, implementation specific. Neither can be implemented in a fully portable manner.
Portable STREAMS drivers and modules will not expect the M_PASSFP message to appear on their queues, and will never generate an M_PASSFP message.
---
M_PASSFP has a different constant value on older versions of OSF/1®[2], and older versions of LiS[3].
Portable STREAMS drivers and modules will use The OpenSS7 Project[1] instead of LiS[3].
---
Binary compatibility is not guaranteed.

See STREAMS(9) for additional compatibility information.

CONFORMANCE

SVR 4.2 MP STREAMS[4].

HISTORY

The M_PASSFP message first appeared in SVR 3[5].

REFERENCES

[1]
streams-0.9.2, Linux Fast-STREAMS (LfS) 0.9.2 Source Code, Brian Bidulock, ed., OpenSS7 Corporation. <http://www.openss7.org/>
[2]
Digital® UNIX (OSF/1.2), Digital UNIX: Network Programmers Guide, 1996, (Palo Alto, California), Digital Equipment Corporation, Hewlett-Packard Company. <http://www.true64unix.compaq.com/docs/>
[3]
LIS 2.18, Linux STREAMS (LiS) 2.18.6 Source Code, Brian Bidulock, ed., OpenSS7 Corporation. <http://www.openss7.org/>
[4]
SVR 4.2, STREAMS Programmer's Guide, 1992, (Englewood Cliffs, New Jersey), AT&T UNIX System Laboratories, Inc., Prentice Hall.
[5]
SVR 3, UNIX® System V Release 3 STREAMS Programmer's Guide, (Englewood Cliffs, New Jersey), AT&T UNIX System Laboratories, Inc., Prentice Hall.

TRADEMARKS

OpenSS7tm
is a trademark of OpenSS7 Corporation.
Linux®
is a registered trademark of Linus Torvalds.
UNIX®
is a registered trademark of The Open Group.
Solaris®
is a registered trademark of Sun Microsystems.

Other trademarks are the property of their respective owners.

IDENTIFICATION

The OpenSS7 Project: Package OpenSS7 version 0.9.2 released Tue, 29 Jul 2014 20:51:36 GMT.

Copyright©1997-2008OpenSS7 Corp.
All Rights Reserved.
(See roff source for permission notice.)



Index

NAME
FORMAT
INTERFACE
DESCRIPTION
USAGE
IMPLEMENTATION
SEE ALSO
COMPATIBILITY
CONFORMANCE
HISTORY
REFERENCES
TRADEMARKS
IDENTIFICATION

This document was created by man2html, using the manual pages.
Time: 20:51:36 GMT, July 29, 2014
OpenSS7
SS7 for the
Common Man
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manpage of M_PASSFP
Last modified: Mon, 28 Apr 2008 12:53:46 GMT
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.