/*
* Protocol Tower. The network representation of network addressing
* information (e.g., RPC bindings).
*/
typedef struct {
unsigned32 tower_length;
[size_is(tower_length)]
byte tower_octet_string[];
} twr_t, *twr_p_t;
This appendix defines the rules for encoding an protocol_tower_t (abstract) into the twr_t.tower_octet_string and twr_p_t->tower_octet_string fields (concrete). For historical reasons, this cannot be done using the standard NDR encoding rules for marshalling and unmarshalling. A special encoding is required.
Note that the twr_t and twr_p_t are mashalled as standard IDL data types, encoded in the standard transfer syntax (for example, NDR). As far as IDL and NDR are concerned, tower_octet_string is simply an opaque conformant byte array. This section only defines how to construct this opaque open array of octets, which contains the actual protocol tower information.
The tower_octet_string[] is a variable length array of octets that encodes a single, complete protocol tower. It is encoded as follows:
+-------------+---------+---------+---------+---------+---------+
| floor count | floor 1 | floor 2 | floor 3 | ... | floor n |
+-------------+---------+---------+---------+---------+---------+
The number of tower floors is specific to the particular protocol tower, also known as a protseq.
|<- tower floor left hand side ->|<- tower floor right hand side ->|
+------------+-----------------------+------------+----------------------+
| LHS byte | protocol identifier | RHS byte | related or address |
| count | data | count | data |
+------------+-----------------------+------------+----------------------+
The LHS (Left Hand Side) of the floor contains protocol identifier
information.
Protocol identifier values and construction rules are defined in
The RHS (Right Hand Side) of the floor contains related or addressing
information. The type and encoding for the currently defined protocol
identifiers are given in
The floor count, LHS byte count and RHS byte count are all 2-bytes, in little endian format.
All towers contain the 3 floors shown in
Floor | Content |
---|---|
1 | RPC interface identifier |
2 | RPC Data representation identifier |
3 | RPC protocol identifier |
The content of floors 4 and 5 are protseq-specific.
Floor | Content |
---|---|
4 | Port address |
5 | Host address |
Implementations may optionally support the protocol sequence
ncacn_dnet_nsp.
Floor | Content |
---|---|
4 | DECnet session control |
5 | Transport - Network Services Protocol (NSP) |
6 | DECnet routing - Network Service Access Point (NSAP) |
Please note that the html version of this specification may contain formatting aberrations. The definitive version is available as an electronic publication on CD-ROM from The Open Group.
Contents | Next section | Index |