Presentations: osmodevcon2013.html

File osmodevcon2013.html, 23.9 KB (added by kaber, 4 years ago)

OsmoDevCon2013 Presentation (HTML)

Line 
1<HTML>
2<BODY>
3<HR>
4<DIV ALIGN=CENTER>
5<BR>
6<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
7<BR>
8<BR>
9<BR>
10Introduction to the OsmocomDECT stack<BR>
11<BR>
12OsmoDevCon2013<BR>
134th-8th April 2013<BR>
14Berlin, Germany<BR>
15<BR>
16Patrick McHardy &lt;kaber@trash.net><BR>
17<BR>
18<A HREF=http://dect.osmocom.org>http://dect.osmocom.org</A><BR>
19<BR>
20<BR>
21</DIV>
22<BR>
23(page 1)<BR>
24<HR>
25<DIV ALIGN=CENTER>
26<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
27</DIV>
28<DIV ALIGN=LEFT>
29<BR>
30<BR>
31Overview<BR>
32<BR>
33        <UL>
34        <LI>DECT stack implementing physical layer, MAC layer, Data Link control layer, Network layer and Interworking unit
35        <LI>Supports FP (base station) and PP (portable part) modes
36        <LI>Physical Layer implemented through driver for sc1442x baseband chipsets, including open source firmware and generic transceiver layer
37        <LI>MAC layers (cell site, cluster control), Data Link control contained in kernel
38        <LI>Network layer implemented as userspace library
39        </UL>
40</DIV>
41<BR>
42(page 2)<BR>
43<HR>
44<DIV ALIGN=CENTER>
45<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
46</DIV>
47<DIV ALIGN=LEFT>
48<BR>
49<BR>
50Physical layer<BR>
51<BR>
52Drivers: drivers/dect<BR>
53<BR>
54        <UL>
55        <LI>Drivers interact with baseband processor and radio
56                <UL>
57                <LI>Radio programming
58                <LI>Baseband programming (runtime firmware patching)
59                <LI>Frame reception and transmission
60                <LI>Time keeping
61                <LI>Ciphering offloading
62                </UL>
63        <LI>Received frames for 1-6 timeslots and current time are encapsulated in "dect_transceiver_event" structure and queued to generic transceiver layer
64        </UL>
65</DIV>
66<BR>
67(page 3)<BR>
68<HR>
69<DIV ALIGN=CENTER>
70<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
71</DIV>
72<DIV ALIGN=LEFT>
73<BR>
74<BR>
75sc1442x driver: drivers/dect/coa<BR>
76<BR>
77        <UL>
78        <LI>Implements support for sc14421/24 basebands
79                <UL>
80                <LI>sc14421: ComOnAir PCMCIA cards
81                <LI>sc14424: ComOnAir PCI cards
82                <LI>Features:
83                        <UL>
84                        <LI>Cipher offloading
85                        <LI>Checksum offloading
86                        <LI>Wideband audio
87                        </UL>
88                <LI>Open source firmware assembled during kernel build
89                <LI>"radio_ops" for different radio types
90                </UL>
91        </UL>
92</DIV>
93<BR>
94(page 4)<BR>
95<HR>
96<DIV ALIGN=CENTER>
97<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
98</DIV>
99<DIV ALIGN=LEFT>
100<BR>
101<BR>
102sc1442x driver: drivers/dect/coa<BR>
103<BR>
104        <UL>
105        <LI>Baseband processor:
106                <UL>
107                <LI>Executes one instruction per DECT symbol
108                <LI>Call stack of depth 3
109                <LI>Synchonization instructions: WT, WNT, EN_SL_ADJ
110                <LI>Transmission and reception: B_SR/B_ST, B_AR/B_AT, B_BR/B_BT, B_BRFU/B_BTFU, ...
111                <LI>Ciphering: D_LDK/D_PREP, D_LDS/D_WRS
112                <LI>Control PINs: P_LD, P_LDL, P_LDH
113                <LI>Microwire transmission (radio settings): MEN1N, MEN1, M_WR
114                </UL>
115        </UL>
116</DIV>
117<BR>
118(page 5)<BR>
119<HR>
120<DIV ALIGN=CENTER>
121<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
122</DIV>
123<DIV ALIGN=LEFT>
124<BR>
125<BR>
126sc1442x driver: drivers/dect/coa<BR>
127<BR>
128        <UL>
129        <LI>Radios:
130                <UL>
131                <LI>U2785 ATMEL RF IC:
132                        <UL>
133                        <LI>PCI and Type II PCMCIA cards
134                        <LI>"Slow-hopping" radio: needs one timeslot for channel switching
135                        <LI>Dynamic mapping of DECT bands to divisor/swallow count settings
136                        </UL>
137                <LI>LMX3161 NSC Single Chip Radio Transceiver:
138                        <UL>
139                        <LI>Type III PCMCIA cards
140                        <LI>Not supported yet, work is ongoing
141                        </UL>
142                </UL>
143        </UL>
144</DIV>
145<BR>
146(page 6)<BR>
147<HR>
148<DIV ALIGN=CENTER>
149<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
150</DIV>
151<DIV ALIGN=LEFT>
152<BR>
153<BR>
154Physical layer<BR>
155<BR>
156Transceiver layer: net/dect/transceiver.c<BR>
157<BR>
158        <UL>
159        <LI>Handling of "transceiver groups": multiple synchronized transceivers
160                <UL>
161                <LI>Synchronization of secondary transceivers
162                <LI>Dequeues events from all transceivers in a group
163                <LI>Events are sorted chronologically
164                <LI>Virtual clock maintenance
165                <LI>Queueing of reordered events to MAC cell site layer
166                <LI>Clock replay to MAC cell site layer
167                </UL>
168        </UL>
169</DIV>
170<BR>
171(page 7)<BR>
172<HR>
173<DIV ALIGN=CENTER>
174<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
175</DIV>
176<DIV ALIGN=LEFT>
177<BR>
178<BR>
179Physical layer<BR>
180<BR>
181Transceiver layer: net/dect/transceiver.c<BR>
182<BR>
183        <UL>
184        <LI>Netlink userspace API:
185                <UL>
186                <LI>Notification about new/removed transceivers
187                <LI>Transceiver configuration
188                <LI>Attachment/detachment to/from cells
189                <LI>Band configuration
190                <LI>Status information
191                <LI>Statistics
192                </UL>
193        </UL>
194</DIV>
195<BR>
196(page 8)<BR>
197<HR>
198<DIV ALIGN=CENTER>
199<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
200</DIV>
201<DIV ALIGN=LEFT>
202<BR>
203<BR>
204Physical layer<BR>
205<BR>
206Transceiver layer: net/dect/transceiver.c<BR>
207<FONT SIZE=-3><BR>
208\# dect-transceiver-list --name trx9<BR>
209DECT Transceiver trx9@cell0:<BR>
210        Type: sc1442x<BR>
211        RF-band: 00000<BR>
212        Events: busy: 0 late: 2587<BR>
213        slot 0: &lt;tx> carrier: 2 (1893.888 MHz)<BR>
214            RX: bytes 320 packets 40 a-crc-errors 1 x-crc-errors 0 z-crc-errors 0<BR>
215            TX: bytes 1776 packets 37<BR>
216        slot 2: &lt;idle> carrier: 0 (1897.344 MHz)<BR>
217            RX: bytes 0 packets 0 a-crc-errors 0 x-crc-errors 0 z-crc-errors 0<BR>
218            TX: bytes 0 packets 0<BR>
219        [...]<BR>
220        slot 10: &lt;rx,sync> carrier: 9 (1881.792 MHz +0.569 kHz) signal level: -41.94dBm<BR>
221            RX: bytes 2600 packets 325 a-crc-errors 0 x-crc-errors 0 z-crc-errors 0<BR>
222            TX: bytes 0 packets 0<BR>
223        slot 12: &lt;rx> carrier: 2 (1893.888 MHz +0.083 kHz) signal level: -57.47dBm<BR>
224            RX: bytes 1764 packets 36 a-crc-errors 0 x-crc-errors 0 z-crc-errors 0<BR>
225            TX: bytes 0 packets 0<BR>
226        slot 14: &lt;idle> carrier: 0 (1897.344 MHz)<BR>
227            RX: bytes 0 packets 0 a-crc-errors 0 x-crc-errors 0 z-crc-errors 0<BR>
228            TX: bytes 0 packets 0<BR>
229        [...]<BR>
230        slot 22: &lt;idle> carrier: 0 (1897.344 MHz)<BR>
231            RX: bytes 0 packets 0 a-crc-errors 0 x-crc-errors 0 z-crc-errors 0<BR>
232            TX: bytes 0 packets 0<BR>
233</FONT></DIV>
234<BR>
235(page 9)<BR>
236<HR>
237<DIV ALIGN=CENTER>
238<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
239</DIV>
240<DIV ALIGN=LEFT>
241<BR>
242<BR>
243MAC layer<BR>
244<BR>
245MAC layer overview<BR>
246<BR>
247        <UL>
248        <LI>MAC layer
249                <UL>
250                <LI>CSF (Cell site Functions)
251                <LI>CCF (Cluster Control functions)
252                <LI>Communication between layers either through handles
253                <LI>Either direct function calls or network protocol
254                <LI>Network protocol unfinished
255                <LI>Transparent
256                </UL>
257        </UL>
258</DIV>
259<BR>
260(page 10)<BR>
261<HR>
262<DIV ALIGN=CENTER>
263<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
264</DIV>
265<DIV ALIGN=LEFT>
266<BR>
267<BR>
268MAC layer<BR>
269<BR>
270MAC cell site functions (CSF): net/dect/mac_csf.c<BR>
271<BR>
272        <UL>
273        <LI>Maintenance tasks:
274                <UL>
275                <LI>Transceiver group maintenance (bind/unbind)
276                <LI>Frame timer synchronization and maintenance
277                <LI>Channel list maintenance (periodic scanning and quality control)
278                <LI>Channel selection based on channel lists
279                <LI>Transceiver selection
280                <LI>Bearer enablement timing
281                <LI>Bearer quality control
282                </UL>
283        </UL>
284</DIV>
285<BR>
286(page 11)<BR>
287<HR>
288<DIV ALIGN=CENTER>
289<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
290</DIV>
291<DIV ALIGN=LEFT>
292<BR>
293<BR>
294MAC layer<BR>
295<BR>
296MAC cell site functions (CSF): net/dect/mac_csf.c<BR>
297<BR>
298        <UL>
299        <LI>Idle receiver control (IRC):
300                <UL>
301                <LI>Locking to FPs (PP-side only)
302                <LI>Secondary transceiver synchronization
303                <LI>Periodic channel scanning
304                <LI>Channel hopping (receiver channel scanning sequence)
305                <LI>Reception of MAC connection requests (usually FP-side only)
306                </UL>
307        </UL>
308</DIV>
309<BR>
310(page 12)<BR>
311<HR>
312<DIV ALIGN=CENTER>
313<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
314</DIV>
315<DIV ALIGN=LEFT>
316<BR>
317<BR>
318MAC layer<BR>
319<BR>
320MAC cell site functions (CSF): net/dect/mac_csf.c<BR>
321<BR>
322        <UL>
323        <LI>Dummy bearer control (DBC):
324                <UL>
325                <LI>FP-side only
326                <LI>Broadcast bearer
327                <LI>Cell identity
328                <LI>Timing information
329                <LI>Cell capabilities
330                <LI>Paging
331                </UL>
332        </UL>
333</DIV>
334<BR>
335(page 13)<BR>
336<HR>
337<DIV ALIGN=CENTER>
338<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
339</DIV>
340<DIV ALIGN=LEFT>
341<BR>
342<BR>
343MAC layer<BR>
344<BR>
345MAC cell site functions (CSF): net/dect/mac_csf.c<BR>
346<BR>
347        <UL>
348        <LI>Traffic bearer control (TBC):
349                <UL>
350                <LI>Bi-directional traffic bearer setup and management
351                <LI>Muxing/Demuxing of higher layer data and MAC layer information
352                </UL>
353        </UL>
354<BR>
355        <UL>
356        <LI>Monitor Bearer control (DMB):
357                <UL>
358                <LI>Used for sniffing
359                <LI>Follows FP channel hopping sequence
360                <LI>Locks to new MAC connections
361                <LI>Passes frames up to AF_DECT raw sockets
362                </UL>
363        </UL>
364</DIV>
365<BR>
366(page 14)<BR>
367<HR>
368<DIV ALIGN=CENTER>
369<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
370</DIV>
371<DIV ALIGN=LEFT>
372<BR>
373<BR>
374MAC layer<BR>
375<BR>
376MAC cell site functions (CSF): net/dect/mac_csf.c<BR>
377<BR>
378        <UL>
379        <LI>Netlink userspace API:
380                <UL>
381                <LI>Cell site configuration
382                <LI>Binding of cells to clusters
383                <LI>Reporting of scan results
384                <LI>Status information
385                </UL>
386        </UL>
387</DIV>
388<BR>
389(page 15)<BR>
390<HR>
391<DIV ALIGN=CENTER>
392<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
393</DIV>
394<DIV ALIGN=LEFT>
395<BR>
396<BR>
397MAC layer<BR>
398<BR>
399MAC cluster control functions (CCF): net/dect/mac_csf.c<BR>
400<BR>
401        <UL>
402        <LI>Maintenance tasks:
403                <UL>
404                <LI>Cluster MAC layer frame timers
405                <LI>Cell site MAC layer configuration
406                </UL>
407        </UL>
408<BR>
409        <UL>
410        <LI>Broadcast message control (BMC):
411                <UL>
412                <LI>Dispatch of paging messages to cell site functions (FP-side only)
413                <LI>Reception of paging messages from cell site functions (PP-side only)
414                </UL>
415        </UL>
416</DIV>
417<BR>
418(page 16)<BR>
419<HR>
420<DIV ALIGN=CENTER>
421<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
422</DIV>
423<DIV ALIGN=LEFT>
424<BR>
425<BR>
426MAC layer<BR>
427<BR>
428MAC cluster control functions (CCF): net/dect/mac_csf.c<BR>
429<BR>
430        <UL>
431        <LI>Multi-Bearer control (MBC):
432                <UL>
433                <LI>Maintains multiple cell-site traffic bearers to form a multi bearer
434                <LI>Cipher management of traffic bearers
435                <LI>Hand-over
436                <LI>Higher layer data distribution to traffic bearers
437                <LI>Reception of higher layer data from cell site function
438                <LI>Removal of redundant data
439                </UL>
440        </UL>
441</DIV>
442<BR>
443(page 17)<BR>
444<HR>
445<DIV ALIGN=CENTER>
446<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
447</DIV>
448<DIV ALIGN=LEFT>
449<BR>
450<BR>
451MAC layer<BR>
452<BR>
453MAC cluster control functions (CCF): net/dect/mac_csf.c<BR>
454<BR>
455        <UL>
456        <LI>Netlink userspace API
457                <UL>
458                <LI>Cluster configuration:
459                        <UL>
460                        <LI>Identities
461                        <LI>Mode,
462                        <LI>Access rights information
463                        </UL>
464                <LI>MBC status information
465                        <UL>
466                        <LI>Identity
467                        <LI>Service type
468                        <LI>MAC bearers
469                        <LI>Cell site information
470                        <LI>Byte/packet counters
471                        <LI>Handover attempts
472                        <LI>Time slots
473                        </UL>
474                </UL>
475        </UL>
476</DIV>
477<BR>
478(page 18)<BR>
479<HR>
480<DIV ALIGN=CENTER>
481<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
482</DIV>
483<DIV ALIGN=LEFT>
484<BR>
485<BR>
486DLC layer<BR>
487<BR>
488Data Link Control (DLC): net/dect/dlc.c<BR>
489<BR>
490        <UL>
491        <LI>Routing
492                <UL>
493                <LI>Routing of C-Plane and U-Plane data to MAC connections
494                </UL>
495        </UL>
496<BR>
497        <UL>
498        <LI>Logical MAC connection maintenance
499                <UL>
500                <LI>Multi Bearer setup
501                <LI>Multi Bearer handover
502                <LI>Passing of C-Plane and U-Plane data between higher and lower layers
503                <LI>Connection modification according to higher layer demands
504                </UL>
505        </UL>
506</DIV>
507<BR>
508(page 19)<BR>
509<HR>
510<DIV ALIGN=CENTER>
511<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
512</DIV>
513<DIV ALIGN=LEFT>
514<BR>
515<BR>
516DLC layer<BR>
517<BR>
518Data Link Control C-Plane (DLC): net/dect/dlc_cplane.c<BR>
519<BR>
520        <UL>
521        <LI>Paging
522                <UL>
523                <LI>Passing of paging message to higher layer SAP
524                </UL>
525        </UL>
526<BR>
527        <UL>
528        <LI>Lc entity
529                <UL>
530                <LI>C-Plane data fragmentation and reassembly
531                <LI>Checksumming
532                <LI>Instantiating of LAPC entities on connection requests
533                </UL>
534        </UL>
535</DIV>
536<BR>
537(page 20)<BR>
538<HR>
539<DIV ALIGN=CENTER>
540<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
541</DIV>
542<DIV ALIGN=LEFT>
543<BR>
544<BR>
545DLC layer<BR>
546<BR>
547Data Link Control C-Plane (DLC): net/dect/dlc_cplane.c<BR>
548<BR>
549        <UL>
550        <LI>LAPC
551                <UL>
552                <LI>Similar to LAPD, LAPDm, ...
553                <LI>Unacknowledged point-to-point/broadcast communication
554                <LI>Point-to-point class A communication (window size = 1)
555                <LI>Point-to-point class B communication (window size = 8), suspend/resume
556                <LI>Segmentation of messages
557                </UL>
558        </UL>
559</DIV>
560<BR>
561(page 21)<BR>
562<HR>
563<DIV ALIGN=CENTER>
564<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
565</DIV>
566<DIV ALIGN=LEFT>
567<BR>
568<BR>
569DLC layer<BR>
570<BR>
571Data Link control C-Plane SAP: net/dect/dlc_s_sap.c, net/dect/dlc_b_sap:<BR>
572<BR>
573        <UL>
574        <LI>S-SAP socket API:
575                <UL>
576                <LI>Socket interface to LAPC
577                <LI>send/recv/...
578                <LI>Ciphering API (get/setsockopt)
579                <LI>MAC connection attributes API (get/setsockopt)
580                </UL>
581        </UL>
582<BR>
583        <UL>
584        <LI>B-SAP socket API:
585                <UL>
586                <LI>Socket interface to paging
587                <LI>send/recv/...
588                <LI>Duplicating received pages to all listeners
589                <LI>Page attributes specified through CMSG
590                </UL>
591        </UL>
592</DIV>
593<BR>
594(page 22)<BR>
595<HR>
596<DIV ALIGN=CENTER>
597<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
598</DIV>
599<DIV ALIGN=LEFT>
600<BR>
601<BR>
602DLC layer<BR>
603<BR>
604Data Link control U-Place: net/dect/dlc_uplane.c, dlc_lu1_sap.c:<BR>
605<BR>
606        <UL>
607        <LI>Generic U-Plane:
608                <UL>
609                <LI>Framing (FBx entities)
610                <LI>Frame formats (LUx entities)
611                </UL>
612        </UL>
613<BR>
614        <UL>
615        <LI>LU1 SAP:
616                <UL>
617                <LI>TRansparent UnProtected Service (TRUP)
618                <LI>Socket interface for Audio
619                <LI>Audio: min_delay service
620                <LI>Seamless Handover: frame offset advances depending on time slot
621                </UL>
622        </UL>
623</DIV>
624<BR>
625(page 23)<BR>
626<HR>
627<DIV ALIGN=CENTER>
628<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
629</DIV>
630<DIV ALIGN=LEFT>
631<BR>
632<BR>
633NWK layer<BR>
634<BR>
635Network layer: libdect<BR>
636<BR>
637        <UL>
638        <LI>libdect overview:
639                <UL>
640                <LI>LCE (Link Control Entity), roughly comparable to GSM48 RR
641                <LI>MM (Mobility Management)
642                <LI>CC (Call Control)
643                <LI>SS (Supplementary services)
644                <LI>CLMS (Connectionless messaging service)
645                <LI>LLME (Lower layer management entity)
646                <LI>Link and transaction management
647                <LI>Message/TLV encoding/decoding
648                <LI>Message routing
649                </UL>
650        </UL>
651</DIV>
652<BR>
653(page 24)<BR>
654<HR>
655<DIV ALIGN=CENTER>
656<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
657</DIV>
658<DIV ALIGN=LEFT>
659<BR>
660<BR>
661NWK layer<BR>
662<BR>
663Network layer: libdect<BR>
664<BR>
665        <UL>
666        <LI>libdect Overview:
667                <UL>
668                <LI>User registers one or more ops structures: lce_ops, mm_ops, cc_ops, ...
669                <LI>Callbacks for indication and confirmation primitives
670                <LI>Functions for request and result primitives
671                <LI>Encapsulated parameter structures, reference counted parameters and IEs
672                <LI>Support functions for authentication, SS, debugging, ...
673                </UL>
674        </UL>
675</DIV>
676<BR>
677(page 25)<BR>
678<HR>
679<DIV ALIGN=CENTER>
680<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
681</DIV>
682<DIV ALIGN=LEFT>
683<BR>
684<BR>
685NWK layer<BR>
686<BR>
687Network layer: libdect<BR>
688<FONT SIZE=-3><BR>
689/** MM_ACCESS_RIGHTS primitive parameters. */<BR>
690struct dect_mm_access_rights_param {<BR>
691        struct dect_ie_collection               common;<BR>
692        struct dect_ie_portable_identity        *portable_identity;<BR>
693        struct dect_ie_list                     fixed_identity;<BR>
694        struct dect_ie_location_area            *location_area;<BR>
695        struct dect_ie_auth_type                *auth_type;<BR>
696        struct dect_ie_cipher_info              *cipher_info;<BR>
697        struct dect_ie_zap_field                *zap_field;<BR>
698        struct dect_ie_setup_capability         *setup_capability;<BR>
699        struct dect_ie_terminal_capability      *terminal_capability;<BR>
700        struct dect_ie_service_class            *service_class;<BR>
701        struct dect_ie_model_identifier         *model_identifier;<BR>
702        struct dect_ie_reject_reason            *reject_reason;<BR>
703        struct dect_ie_duration                 *duration;<BR>
704        struct dect_ie_iwu_to_iwu               *iwu_to_iwu;<BR>
705        struct dect_ie_escape_to_proprietary    *escape_to_proprietary;<BR>
706        struct dect_ie_codec_list               *codec_list;<BR>
707};<BR>
708</FONT></DIV>
709<BR>
710(page 26)<BR>
711<HR>
712<DIV ALIGN=CENTER>
713<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
714</DIV>
715<DIV ALIGN=LEFT>
716<BR>
717<BR>
718NWK layer<BR>
719<BR>
720Network layer: libdect<BR>
721<FONT SIZE=-3><BR>
722struct dect_mm_ops {<BR>
723        size_t  priv_size;<BR>
724        /**&lt; Size of the private storage area of an MM endpoint */<BR>
725        void    (*mm_access_rights_ind)(struct dect_handle *dh,<BR>
726                                        struct dect_mm_endpoint *mme,<BR>
727                                        struct dect_mm_access_rights_param *param);<BR>
728        /**&lt; MM_ACCESS_RIGHTS-ind primitive */<BR>
729        void    (*mm_access_rights_cfm)(struct dect_handle *dh,<BR>
730                                        struct dect_mm_endpoint *mme, bool accept,<BR>
731                                        struct dect_mm_access_rights_param *param);<BR>
732        /**&lt; MM_ACCESS_RIGHTS-cfm primitive */<BR>
733        ...<BR>
734};<BR>
735<BR>
736extern int dect_mm_access_rights_req(struct dect_handle *dh, struct dect_mm_endpoint *mme,<BR>
737                                     const struct dect_mm_access_rights_param *param);<BR>
738extern void dect_mm_access_rights_res(struct dect_handle *dh, struct dect_mm_endpoint *mme,<BR>
739                                      bool accept, const struct dect_mm_access_rights_param *param);                                                                                                                                                                 <BR>
740<BR>
741</FONT></DIV>
742<BR>
743(page 27)<BR>
744<HR>
745<DIV ALIGN=CENTER>
746<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
747</DIV>
748<DIV ALIGN=LEFT>
749<BR>
750<BR>
751NWK layer<BR>
752<BR>
753Network layer: libdect<BR>
754<FONT SIZE=-3><BR>
755static DECT_SFMT_MSG_DESC(mm_access_rights_request,<BR>
756        DECT_SFMT_IE(DECT_IE_PORTABLE_IDENTITY,         IE_NONE,      IE_MANDATORY, 0),<BR>
757        DECT_SFMT_IE(DECT_IE_AUTH_TYPE,                 IE_NONE,      IE_OPTIONAL,  0),<BR>
758        DECT_SFMT_IE(DECT_IE_CIPHER_INFO,               IE_NONE,      IE_OPTIONAL,  0),<BR>
759        DECT_SFMT_IE(DECT_IE_SETUP_CAPABILITY,          IE_NONE,      IE_OPTIONAL,  0),<BR>
760        DECT_SFMT_IE(DECT_IE_TERMINAL_CAPABILITY,       IE_NONE,      IE_OPTIONAL,  0),<BR>
761        DECT_SFMT_IE(DECT_IE_IWU_TO_IWU,                IE_NONE,      IE_OPTIONAL,  0),<BR>
762        DECT_SFMT_IE(DECT_IE_MODEL_IDENTIFIER,          IE_NONE,      IE_OPTIONAL,  0),<BR>
763        DECT_SFMT_IE(DECT_IE_ESCAPE_TO_PROPRIETARY,     IE_NONE,      IE_OPTIONAL,  0),<BR>
764        DECT_SFMT_IE(DECT_IE_CODEC_LIST,                IE_NONE,      IE_OPTIONAL,  0),<BR>
765        DECT_SFMT_IE_END_MSG<BR>
766);<BR>
767</FONT></DIV>
768<BR>
769(page 28)<BR>
770<HR>
771<DIV ALIGN=CENTER>
772<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
773</DIV>
774<DIV ALIGN=LEFT>
775<BR>
776<BR>
777NWK layer<BR>
778<BR>
779Network layer: libdect<BR>
780<FONT SIZE=-3><BR>
781NWK: 05 42 0b 02 01 88 0c 08 1b 42 27 01 4c 5c 44 84     |.B.......B'.L\\D.|<BR>
782NWK: 0e 08 9e 01 7e 0c 42 ae ec ff                       |....~.B...|<BR>
783{MM-KEY-ALLOCATE} message:<BR>
784  IE: &lt;&lt;ALLOCATION-TYPE>> id: b len: 4 dst: 0xfcf440<BR>
785        authentication algorithm: DSAA (1)<BR>
786        authentication key number: 8<BR>
787        authentication code number: 8<BR>
788  IE: &lt;&lt;RAND>> id: c len: 10 dst: 0xfcf460<BR>
789        value: 84445c4c0127421b<BR>
790  IE: &lt;&lt;RS>> id: e len: 10 dst: 0xfcf480<BR>
791        value: ffecae420c7e019e<BR>
792<BR>
793NWK: 85 40 0a 03 01 48 00 0c 08 de a7 66 4d 34 fb c2     |.@...H.....fM4..|<BR>
794NWK: 7f 0d 04 85 6a 5f 9e                                |....j_.|<BR>
795{MM-AUTHENTICATION-REQUEST} message:<BR>
796  IE: &lt;&lt;AUTH-TYPE>> id: a len: 5 dst: 0xfcf5e0<BR>
797        authentication algorithm: DSAA (1)<BR>
798        authentication key type: Authentication code (4)<BR>
799        authentication key number: 8<BR>
800        cipher key number: 0<BR>
801        INC: 0 DEF: 0 TXC: 0 UPC: 0<BR>
802  IE: &lt;&lt;RAND>> id: c len: 10 dst: 0xfcf600<BR>
803        value: 7fc2fb344d66a7de<BR>
804  IE: &lt;&lt;RES>> id: d len: 6 dst: 0xfcf620<BR>
805        value: 9e5f6a85<BR>
806</FONT></DIV>
807<BR>
808(page 29)<BR>
809<HR>
810<DIV ALIGN=CENTER>
811<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
812</DIV>
813<DIV ALIGN=LEFT>
814<BR>
815<BR>
816NWK layer<BR>
817<BR>
818Network layer Link Control Entity: src/lce.c<BR>
819<BR>
820        <UL>
821        <LI>Link maintenance
822                <UL>
823                <LI>Paging
824                <LI>Direct (PP initiated) and indirect (paged) link setup
825                <LI>Link attribute modification
826                <LI>Cipher management in coordination with MM
827                </UL>
828        </UL>
829</DIV>
830<BR>
831(page 30)<BR>
832<HR>
833<DIV ALIGN=CENTER>
834<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
835</DIV>
836<DIV ALIGN=LEFT>
837<BR>
838<BR>
839NWK layer<BR>
840<BR>
841Mobility Management: src/mm.c<BR>
842<BR>
843        <UL>
844        <LI>Access rights procedures
845                <UL>
846                <LI>Pairing
847                <LI>Capability exchange
848                <LI>Usually coupled with UAK key allocation
849                <LI>Access rights revocation
850                </UL>
851        </UL>
852<BR>
853        <UL>
854        <LI>Key allocation procedure
855                <UL>
856                <LI>Allocates UAK
857                <LI>Derived from AC (Authentication Code)
858                </UL>
859        </UL>
860</DIV>
861<BR>
862(page 31)<BR>
863<HR>
864<DIV ALIGN=CENTER>
865<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
866</DIV>
867<DIV ALIGN=LEFT>
868<BR>
869<BR>
870NWK layer<BR>
871<BR>
872Mobility Management: src/mm.c<BR>
873<BR>
874        <UL>
875        <LI>Authentication procedure
876                <UL>
877                <LI>Optional mutual authentication, usually PP only or even none
878                <LI>Seperate procedure or integrated into key allocation
879                <LI>UAK or UPI (User personal Identity)
880                <LI>Session key derivation
881                </UL>
882        </UL>
883<BR>
884        <UL>
885        <LI>Ciphering procedure
886                <UL>
887                <LI>Ciphering with either SDK or DCK
888                <LI>Always initiated by PP, FP may suggest ciphering to PP
889                </UL>
890        </UL>
891</DIV>
892<BR>
893(page 32)<BR>
894<HR>
895<DIV ALIGN=CENTER>
896<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
897</DIV>
898<DIV ALIGN=LEFT>
899<BR>
900<BR>
901NWK layer<BR>
902<BR>
903Mobility Management: src/mm.c<BR>
904<BR>
905        <UL>
906        <LI>Location procedures
907                <UL>
908                <LI>Informes FP of PP location (cell, cluster)
909                <LI>Periodic or after location area change
910                <LI>Capability exchange
911                <LI>TPUI allocation
912                <LI>Detach
913                </UL>
914        </UL>
915<BR>
916        <UL>
917        <LI>Other
918                <UL>
919                <LI>Identity procedurs
920                <LI>External protocol information procedures
921                </UL>
922        </UL>
923</DIV>
924<BR>
925(page 33)<BR>
926<HR>
927<DIV ALIGN=CENTER>
928<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
929</DIV>
930<DIV ALIGN=LEFT>
931<BR>
932<BR>
933NWK layer<BR>
934<BR>
935Call Control; src/cc.c<BR>
936<BR>
937        <UL>
938        <LI>Call procedures
939                <UL>
940                <LI>Call setup, modification, termination, ..
941                <LI>Codec negotiation
942                <LI>Call related supplementary services (CRSS)
943                <LI>U-Plane setup and maintenance
944                </UL>
945        </UL>
946</DIV>
947<BR>
948(page 34)<BR>
949<HR>
950<DIV ALIGN=CENTER>
951<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
952</DIV>
953<DIV ALIGN=LEFT>
954<BR>
955<BR>
956NWK layer<BR>
957<BR>
958Connectionless messaging service: src/clms.c<BR>
959<BR>
960        <UL>
961        <LI>Connectionless packet service
962        </UL>
963</DIV>
964<BR>
965(page 35)<BR>
966<HR>
967<DIV ALIGN=CENTER>
968<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
969</DIV>
970<DIV ALIGN=LEFT>
971<BR>
972<BR>
973IWU<BR>
974<BR>
975Interworking Unit: asterisk, channels/chan_dect.c<BR>
976<BR>
977        <UL>
978        <LI>Asterisk Channel driver
979                <UL>
980                <LI>Interacts with libdect
981                <LI>Supports access rights, key allocation, authentication, chiphering, ...
982                <LI>Asterisk DB used for storing subscription data
983                <LI>Narrow-band audio, wide-band unfinished
984                </UL>
985        </UL>
986</DIV>
987<BR>
988(page 36)<BR>
989<HR>
990<DIV ALIGN=CENTER>
991<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
992</DIV>
993<DIV ALIGN=LEFT>
994<BR>
995<BR>
996Support tools<BR>
997<BR>
998        <UL>
999        <LI>libnl-dect:
1000                <UL>
1001                <LI>Netlink API for configuration and notifications
1002                <LI>Example tools used for configuration
1003                </UL>
1004        </UL>
1005<BR>
1006        <UL>
1007        <LI>dectmon:
1008                <UL>
1009                <LI>DECT protocol decoder using raw sockets
1010                <LI>Multiple transceiver support
1011                <LI>Protocol decoding
1012                <LI>Decryption, life audio
1013                <LI>Interactive command line interface
1014                <LI>Can interact with monitored FPs
1015                </UL>
1016        </UL>
1017</DIV>
1018<BR>
1019(page 37)<BR>
1020<HR>
1021<DIV ALIGN=CENTER>
1022<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
1023</DIV>
1024<DIV ALIGN=LEFT>
1025<BR>
1026<BR>
1027Support tools<BR>
1028<BR>
1029        <UL>
1030        <LI>libpcap
1031                <UL>
1032                <LI>libpcap with DECT raw socket support
1033                </UL>
1034        </UL>
1035<BR>
1036        <UL>
1037        <LI>ASL
1038                <UL>
1039                <LI>ASL macro assembler
1040                <LI>Used for firmware assembly
1041                <LI>Patched version with support for modern chipsets (SC1445x/8x)
1042                </UL>
1043        </UL>
1044<BR>
1045        <UL>
1046        <LI>Disassembler
1047                <UL>
1048                <LI>Firmware disassembler
1049                <LI>Unreleased so far
1050                </UL>
1051        </UL>
1052</DIV>
1053<BR>
1054(page 38)<BR>
1055<HR>
1056<DIV ALIGN=CENTER>
1057<IMG SRC="osmocom_dect.png" ALT="osmocom_dect.png">
1058</DIV>
1059<DIV ALIGN=LEFT>
1060<BR>
1061<BR>
1062Future work<BR>
1063<BR>
1064        <UL>
1065        <LI>Finishing wideband support
1066        <LI>CoA Type III support
1067        <LI>GAP/DECT-NG profile compliance
1068        <LI>S1445x SoC support
1069        <LI>DVB-T SDR RX support
1070        </UL>
1071(page 39)<BR>
1072</BODY>
1073</HTML>