SAP(7)
π NAME π
sap β Service Access Point specification
okay so bestie, welcome to SAP(7) π
it's a little misc-section page from the Linux manual and it's literally your whole guide to how SAP specs get written down. let's get into it β¨
πΈ DESCRIPTION πΈ
the tea is this: the text2sap and sap2text functions use the format described in this man page. and because every single standard ATM tool on Linux uses those functions to convert to or from the textual representation of SAP specifications, they expect them in the same format too. no cap π«Ά
the SAP is divided into two parts: the broadband high layer information (BHLI) and the broadband low layer information (BLLI). a SAP can contain one, both, or none of them. and in that last case? the SAP is usually considered a wildcard SAP, i.e. a SAP that is compatible with any other SAP. main character energy, honestly π
each part begins with its name (bhli or blli), followed by a colon and a (non-empty) list of attributes, which are of the form attribute=value. some attributes have sub-attributes, which follow them. everything that isn't separated by a colon or an equal sign is separated by a comma.
values which are a number of bytes are specified as the corresponding sequence of pairs of hex digits. the sequence can be optionally prefixed with 0x. values which are integers in a given range can be specified in decimal (no prefix), octal (0 prefix), and hexadecimal (0x prefix). so many options, we love a flexible queen π
the following, mutually exclusive attributes are allowed in the bhli part (see the corresponding ATM Forum and ITU documents for the semantics):
iso=1-8 bytesβ ISOuser=1-8 bytesβ User-specifichlp=4 bytesβ High layer profile. Note that this attribute only exists on UNI 3.0.text2saponly recognizes it if your system is configured to accept UNI 3.0 message formats.oui=3 bytes,id=4 bytesβ Vendor-specific application identifier
and now the structure of the bhli part, which is more complex π it distinguishes three layers, l1, l2, and l3, of which the first one is presently unsupported. (rip l1, you would've slayed)
for layer two, the following (mutually exclusive) possibilities exist:
l2=iso1745β Basic mode ISO 1745l2=q291β ITU-T Q.291 (Rec. I.441)l2=lapbβ Extended LAPB, half-duplex (Rec. T.71)l2=iso8802β LAN LLC (ISO/IEC 8802/2)l2=x75β ITU-T X.75, SLPl2=x25_ll ...β ITU-T X.25, link layer. This attribute and the following attributes throughl2=iso7776can optionally be followed by one or more of the following sub-attributes:mode=mode(mode of operation, eithernormorext), andwindow=window size(window size in k, 1-127).l2=x25_ml ...β ITU-T X.25, multilinkl2=hdlc_arm ...β HDLC ARM (ISO/IEC 4335)l2=hdlc_nrm ...β HDLC NRM (ISO/IEC 4335)l2=hdlc_abm ...β HDLC ABM (ISO/IEC 4335)l2=q992 ...β ITU-T Q.922l2=iso7776 ...β ISO 7776 DTE-DTEl2=user,info=informationβ User-specified.informationis an integer in the range 0 to 255.
for layer three, the following (again, mutually exclusive) possibilities exist:
l3=iso8473β ITU-T X.233 | ISO/IEC 8473l3=t70β ITU-T T.70 minimum network layerl3=h321β ITU-T Recommendation H.321l3=x25 ...β ITU-T X.25, packet layer. This attribute and the following attributes throughl3=x223can optionally be followed by one or more of the following sub-attributes:mode=mode(see above),size=default packet size(4-12, corresponding to 16-4096),window=window size(see above).l3=iso8208 ...β ISO/IEC 8208l3=x223 ...β ITU-T X.223 | ISO/IEC 8878l3=tr9577,ipi=identifier ...β ISO/IEC TR 9577.identifieris the initial protocol identifier in the range 0-255. For SNAP (0x80), the keywordsnapcan be used, and the following sub-attributes have to be specified:oui=3 bytes, andpid=2 bytes.l2=user,info=informationβ User-specified, see above.l3=h310 ...β ITU-T Recommendation H.310. The sub-attributeterm=type(terminal type,rx,tx, orrxtx) is recognized. If present, it enables the two additional sub-attributesfw_mpx=capability(forward multiplexing capability,ts,ts_fec,ps,ps_fec, orh221) andbw_mpx=capability. Both are optional.
β οΈ note bestie, and this one's important: commas must never follow colons or other commas. also, whitespace is not allowed inside a SAP specification. SAP specifications are case-insensitive. on input, items must be written in exactly the order used in this document. π the order thing is not a suggestion, it's the law.
β¨ EXAMPLES β¨
get you a spec that can do both π
blli:l2=iso8802
Classical IP over ATM (RFC1577)
bhli:oui=0x0060D7,id=0x01000001,blli:l2=iso8802
Arequipa (RFC2170)
blli:l3=tr9577,ipi=snap,oui=0x00A03E,pid=0x0002
LAN Emulation
π AUTHOR π
Werner Almesberger, EPFL LRC <werner.almesberger@lrc.di.epfl.ch>
and that's the whole page, bestie π¦ this one came from Linux, dated November 6, 1997 β yeah, it's an icon and it's been an icon for a minute ππ
π¦ where this page comes from
- arch rolling: linux-atm 2.5.2-9 Β· GPL-2.0-only
- debian bookworm: atm-tools 1:2.5.1-4+b2
- debian trixie: atm-tools 1:2.5.1-7
- fedora 43: linux-atm 2.5.1-45.fc43 Β· GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.0-or-later
- fedora 44: linux-atm 2.5.1-46.fc44 Β· GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.0-or-later
- opensuse-leap 16.0: linux-atm 2.5.2-160000.3.2 Β· BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: linux-atm 2.5.2-160000.3.2 Β· BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: linux-atm 2.5.2-160000.3.2 Β· BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: linux-atm 2.5.2-160000.3.2 Β· BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later
- ubuntu jammy: atm-tools 1:2.5.1-4build2
- ubuntu noble: atm-tools 1:2.5.1-5.1build1
- ubuntu resolute: atm-tools 1:2.5.1-9
- ubuntu stonking: atm-tools 1:2.5.1-9
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms