Project

General

Profile

Presentations » osmodevcon2013.html

OsmoDevCon2013 Presentation (HTML) - laforge, 01/02/2022 04:37 PM

 
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>
10
Introduction to the OsmocomDECT stack<BR>
11
<BR>
12
OsmoDevCon2013<BR>
13
4th-8th April 2013<BR>
14
Berlin, Germany<BR>
15
<BR>
16
Patrick 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>
31
Overview<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>
50
Physical layer<BR>
51
<BR>
52
Drivers: 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>
75
sc1442x 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>
102
sc1442x 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>
126
sc1442x 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>
154
Physical layer<BR>
155
<BR>
156
Transceiver 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>
179
Physical layer<BR>
180
<BR>
181
Transceiver 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>
204
Physical layer<BR>
205
<BR>
206
Transceiver layer: net/dect/transceiver.c<BR>
207
<FONT SIZE=-3><BR>
208
\# dect-transceiver-list --name trx9<BR>
209
DECT 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>
243
MAC layer<BR>
244
<BR>
245
MAC 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>
268
MAC layer<BR>
269
<BR>
270
MAC 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>
294
MAC layer<BR>
295
<BR>
296
MAC 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>
318
MAC layer<BR>
319
<BR>
320
MAC 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>
343
MAC layer<BR>
344
<BR>
345
MAC 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>
374
MAC layer<BR>
375
<BR>
376
MAC 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>
397
MAC layer<BR>
398
<BR>
399
MAC 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>
426
MAC layer<BR>
427
<BR>
428
MAC 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>
451
MAC layer<BR>
452
<BR>
453
MAC 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>
486
DLC layer<BR>
487
<BR>
488
Data 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>
516
DLC layer<BR>
517
<BR>
518
Data 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>
545
DLC layer<BR>
546
<BR>
547
Data 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>
569
DLC layer<BR>
570
<BR>
571
Data 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>
602
DLC layer<BR>
603
<BR>
604
Data 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>
633
NWK layer<BR>
634
<BR>
635
Network 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>
661
NWK layer<BR>
662
<BR>
663
Network 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>
685
NWK layer<BR>
686
<BR>
687
Network layer: libdect<BR>
688
<FONT SIZE=-3><BR>
689
/** MM_ACCESS_RIGHTS primitive parameters. */<BR>
690
struct 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>
718
NWK layer<BR>
719
<BR>
720
Network layer: libdect<BR>
721
<FONT SIZE=-3><BR>
722
struct 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>
736
extern 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>
738
extern 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>
751
NWK layer<BR>
752
<BR>
753
Network layer: libdect<BR>
754
<FONT SIZE=-3><BR>
755
static 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>
777
NWK layer<BR>
778
<BR>
779
Network layer: libdect<BR>
780
<FONT SIZE=-3><BR>
781
NWK: 05 42 0b 02 01 88 0c 08 1b 42 27 01 4c 5c 44 84     |.B.......B'.L\\D.|<BR>
782
NWK: 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>
793
NWK: 85 40 0a 03 01 48 00 0c 08 de a7 66 4d 34 fb c2     |.@...H.....fM4..|<BR>
794
NWK: 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>
816
NWK layer<BR>
817
<BR>
818
Network 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>
839
NWK layer<BR>
840
<BR>
841
Mobility 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>
870
NWK layer<BR>
871
<BR>
872
Mobility 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>
901
NWK layer<BR>
902
<BR>
903
Mobility 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>
933
NWK layer<BR>
934
<BR>
935
Call 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>
956
NWK layer<BR>
957
<BR>
958
Connectionless 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>
973
IWU<BR>
974
<BR>
975
Interworking 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>
996
Support 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>
1027
Support 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>
1062
Future 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>
(2-2/3)
Add picture from clipboard (Maximum size: 48.8 MB)