-
Notifications
You must be signed in to change notification settings - Fork 8
/
service.tr069todmt.html
8066 lines (7979 loc) · 945 KB
/
service.tr069todmt.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>131 TR069 Connector Service Specification - OSGi Compendium 8</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
<link rel="home" href="index.html" title="OSGi Compendium" />
<link rel="up" href="index.html" title="OSGi Compendium" />
<link rel="prev" href="service.coordinator.html" title="130 Coordinator Service Specification" />
<link rel="next" href="service.repository.html" title="132 Repository Service Specification" />
<meta name="Section-title" content="131 TR069 Connector Service Specification" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" href="images/favicon.png" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="css/custom.css" />
<link rel="stylesheet" type="text/css" href="css/github.css" />
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Ubuntu:regular,bold&subset=Latin" /><script type="text/javascript" src="js/highlight.pack.js"></script><script type="text/javascript" src="js/main.js"></script></head>
<body>
<div id="fullbody">
<div id="header">
<div class="menu-top-container"></div>
<div id="shadow-block"><a class="logo" href="index.html"><img src="images/OSGi.svg" alt="OSGi Working Group Documentation" /><h1>OSGi Compendium Release 8</h1></a></div>
</div>
<div id="mobile-menu-icon">⋮</div>
<div id="column-two">
<div id="content">
<div id="scrollable">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<td width="20%" align="left"><a accesskey="p" href="service.coordinator.html">Prev</a>
</td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="service.repository.html">Next</a></td>
</tr>
</table>
<hr />
</div>
<div class="chapter">
<div xmlns="" class="titlepage">
<div>
<div>
<h1 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="service.tr069todmt"></a><span xmlns="" class="number">131</span> TR069 Connector Service Specification
</h1>
</div>
<div>
<p xmlns="http://www.w3.org/1999/xhtml" class="releaseinfo"><a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt" title="131.8 org.osgi.service.tr069todmt">Version 1.0</a></p>
</div>
</div>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a xmlns="" class="anchor" id="d0e71865"></a><span xmlns="" class="number">131.1</span> Introduction
</h2>
</div>
</div>
</div>
<p>This chapter provides a specification for the TR069 Connector, an
assistant to a Protocol Adapter based on <a xmlns="" class="xref" href="service.tr069todmt.html#i741499" title="TR-069 Amendment 3">[1] <em>TR-069 Amendment 3</em></a>. A
TR069 Connector provides a mapping of TR-069 concepts to/from the <a xmlns="" class="xref" href="service.dmt.html" title="117 Dmt Admin Service Specification"><em xmlns="http://www.w3.org/1999/xhtml">Dmt Admin Service Specification</em></a>. It mainly handles the low level details of
Object/Parameter Name to Dmt Admin URI mapping, and vice versa. TR-069
Protocol Adapter developers can use this service to simplify the use the
Dmt Admin service. The TR069 Connector service is based on the definition
of a Protocol Mapping in <a xmlns="" class="xref" href="service.dmt.html#service.dmt.protocolmapping" title="117.12.2 Protocol Mapping">Protocol Mapping</a>. It
is assumed that the reader understands TR-069 and has a basic
understanding of the Dmt Admin service.
</p>
<p>The examples in this specification are not from a Broadband Forum
Technical Report and are purely fictional.
</p>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e71878"></a><span xmlns="" class="number">131.1.1</span> Essentials
</h3>
</div>
</div>
</div>
<div class="itemizedlist">
<ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p><span class="emphasis"><em>Connector</em></span> - Provide a TR-069 view on top
of the Dmt Admin service.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Simplify</em></span> - Simplify the handling of data
models implemented through the DMT through the TR-069
protocol.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Browse</em></span> - Implement the constructs for
<code class="code">MAP</code> and <code class="code">LIST</code> handling.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Native</em></span> - Provide a mechanism for Data
Plugins to convey conversion information to the Protocol Adapter so
that native TR-069 object models can be implemented as Data
Plugins.
</p>
</li>
</ul>
</div>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e71908"></a><span xmlns="" class="number">131.1.2</span> Entities
</h3>
</div>
</div>
</div>
<div class="itemizedlist">
<ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p><a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069ConnectorFactory" title="131.8.5 public interface TR069ConnectorFactory">TR069ConnectorFactory</a> - Provides a way to create a <a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069Connector" title="131.8.4 public interface TR069Connector">TR069Connector</a> that is bound to an active Dmt
Session.
</p>
</li>
<li class="listitem">
<p><a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069Connector" title="131.8.4 public interface TR069Connector">TR069Connector</a> - Created by <a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069ConnectorFactory" title="131.8.5 public interface TR069ConnectorFactory">TR069ConnectorFactory</a> on a Dmt Session; provides methods that
helps in using the TR-069 namespace and RPCs on a Dmt Admin
DMT.
</p>
</li>
<li class="listitem">
<p><a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.ParameterValue" title="131.8.3 public interface ParameterValue">ParameterValue</a> - The value of a parameter, maps to the
TR-069 <code class="code">ParameterValueStruct</code>.
</p>
</li>
<li class="listitem">
<p><a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.ParameterInfo" title="131.8.2 public interface ParameterInfo">ParameterInfo</a> - Information about the parameter, maps to
the TR-069 <code class="code">ParameterInfoStruct</code>.
</p>
</li>
<li class="listitem">
<p>DMT - The Device Management Tree as available through the Dmt
Admin service.
</p>
</li>
</ul>
</div>
<div class="figure"><a xmlns="" class="anchor" id="i742559"></a><p class="title"><strong>Figure <span xmlns="" class="number">131</span>.1 TR-069 Entities</strong></p>
<div class="figure-contents">
<div class="mediaobject" align="center"><img src="images/131-tr069-classes.png" align="middle" width="561" height="135" alt="TR-069 Entities" /></div>
</div>
</div><br class="figure-break" /></div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e71947"></a><span xmlns="" class="number">131.1.3</span> Synopsis
</h3>
</div>
</div>
</div>
<p>A TR-069 Protocol Adapter first creates a Dmt Session on the node
in the DMT that maps to an object model that should be visible to the
TR-069 Management Server. A Protocol Adapter can choose to map a whole
sub-tree or it can create a virtual object model based on different
nodes, this depends on the implementation of the Protocol
Adapter.
</p>
<p>When a TR-069 RPC arrives, the Protocol Adapter must parse the
SOAP message and analyze the request. In general, an RPC can request the
update or retrieval of multiple values. The Protocol Adapter must
decompose these separate requests into single requests and execute them
as a single unit. If the request is a retrieval or update of a data
model maintained in the Dmt Admin service then the Protocol Adapter can
use a TR069 Connector to simplify implementing this request. The TR069
Connector Factory service can be used to create an instance of a TR069
Connector that is based on a specific Dmt Session.
</p>
<p>The TR069 Connector maps the Object or Parameter Name to a URI and
perform the requested operation on the corresponding node. The
name-to-URI conversion supports the <code class="code">LIST</code> and
<code class="code">MAP</code> concepts as defined in <a xmlns="" class="xref" href="service.dmt.html#service.dmt.osgiobjectmodeling" title="117.12 OSGi Object Modeling">OSGi Object Modeling</a>.
</p>
<p>The TR069 Connector handles conversion from the Dmt Admin data
types to the TR-069 data types. There is a default mapping for the
standard Dmt Admin formats including the comma separated list supported
by TR-069. However, Data Plugins that implement TR-069 aware object
models can instruct the TR069 Connector by providing specific MIME types
on the Meta Node.
</p>
<p>Objects can be added and deleted but are, in general, not added
immediately. These objects are lazily created when they are accessed.
The reason is that TR-069 does not support the concept of a session with
atomic semantics, a fact leveraged by certain object models in the DMT.
Therefore, adding an object will assign a instance id to an object but
the creation of the object is delayed until the object is used.
</p>
<p>After all the requests in an RPC are properly handled the TR069
Connector must be closed, the Dmt Session must be closed
separately.
</p>
<p>Errors are reported to the caller as they happen, if a Dmt Admin
service error is fatal then the Dmt Session will be closed and it will
be necessary to create a new TR069 Connector.
</p>
</div>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a xmlns="" class="anchor" id="d0e71972"></a><span xmlns="" class="number">131.2</span> TR-069 Protocol Primer
</h2>
</div>
</div>
</div>
<p>The <a xmlns="" class="xref" href="service.tr069todmt.html#i799974" title="Broadband Forum">[6] <em>Broadband Forum</em></a> is an organization for broadband
wire-line solutions. They develop multi-service broadband packet
networking specifications addressing interoperability, architecture, and
management. Their specifications enable home, business and converged
broadband services, encompassing customer, access and backbone networks.
One of the specifications of the Broadband Forum is the
<span class="emphasis"><em>Technical Report No 69</em></span>, also called TR-069, a
specification of a management model.
</p>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e71982"></a><span xmlns="" class="number">131.2.1</span> Architecture
</h3>
</div>
</div>
</div>
<p><a xmlns="" class="xref" href="service.tr069todmt.html#i741499" title="TR-069 Amendment 3">[1] <em>TR-069 Amendment 3</em></a> is a technical report (Broadband Forum's
specification model) that specifies a management protocol based on <a xmlns="" class="xref" href="service.tr069todmt.html#i741562" title="SOAP 1.1">[4] <em>SOAP 1.1</em></a> over HTTP. The TR-069 technical report defines a
number of mandatory Remote Procedure Calls (RPCs) that allow a
management system, the Auto-Configuration Server (ACS), to discover the
capabilities of the Consumer Premises Equipment (CPE) and do basic
management. This model is depicted in <a xmlns="" class="xref" href="service.tr069todmt.html#i753210" title="Figure 131.2 TR-069 Reference Architecture">Figure <span class="number">131</span>.2</a>.
</p>
<div class="figure"><a xmlns="" class="anchor" id="i753210"></a><p class="title"><strong>Figure <span xmlns="" class="number">131</span>.2 TR-069 Reference Architecture</strong></p>
<div class="figure-contents">
<div class="mediaobject" align="center"><img src="images/131-ref-architecture.png" align="middle" width="559" height="68" alt="TR-069 Reference Architecture" /></div>
</div>
</div><br class="figure-break" /><p>In TR-069, the CPE is always initiating the conversation with the
ACS though the ACS can request a session.
</p>
<p>Inside the CPE there is a Protocol Adapter that implements the
TR-069 RPCs. These RPCs read and modify the objects models present in
the CPE. There is usually a mechanism that allows the different modules
in the CPE to contribute a management object to the Protocol Adapter so
that the Protocol Adapter does not require knowledge about highly
specialized domains.
</p>
<p><a xmlns="" class="xref" href="service.tr069todmt.html#i694602" title="TR-106 Amendment 3">[2] <em>TR-106 Amendment 3</em></a> specifies object model guidelines to be
followed by all TR-069-enabled devices as well as a formal model to
document these object models.
</p>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e72005"></a><span xmlns="" class="number">131.2.2</span> Object Model
</h3>
</div>
</div>
</div>
<p>The object model of TR-069 consists of
<span class="emphasis"><em>objects</em></span> that contain
<span class="emphasis"><em>parameters</em></span> as well as <span class="emphasis"><em>tables</em></span>
that contain objects. TR-106 says:
</p>
<div class="itemizedlist">
<ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p><span class="emphasis"><em>Object</em></span> - A named collection of parameters
and/or other objects.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Parameter</em></span> - A name-value pair.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Table</em></span> - An enumeration of objects
identified by an instance id.
</p>
</li>
</ul>
</div>
<div class="figure"><a xmlns="" class="anchor" id="d0e72035"></a><p class="title"><strong>Figure <span xmlns="" class="number">131</span>.3 Type Model TR-069</strong></p>
<div class="figure-contents">
<div class="mediaobject" align="center"><img src="images/131-type-model.png" align="middle" width="563" height="169" alt="Type Model TR-069" /></div>
</div>
</div><br class="figure-break" /><p>Objects can also occur in tables, in that case the object name is
suffixed with an <span class="emphasis"><em>instance id</em></span>. An object that has no
instance id is a singleton, with an instance id they are referred to as
<span class="emphasis"><em>tables</em></span>. In the Broadband Forum technical reports
tables end in the special suffix <code class="code">{i}</code>, the instance
id.
</p>
<p>This provides the following structural definition for this
specification:
</p><pre xmlns="" class="programlisting"><code>named-value ::= NAME ( object | table | parameter )
object ::= named-value +
table ::= ( instance object )*
parameter ::=
instance ::= INTEGER > 0</code></pre><p>TR-069 talks about partial paths and parameter names. In this
specification, a <span class="emphasis"><em>name</em></span> is reserved for the short
relative name used inside an object, also called the <span class="emphasis"><em>local
name</em></span>. The term <span class="emphasis"><em>path</em></span> is reserved for the
combination of object names, table names, and instance ids that are
separated by a full stop (<code class="code">'.' \u002E</code>) and used to traverse
an instance model.
</p><pre xmlns="" class="programlisting"><code>path ::= parameter-path | object-path| table-path
segment ::= NAME '.' ( instance '.' )?
object-path ::= segment+
table-path ::= segment* NAME '.' // expect INTEGER next
parameter-path ::= object-path NAME
instance-path ::= table-path instance '.'</code></pre><p>In this specification the following terms are used
consistently:
</p>
<div class="itemizedlist">
<ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p><span class="emphasis"><em>Object</em></span> - Refers to a named type defining
a certain set of parameters, objects, and tables.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Table</em></span> - A list of instances for a given
object.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Instance</em></span> - An object element in a table
at a certain id.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Instance Id</em></span> - The integer id used to
identify an instance in a table.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Alias</em></span> - A name chosen by the ACS that
uniquely identifies an instance.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Singleton</em></span> - An object that is not in a
table.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Name</em></span> - The name of an object, table, or
parameter refers to the local name only and not the path.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Segment</em></span> - A component in a path that
always ends in a full stop. A segment can contain instance ids to
identify an instance.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Path</em></span> - A string uniquely identifying a
path in the tree to either a parameter, an object, or a
table.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Object Path</em></span> - A path that uniquely
identifies an instance or a singleton. An object path must always
ends in a full stop. This maps to the TR-069 concept of an
<code class="code">ObjectName</code>.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Parameter Path</em></span> - The name of the
parameter preceded by the owning object. A path that does not end in
a full stop is always a parameter path.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Table Path</em></span> - An object path that lacks
the last instance id. In TR-069 this is also sometimes called a
partial path. The last segment is an object path that must be
followed by an instance id to address an instance.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Instance Path</em></span> - A path to an instance in
a table
</p>
</li>
</ul>
</div>
<p>This provides a hierarchy as depicted in <a xmlns="" class="xref" href="service.tr069todmt.html#i808992" title="Figure 131.4 TR-069 Object and Parameter naming relative to the parameter MemoryStatus">Figure <span class="number">131</span>.4</a>.
</p>
<div class="figure"><a xmlns="" class="anchor" id="i808992"></a><p class="title"><strong>Figure <span xmlns="" class="number">131</span>.4 TR-069 Object and Parameter naming relative to the parameter
MemoryStatus</strong></p>
<div class="figure-contents">
<div class="mediaobject" align="center"><img src="images/131-naming.png" align="middle" width="451" height="172" alt="TR-069 Object and Parameter naming relative to the parameter MemoryStatus" /></div>
</div>
</div><br class="figure-break" /></div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="i760050"></a><span xmlns="" class="number">131.2.3</span> Parameter Names
</h3>
</div>
</div>
</div>
<p>The grammars for parameter names and object names are as
follows:
</p><pre xmlns="" class="programlisting"><code>NAME ::= ( Letter | '_' )
( Letter | Digit | '-' | '_' | CombiningChar| Extender )*</code></pre><p>The productions <code class="code">Letter</code>, <code class="code">Digit</code>,
<code class="code">CombiningChar</code>, and <code class="code">Extender</code> are defined in
<a xmlns="" class="xref" href="service.tr069todmt.html#i747814" title="Extensible Markup Language (XML) 1.0 (Second Edition)">[5] <em>Extensible Markup Language (XML) 1.0 (Second Edition)</em></a>. The name basically supports the full Unicode
character set for letters and digits (including digits for other
languages), including sets for languages like Hebrew and Chinese.
Examples of different parameter names are:
</p><pre xmlns="" class="programlisting"><code>name // simple name
Name // case sensitive
_
_-_-_
ångstrom
þingsten
<span xmlns="http://www.w3.org/1999/xhtml" class="symbol">ΨΣΩΠ</span></code></pre></div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="i786112"></a><span xmlns="" class="number">131.2.4</span> Parameter Type
</h3>
</div>
</div>
</div>
<p>A parameter value can have one of the data types defined in <a xmlns="" class="xref" href="service.tr069todmt.html#i694602" title="TR-106 Amendment 3">[2] <em>TR-106 Amendment 3</em></a>, they are summarized in <a xmlns="" class="xref" href="service.tr069todmt.html#service.tr069todmt-tr106.data.types" title="Table 131.1 TR-106 Data types">Table <span class="number">131</span>.1</a>.
</p>
<div class="table"><a xmlns="" class="anchor" id="service.tr069todmt-tr106.data.types"></a><p class="title"><strong>Table <span xmlns="" class="number">131</span>.1 TR-106 Data types</strong></p>
<div class="table-contents">
<table summary="TR-106 Data types" style="border-collapse: collapse;border-top: 0.5pt solid ; border-bottom: 0.5pt solid ; border-left: 0.5pt solid ; border-right: 0.5pt solid ; ">
<colgroup>
<col />
<col />
</colgroup>
<thead>
<tr>
<th style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">TR-106 Type</th>
<th style="border-bottom: 0.5pt solid ; ">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">object</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Represents a structured type</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">string</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>A Unicode string, optionally restricted in
length
</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">int</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>32 bit integer</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">long</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>64 bit integer</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">unsignedInt</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>32 bit unsigned integer</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">unsignedLong</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>64 bit unsigned integer</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">boolean</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Can have values 0 or false (<code class="code">false</code>) or
1 or true (<code class="code">true</code>)
</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">dateTime</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>TR-069 recognizes three different date times. These
three cases are differentiated in the following
way:
</p>
<div class="itemizedlist">
<ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p><span class="emphasis"><em>Unknown time</em></span> - If the time is
not known.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Relative time</em></span> - Relative time
is the time since boot time.
</p>
</li>
<li class="listitem">
<p><span class="emphasis"><em>Absolute time</em></span> - Normal date and
time.
</p>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">base64</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>An array of bytes</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; "><code class="code">hexBinary</code></td>
<td style="">
<p>An array of bytes</p>
</td>
</tr>
</tbody>
</table>
</div>
</div><br class="table-break" /><p>SOAP messages always provide a type for the parameter value. For
example:
</p><pre xmlns="" class="programlisting"><code><ParameterValueStruct>
<name>Parameter1</name>
<value xsi:type="long">1234</value>
</ParameterValueStruct></code></pre><p>The <code class="code">xsi</code> prefix refers to the
<code class="code">https://www.w3.org/2001/XMLSchema-instance</code> namespace.
However, this makes not all TR-106 types well defined, for example in
XML Schema <code class="code">base64</code> is called <code class="code">base64Binary</code>. This
specification assumes that the names and definitions in <a xmlns="" class="xref" href="service.tr069todmt.html#service.tr069todmt-tr106.data.types" title="Table 131.1 TR-106 Data types">Table <span class="number">131</span>.1</a> and provides appropriate
constants for the Protocol Adapter.
</p>
<p>Parameters can be read-only or read-write. All writable Parameters
must also be readable although security can cause certain parameters to
be read as an empty string, for example passwords. Parameters can
reflect configuration as well as status of the device. External causes
can cause parameters to change at any time. The TR-069 protocol has the
facility to call an <code class="code">Inform</code> RPC to provide the ACS with a
notification of changed parameters.
</p>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e72319"></a><span xmlns="" class="number">131.2.5</span> Parameter Attributes
</h3>
</div>
</div>
</div>
<p>Parameter attributes provide the meta data for a parameter. In
TR-069, the attributes are used to manage notifications and access
control. Each parameter in TR-069 can be watched by the ACS by setting
the corresponding parameter attribute to <span class="emphasis"><em>active</em></span> or
<span class="emphasis"><em>passive notifications</em></span>. Passive notifications are
passed whenever the CPE communicates with the ACS and active
notifications initiate a session. Parameters that have a notification
are said to be <span class="emphasis"><em>watched</em></span>.
</p>
<p>Access to the parameters can be managed by setting Access Control
Lists via the corresponding parameter attribute.
</p>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="i831294"></a><span xmlns="" class="number">131.2.6</span> Objects and Tables
</h3>
</div>
</div>
</div>
<p>TR-106 has the concept of an <span class="emphasis"><em>object</em></span> stored in
a <span class="emphasis"><em>table</em></span> to allow multiple instances of the same
type. It is part of the object definition if it is stored in a table or
not. An object cannot both appear as a table instance and as a
singleton.
</p>
<p>Each instance in the table is addressed with an integer >= 1.
This <span class="emphasis"><em>instance id</em></span> is not chosen by the ACS since it
can be required to create a new instance due to an external event. For
example the user plugging in a USB device or starting a new VOIP
session. The ACS must discover these instance ids by asking the device
for the instance ids in a table.
</p>
<p>For example, the parameter path
<code class="code">Device.LAN.DHCPOption.4.Request</code> refers to a parameter on a
<code class="code">DHCPOption</code> object that has the instance id 4. Instance ids
are not sequential nor predictable. It is the responsibility of the
device to choose an instance id when an object is created. Instance ids
are assumed to be persistent so that the ACS can cache results from a
discovery process.
</p>
<p>Newer TR-069 objects have been given an <code class="code">Alias</code>
parameter. This alias uniquely identifies the table instance.
</p>
<p>TR-069 defines a convention for a parameter that contains the
number of entries in a table. Any parameter name that ends with
<code class="code">NumberOfEntries</code> contains the number of entries in a table
with the name of the prefix in the same object. For example
<code class="code">A.B.CNumberOfEntries</code> provides the number of entries in the
table:
</p><pre xmlns="" class="programlisting"><code>A.B.C.</code></pre></div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e72374"></a><span xmlns="" class="number">131.2.7</span> RPCs
</h3>
</div>
</div>
</div>
<p>The object model implemented in a device is accessed and modified
with <span class="emphasis"><em>RPCs</em></span>. RPCs are remote procedure calls; a way
to invoke a function remotely. TR-069 defines a number of mandatory RPCs
and provides a mechanism to extend and discover the set of RPCs
implemented by a CPE. The mandatory RPCs are listed in in the following
table.
</p>
<div class="table"><a xmlns="" class="anchor" id="d0e72382"></a><p class="title"><strong>Table <span xmlns="" class="number">131</span>.2 TR-069 RPCs</strong></p>
<div class="table-contents">
<table summary="TR-069 RPCs" style="border-collapse: collapse;border-top: 0.5pt solid ; border-bottom: 0.5pt solid ; border-left: 0.5pt solid ; border-right: 0.5pt solid ; ">
<colgroup>
<col />
<col />
</colgroup>
<thead>
<tr>
<th style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">RPC</th>
<th style="border-bottom: 0.5pt solid ; ">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">GetRPCMethods</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Return a list of RPC methods</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">SetParameterValues</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Set one or more parameter values</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">GetParameterValues</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Get one or more parameter values</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">GetParameterNames</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Get the parameter information for a parameter,
object, or table.
</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">SetParameterAttributes</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Set parameter attributes</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">GetParameterAttributes</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Get parameter attributes</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">AddObject</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Add a new object to a table</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">DeleteObject</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Delete an object from a table</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">Download</code></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Download software/firmware</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; "><code class="code">Reboot</code></td>
<td style="">
<p>Reboot the device</p>
</td>
</tr>
</tbody>
</table>
</div>
</div><br class="table-break" /></div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e72465"></a><span xmlns="" class="number">131.2.8</span> Authentication
</h3>
</div>
</div>
</div>
<p>The security model of TR-069 is based around the authentication
taking place during the setup of a TLS (formerly SSL) connection. This
authentication is then used to manage the access control lists via the
parameter attributes.
</p>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e72470"></a><span xmlns="" class="number">131.2.9</span> Sessions and Transactions
</h3>
</div>
</div>
</div>
<p>A <span class="emphasis"><em>session</em></span> with the ACS is always initiated by
the CPE. The ACS can request a session, but it is always the CPE that
starts a session by opening the connection to the ACS and then sending
an <code class="code">Inform</code> RPC. The session ends when the connection is
closed, which happens after the ACS has informed the CPE it has no more
requests.
</p>
<p>During a session, a CPE has the requirements that parameters must
not change due to other sources than the session and that the parameters
are consistent with the changes. However, there is no transactionality
over the session, atomicity is only guaranteed for one RPC. An RPC can
consist of multiple parameter modifications that should therefore be
atomically applied.
</p>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="i791700"></a><span xmlns="" class="number">131.2.10</span> Events and Notifications
</h3>
</div>
</div>
</div>
<p>TR-069 sessions always start with an <code class="code">Inform</code> RPC from
the CPE to the ACS. This RPC contains any events and notifications for
parameters that were watched. Events signal crucial state changes from
the CPE to the ACS. For example, if a device has rebooted it will inform
the ACS. Notifications are caused by parameter changes, the
<code class="code">Inform</code> RPC contains a list of events and parameters with
changed values.
</p>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e72494"></a><span xmlns="" class="number">131.2.11</span> Errors
</h3>
</div>
</div>
</div>
<p>Invoked RPCs can return a fault status if errors occur during the
execution of the RPC. For ACS to CPE RPCs these fault codes start at
9000, for the reverse direction they start at 8000. Each RPC defines the
fault codes that can occur and their semantics in that context.
</p>
</div>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a xmlns="" class="anchor" id="d0e72499"></a><span xmlns="" class="number">131.3</span> TR069 Connector
</h2>
</div>
</div>
</div>
<p>A TR-069 Protocol Adapter must be able to browse foreign Data
Plugins on the device and support native TR069 objects models implemented
by a Data Plugin. As Data Plugins are available through the Dmt Admin
service, the Protocol Adapter must provide a bi-directional mapping
between Dmt Admin nodes and TR-069 parameters, notifications, and error
codes.The mapping must enable a Data Plugin to provide a native Broadband
Forum object model that limits itself to the required RPCs.
</p>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e72504"></a><span xmlns="" class="number">131.3.1</span> Role
</h3>
</div>
</div>
</div>
<p>Developers implementing the TR-069 protocol are not likely to be
also experts in the Dmt Admin service. This specification therefore
provides a TR069 Connector Factory service that provides an object that
can map from the TR-069 concepts to the Dmt Admin concepts, supporting
all the constructs defined in the <a xmlns="" class="xref" href="service.dmt.html#service.dmt.osgiobjectmodeling" title="117.12 OSGi Object Modeling">OSGi Object Modeling</a>.
</p>
<p>The TR069 Connector only specifies a number of primitive functions
to manage the DMT. Parsing the SOAP messages, handling the
notifications, and splitting the requests for TR069 Connector is the
responsibility of the Protocol Adapter. The reason that the TR069
Connector does not work on a higher level is that a Protocol Adapter for
TR-069 will likely communicate with other subsystems in the CPE than the
OSGi framework alone. Though the Dmt Plugin model is an attractive
approach to implement object models, there is history. Existing code
will likely not be rewritten just because it can be done better as a
Data Plugin.
</p>
<p>For example, a Data Plugin could implement the
<code class="code">Device.DeviceInfo.</code> object. However, this object actually
resides in the DMT at a node:
</p><pre xmlns="" class="programlisting"><code>./TR-069/Device/DeviceInfo</code></pre><p>A TR-069 Protocol Adapter will therefore be confronted with a
number of data models that reside in different places. Each place
provides one or more consistent data models but it is the responsibility
of the TR-069 Protocol Adapter to ensure the ACS gets a consistent and
standardized view of the whole. To create this consistent view it will
be necessary to adapt the paths given in the RPCs. It is expected that a
Protocol Adapter is required to have a certain amount of domain
knowledge, for example a table, that maps TR-069 paths to their actual
providers.
</p>
<p>The basic model is depicted in <a xmlns="" class="xref" href="service.tr069todmt.html#i800789" title="Figure 131.5 TR-069 Connector Context">Figure <span class="number">131</span>.5</a>.
</p>
<div class="figure"><a xmlns="" class="anchor" id="i800789"></a><p class="title"><strong>Figure <span xmlns="" class="number">131</span>.5 TR-069 Connector Context</strong></p>
<div class="figure-contents">
<div class="mediaobject" align="center"><img src="images/131-connector-context.png" align="middle" width="559" height="198" alt="TR-069 Connector Context" /></div>
</div>
</div><br class="figure-break" /><p>The Protocol Adapter can be implemented as an OSGi Bundle or it
can be implemented in native code in the device. Both architectures are
viable. For certain aspects like the TR-157a3 Software Modules a certain
amount of native code will be required to manage the OSGi Framework as
an Execution Environment.
</p>
<p>In an environment where the Protocol Adapter is implemented
outside an OSGi Framework it will be necessary to create a link to the
Dmt Admin service. This can be achieved with a proxy bundle inside the
OSGi framework that dispatches any requests from the native Protocol
Adapter to the functionality present in the OSGi Framework. In this
specification, it is assumed that such proxies can be present. However,
the examples are all assuming that the Protocol Adapter is running as a
Bundle.
</p>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e72536"></a><span xmlns="" class="number">131.3.2</span> Obtaining a TR069 Connector
</h3>
</div>
</div>
</div>
<p>A TR069 Connector is associated with a Dmt Session, the <a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069ConnectorFactory" title="131.8.5 public interface TR069ConnectorFactory">TR069ConnectorFactory</a> provides the <a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069ConnectorFactory.create-DmtSession-" title="131.8.5.1 public TR069Connector create(DmtSession session)">create(DmtSession)</a> method that will return a <a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069Connector" title="131.8.4 public interface TR069Connector">TR069Connector</a> object. This object remains associated with the
Dmt Session until the Dmt Session is closed, which can happen because of
a fatal error or when the TR069 Connector Factory is unregistered or
un-gotten/released. Creating a TR069 Connector must not be expensive,
Protocol Adapters should create and close them at will. Closing the
connector must not close the corresponding Dmt Session.
</p>
<p>The TR069 Connector must use the root of the session as its
<span class="emphasis"><em>base</em></span>. That is, their URI mapping all parameters
must start from the base. For example, if the session is opened at
<code class="code">./TR-069</code> then the parameter
<code class="code">IGD/DeviceInfo/Manufacturer</code> must map to URI
<code class="code">./TR-069/IGD/DeviceInfo/Manufacturer</code>.
</p>
<p>If a Protocol Adapter will modify the tree then it should use an
atomic session for all RPCs even if the RPC indicates read-only. The
reason for the atomicity is that in certain cases the lazy behavior of
the TR069 Connector requires the creation of objects during a read
operation. If a non-atomic session is used then the TR069 Connector must
not attempt to lazily create objects and reject any <a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069Connector.addObject-String-" title="131.8.4.24 public String addObject(String path) throws TR069Exception">addObject(String)</a> and <a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069Connector.deleteObject-String-" title="131.8.4.26 public void deleteObject(String objectPath) throws TR069Exception">deleteObject(String)</a> methods. See also <a xmlns="" class="xref" href="service.tr069todmt.html#i838963" title="131.3.8 Lazy and Sessions">Lazy and Sessions</a>.
</p>
</div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e72569"></a><span xmlns="" class="number">131.3.3</span> Supported RPCs
</h3>
</div>
</div>
</div>
<p>The TR069 Connector supports a limited number of RPCs, and for
those RPCs it only supports the singleton case. The TR069 Connector
provides support for the RPCs primitives listed in the following
table.
</p>
<div class="table"><a xmlns="" class="anchor" id="d0e72574"></a><p class="title"><strong>Table <span xmlns="" class="number">131</span>.3 Supported TR-069 RPCs</strong></p>
<div class="table-contents">
<table summary="Supported TR-069 RPCs" width="100%" style="border-collapse: collapse;border-top: 0.5pt solid ; border-bottom: 0.5pt solid ; border-left: 0.5pt solid ; border-right: 0.5pt solid ; ">
<colgroup>
<col />
<col />
<col />
</colgroup>
<thead>
<tr>
<th style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">RPC</th>
<th style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">Related Method</th>
<th style="border-bottom: 0.5pt solid ; ">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">SetParameterValues</code></td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069Connector.setParameterValue-String-String-int-" title="131.8.4.29 public void setParameterValue(String parameterPath, String value, int type) throws TR069Exception">setParameterValue(String,String,int)</a></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Set one or more parameter values. The connector
supports setting a single value, ensuring the proper path
traversal and data type conversion
</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">GetParameterValues</code></td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069Connector.getParameterValue-String-" title="131.8.4.28 public ParameterValue getParameterValue(String parameterPath) throws TR069Exception">getParameterValue(String)</a></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Get one or more parameter values. The connector
supports getting a single value, converting it to a <a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.ParameterValue" title="131.8.3 public interface ParameterValue">ParameterValue</a> object, which contains the value and the
type.
</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">GetParameterNames</code></td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069Connector.getParameterNames-String-boolean-" title="131.8.4.27 public Collection<ParameterInfo> getParameterNames(String objectOrTablePath, boolean nextLevel) throws TR069Exception">getParameterNames(String,boolean)</a></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Get the paths of objects and parameters from the
sub-tree or children that begins at the parameter path. The
TR-069 Connector supports the full traversal of the given path
and the next level option.
</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><code class="code">AddObject</code></td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; "><a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069Connector.addObject-String-" title="131.8.4.24 public String addObject(String path) throws TR069Exception">addObject(String)</a></td>
<td style="border-bottom: 0.5pt solid ; ">
<p>Add a new object to a table. The fully supports the
semantics, taking the <code class="code">MAP</code> and <code class="code">LIST</code>
nodes into account. Node creation can be delayed until a node is
really needed.
</p>
</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; "><code class="code">DeleteObject</code></td>
<td style="border-right: 0.5pt solid ; "><a xmlns="" class="xref" href="service.tr069todmt.html#org.osgi.service.tr069todmt.TR069Connector.deleteObject-String-" title="131.8.4.26 public void deleteObject(String objectPath) throws TR069Exception">deleteObject(String)</a></td>
<td style="">
<p>Delete an object from a table.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div><br class="table-break" /></div>
<div class="section">
<div xmlns="" class="titlepage">
<div>
<div>
<h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a xmlns="" class="anchor" id="d0e72643"></a><span xmlns="" class="number">131.3.4</span> Name Escaping
</h3>