close Warning: Can't synchronize with repository "(default)" ("(default)" is not readable or not a Git repository.). Look in the Trac log for more information.

Changes between Initial Version and Version 1 of Proto/aArchitecture/MFPacket


Ignore:
Timestamp:
Nov 30, 2014, 4:34:02 AM (9 years ago)
Author:
wontoniii
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Proto/aArchitecture/MFPacket

    v1 v1  
     1== Format ==
     2
     3The following is the bitwise structure for a MobilityFirst packet:
     4
     5{{{
     6#!html
     7<pre>
     80                   1                   2                   3
     90 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Bit
     100             1               2               3                 Octet
     11+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     12|   Version   |           Service Type        |  Protocol     |
     13+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     14|        Payload Offset       |         Reserved              |
     15+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     16|                        Payload Size                         |
     17+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     18~                                                             ~
     19|                        Source GUID                          |
     20~                                                             ~
     21+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     22|                        Source NA                            |
     23+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     24~                                                             ~
     25|                        Destination GUID                     |
     26~                                                             ~
     27+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     28|                        Destination NA                       |
     29+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     30~                                                             ~
     31|                        Extension Header(s)                  |
     32~                                                             ~
     33+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     34~                                                             ~
     35|                        Payload                              |
     36~                                                             ~
     37+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     38</pre>
     39}}}
     40
     41* '''Version''' - MobilityFirst network protocol version encoded as ''major.minor'' (4-bits each)
     42* '''Service type ''' - Encodes requested processing or delivery service(s); MSB of '1' indicates presence of one or more extension headers following the fixed header fields.
     43* '''Protocol''' - Upper protocol identifier
     44* '''Payload Offset''' - Offset after any variable length extension headers
     45* '''Reserved''' - TODO to include hop count, checksum and other efficient/reliable routing enablers
     46* '''Payload Size''' - data length in bytes
     47* '''Source GUID''' - Source endpoint identifier; normally a 160-bit crypo-hash of the full GUID
     48* '''Source NA''' - Topological address of attachment point of source EP. Optional, can be blank.
     49* '''Destination GUID''' - Destination endpoint identifier; same format as src GUID
     50* '''Destination NA''' - latest resolved address for destination EP; could be blank if unresolved.
     51* '''Extension Headers''' - Used to encode non-basic SIDs and any parameters required in service handling
     52* '''Payload''' - Data portion of the packet
     53
     54
     55-----
     56
     57== Service Type (ST) ==
     58
     59The table below lists the 16-bit values designated for 'basic' services in MobilityFirst network protocol. It is not expected that each network element support all of these services, and may either choose to ignore unsupported services (when makes sense) or report back a failure to packet originator.
     60
     61|| '''Network service''' || '''ST value''' || '''Description''' ||
     62||Default || 0x0000 ||Unicast, block data transfer, temporary hold under poor downstream path conditions, dynamic NA resolution, late-binding ||
     63||Multicast ||0x0001 || ||
     64||Anycast ||0x0002 || ||
     65||MultiHoming ||0x0004 || ||
     66||GUID-routing ||0x0008 ||Flat routing, no GNRS resolution ||
     67||Stream ||0x0010 || ||
     68||Real time ||0x0020 || ||
     69||Delay Tolerant ||0x0040 || ||
     70||Acknowledge on Store ||0x0080 || ||
     71||Acknowledge on Delivery ||0x0100 || ||
     72||Content Request ||0x0200 || ||
     73||Content Response ||0x0400 || ||
     74||Compute Layer Processing ||0x0800 || ||
     75||Source Routing ||0x1000 || ||
     76||Endpoint Broadcast ||0x2000 ||broadcast of data blocks at the destination ||
     77||Future ||0x4000 || ||
     78||Extended Services ||0x8000 || ||
     79
     80SIDs for services not included in the basic set above are accommodated as extended services with SID pattern of 0x8xxx. The services can be requested by adding extension headers under the particular SID.
     81
     82
     83-----
     84
     85== Extension Headers ==
     86
     87The following is the common format for extension headers:
     88
     89{{{
     90#!html
     91<pre>
     920                   1                   2                   3
     930 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Bit
     940             1               2               3                 Octet
     95+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     96|        Service Type         |          Next Header          |
     97+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     98~                                                             ~
     99|                 Service Arguments (optional)                |
     100~                                                             ~
     101+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     102</pre>
     103}}}
     104
     105* '''Service Type ''' - Encodes requested processing or delivery service(s); Here the MSB of '1' indicates indicates an extended service.
     106* '''Next Header''' - Offset to next header or '0' when this is the last extension header.
     107* '''Service Parameters''' - Parameters encoded in a format defined by particular service
     108
     109=== Multihome Delivery Extension Header ===
     110
     111The extension header to support additional locators for delivery to multi-homed endpoints is shown below:
     112
     113{{{
     114#!html
     115<pre>
     1160                   1                   2                   3
     1170 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Bit
     1180             1               2               3                 Octet
     119+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     120|       Service Type          |          Next Header          |
     121+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     122|       Multihome Options     | Src. NA Count | Dest. NA Count|
     123+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     124~                                                             ~
     125|                         Source NA(s)                        |
     126~                                                             ~
     127+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     128~                                                             ~
     129|                         Destination NA(s)                   |
     130~                                                             ~
     131+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     132</pre>
     133}}}
     134
     135* '''Multihome Options''' - TBD
     136* '''Src. NA Count / Dest. NA Count''' - Number locator entries for source and (followed by) destination endpoints; maximum of 256 entries for each
     137* '''Source NA / Destination NA''' - Route-able addresses for EPs; Source NAs may be populated by source, while the destination NAs be populated as a result of GNRS resolution
     138
     139=== Compute Layer Service Extension Header ===
     140
     141{{{
     142#!html
     143<pre>
     1440                   1                   2                   3
     1450 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Bit
     1460             1               2               3                 Octet
     147+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     148|        Service Type         |          Next Header          |
     149+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     150~                                                             ~
     151|                   Compute Service GUID                      |
     152~                                                             ~
     153+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     154|       Arguments Count       |         Results Count         |
     155+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     156~                                                             ~
     157|                   Compute Service Arguments                 |
     158~                                                             ~
     159+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     160~                                                             ~
     161|                   Compute Service Results                   |
     162~                                                             ~
     163+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     164
     165</pre>
     166}}}
     167
     168* '''Compute Service GUID''' - GUID of the compute plane service to be invoked on the payload
     169* '''Arguments/Results Count''' - number of arguments and number of results (post processing) to and from the processing of the payload. This is besides any changes to the payload itself. TBD - if the payload changes in some way (e.g., size, checksum) the results should indicate these changes so stack layers may take it into consideration when validating the payload.
     170* '''Compute Service Arguments''' - arguments in TLV, for instance, with pre-defined types and length for each argument expected by the compute service.
     171* '''Compute Service Results''' - results encoded in TLV, for instance, with pre-defined types well known to the routing layer. These results may chiefly help the routing/transport layers to understand changes to the payload
     172