[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[HLL] Frames again...



Status: RO
Content-Length: 3820
Lines: 115

-----BEGIN PGP SIGNED MESSAGE-----

Hi,


here is a "layered approach" to define our data-format.

It mainly repeats the "quick and dirty" proposal,
but seperates things into several "layers" to make life easy.


LEVEL 0
- -------

This level must provide a way to send and receive frames.

How this is done depends very much on the media used.
A frame is a collection of data-bytes (min/usually 34 bytes,
but can be more). No assumptions about the meaning/contens
of the data being transported are made other than:
* Data being transported must be random noise
  (This is usually true because data is crypted.)  <-- NOTE_1

A method to accomplish this task over async serial lines
has been proposed earlier. This includes adding the 0x42,
leaving 1 Byte of extra-space and methods for the rx to sync.

Additional methods to transport our packets via synchron-links
or packet-switching-networks may be specified later.


LEVEL 1
- -------

This level takes care about splitting/assembling our frames.
It knows about several possible ways to use frame-bandwidth.

So it mainly interprets the 4 mode-bits and splits frames accordingly.
Our frames might be structures as described in the "quick and dirty"
proposal earlier. Fields should be in this sequence:
*   4 Bits coding operation-mode "mode-bits"
* 260 Bits coding used as "G-channel" (13000 Baud @ 20mSec/Frame)
*   8 Bits coding used as "X-channel" (  400 Baud @ 20mSec/Frame)
This makes up a minimum frame of 34 bytes.
If frames are longer, any extra bytes belong to the "X-channel".

Now the mode-bits encode the usage of frame-fields.
There are 5 basic operation-modes:
0 - "Null"-Mode, 
    G+X-channel ignored, used for sync-purposes and dummy
1 - <reserved>
2 - "Silence/Command"-Mode
    G+X-channel are combined, data is stream-based
    and belongs to the "command/status"-link used for handshake (Level 2)
3 - "Silence/UserData"-Mode
    G+X-channel are combined, data is stream-based
    and belongs to the "transparent user-data-channel"
4 - "Talking/Command"-Mode
    G-channel is block-based and carries gsm-frames
    X-channel is stream-based "command/status"-link (Level 2)
5 - "Talking/UserData"-Mode
    G-channel is block-based and carries gsm-frames
    X-channel is stream-based "user-data-channel"

So what this level will output (if decoding rx-frames) will be:
* Gsm-blocks of 260-bits
* Stream-based "command/status"-link
* Stream-based "user-data-channel"-link
Gsm-block-handling is already specified and will not be mentioned here.
Command/status-link is a character-stream and given to "Level 2" below.
User-data-channel is a character-stream provided to the user via rs232-i/o.


LEVEL 2
- -------

This level describes how commands are passed via the
stream-based "command/status"-link described above.

It should define rules how to
* identify the start and len of messages
* how to verify that a received message is ok (crc)
* what handshake-messages to send if you want
  to send a command to the other side.
  This includes the format of reply-messages.

[Sorry - but specifying the details still has to be done...]


LEVEL 3
- -------

This level should specify the meaning of individual messages,
as well as high-level-flow-control for message-exchange.

Maybe we can be very close to the "VP1" on this level !

[Sorry - but specifying the details still has to be done...]


COMMENTS REQUESTET !


Volker

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3i
Charset: latin1

iQCVAgUBNLOBi0iof7Gu0VvJAQH6eQP+M6JUJWcbDQrAYDBmL4R5OZjpELhYd0m7
vF777CO55vsBryl9nRehI4YfzKQ6yAI11RYyUS7OrbpiytOTilnQru2DvhXhoTBS
3bIEMIbPVd47vHesY/VHmTkWFkHSDJwnSg0pCR/LKK4FsFhexvzJCZEVBqie95l+
deTdQKHVfE8=
=gdRo
-----END PGP SIGNATURE-----