<revhistory>
  <revision>
    <revnumber>0.1</revnumber>
    <date>11 June 2012</date>
    <authorinitials>Pablo Neira Ayuso</authorinitials>
    <revremark>
       Initial version of the proposal for internal discussion.
    </revremark>
  </revision>
  <revision>
    <revnumber>0.2</revnumber>
    <date>11 June 2012</date>
    <authorinitials>Pablo Neira Ayuso</authorinitials>
    <revremark>
            Second version after comments from Holger and Harald:
            Include figures that provide expect traffic savings (in %).
            Change licensing terms (owned by OnWaves and consultants).
            Adjust work from 200 to 150 hours, remove details on how the implementation
    </revremark>
  </revision>
  <revision>
    <revnumber>0.3</revnumber>
    <date>20 June 2017</date>
    <authorinitials>Pau Espin Pedrol</authorinitials>
    <revremark>
            Improve and extenend for osmo-gsm-manuals inclusion from Pau Espin:
            Convert to asciidoc.
            Update frame bits according to implementation.
    </revremark>
  </revision>
  <revision>
    <revnumber>0.4</revnumber>
    <date>19 July 2017</date>
    <authorinitials>Pau Espin Pedrol</authorinitials>
    <revremark>
            Add sequence charts, generate packet header structure with packetdiag, generate traffic saving plot with pychart.
    </revremark>
  </revision>
</revhistory>

<authorgroup>
  <author>
    <firstname>Holger</firstname>
    <surname>Freyther</surname>
    <email>hfreyther@sysmocom.de</email>
    <authorinitials>HF</authorinitials>
    <affiliation>
      <shortaffil>sysmocom</shortaffil>
      <orgname>sysmocom - s.f.m.c. GmbH</orgname>
      <jobtitle>former Managing Director</jobtitle>
    </affiliation>
  </author>
  <author>
    <firstname>Harald</firstname>
    <surname>Welte</surname>
    <email>hwelte@sysmocom.de</email>
    <authorinitials>HW</authorinitials>
    <affiliation>
      <shortaffil>sysmocom</shortaffil>
      <orgname>sysmocom - s.f.m.c. GmbH</orgname>
      <jobtitle>Managing Director</jobtitle>
    </affiliation>
  </author>
  <author>
    <firstname>Pablo</firstname>
    <surname>Neira Ayuso</surname>
    <email>pneira@sysmocom.de</email>
    <authorinitials>PN</authorinitials>
    <affiliation>
      <shortaffil>sysmocom</shortaffil>
      <orgname>sysmocom - s.f.m.c. GmbH</orgname>
    </affiliation>
  </author>
</authorgroup>

<copyright>
  <year>2012-2017</year>
  <holder>sysmocom - s.f.m.c. GmbH</holder>
</copyright>

<legalnotice>
  <para>
	Permission is granted to copy, distribute and/or modify this
	document under the terms of the GNU Free Documentation License,
	Version 1.3 or any later version published by the Free Software
	Foundation; with the Invariant Sections being just 'Foreword',
	'Acknowledgements' and 'Preface', with no Front-Cover Texts,
	and no Back-Cover Texts.  A copy of the license is included in
	the section entitled "GNU Free Documentation License".
  </para>
  <para>
	The Asciidoc source code of this manual can be found at
	<ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
		http://git.osmocom.org/osmo-gsm-manuals/
	</ulink>
  </para>
</legalnotice>
