summaryrefslogtreecommitdiffstats
path: root/doc/book-enea-edge-getting-started/doc/net_config_options.xml
blob: a9faf0aa32f2f660a1e43edaa896ffb35f1042b2 (plain)
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
<?xml version="1.0" encoding="ISO-8859-1"?>
<chapter id="net_config_operations">
  <title>Network Configuration Options</title>

  <para>Various Advanced Network Configuration options can be done from the
  Enea Edge Management application GUI.</para>

  <section id="device_callhome_nat">
    <title>Device Call Home Connection for Deployment behind NAT</title>

    <para>The Device Call Home option enables the initiation of the connection
    between the uCPE Device and the Enea Edge Management application, from the
    uCPE device. The Device Call Home option is required when deploying a uCPE
    device behind NAT since the IP address of the uCPE device is hidden for
    the Enea Edge Management application.</para>

    <para>Enable Device Call Home by marking the Device Call Home checkbox
    when registering the uCPE device in Enea Edge Management application. When
    using this mechanism, the device will initiate a connection to the Enea
    Edge Management application for NETCONF traffic (over SSH), while the
    application waits for a device connection.</para>
  </section>

  <section id="device_net_config">
    <title>uCPE Device Network Configuration</title>

    <para>The following describes the steps required for setting up the
    virtualization infrastructure, ensuring that a uCPE device has networking
    setup for virtualized service deployment. Networking is enabled by
    selecting physical interfaces to be used by virtualized networking and
    creating different types of bridges to enable VNF communication.</para>

    <para>The Zero Touch Provisioning mechanism is also touched upon, as an
    alternative to manual configuration of the virtualization
    infrastructure.</para>

    <section id="config_dpdk">
      <title>Configure DPDK</title>

      <para>DPDK is an important functionality for accelerating networking
      performance. The DPDK is enabled by default and should be utilized in
      most configurations.</para>

      <para>In use cases where CPU capacity is very limited, disabling DPDK
      can free up CPU capacity and overall performance can improve. Navigate
      to <emphasis role="bold">Configuration</emphasis>, then <emphasis
      role="bold">DPDK</emphasis> and deselect <emphasis role="bold">Enable
      DPDK</emphasis> to disable the DPDK.</para>

      <note>
        <para>Disabling the DPDK cannot be done after other network
        configurations have been made.</para>
      </note>

      <para>In the <emphasis role="bold">Configuration</emphasis> menu, select
      <emphasis role="bold">DPDK</emphasis>, here DPDK resources can also be
      configured:</para>

      <itemizedlist>
        <listitem>
          <para><emphasis role="bold">LCore Mask</emphasis>. Allocated cores
          for non-datapath OVS-DPDK threads (CPU core bitmask). Default:
          0x2.</para>
        </listitem>

        <listitem>
          <para><emphasis role="bold">PMD CPU Mask</emphasis>. Allocated cores
          for datapath processing (CPU core bitmask). Default: 0x4.</para>
        </listitem>

        <listitem>
          <para><emphasis role="bold">Socket Memory</emphasis>. Hugepage
          memory allocated for DPDK. Default: 1494.</para>
        </listitem>
      </itemizedlist>
    </section>

    <section id="config_ext_interfaces">
      <title>Configure External Interfaces</title>

      <para>Once a management connection with the uCPE device has been
      established by using any of the supported methods, the virtualization
      networking infrastructure can be configured either manually or by using
      Zero Touch Provisioning.</para>

      <para>Available network interfaces can be added to the management
      system, for use by the networking virtualization infrastructure.</para>

      <para>In order to make physical network interfaces available to the
      virtualization infrastructure and VNFs, they must be configured into the
      management system.</para>

      <para>To add an interface into the Enea Edge Management application,
      select the uCPE device, then from the top toolbar select <emphasis
      role="bold">Configuration</emphasis>, then <emphasis
      role="bold">External Interfaces</emphasis>, <emphasis
      role="bold">Configuration</emphasis>, and click the <emphasis
      role="bold">Add</emphasis> button. The available Interface types are
      detailed below.</para>

      <section id="dpdk_interface_type">
        <title>DPDK Interface Type</title>

        <para>Configuring a physical interface in DPDK mode will require a
        DPDK-based application (e.g. OVS-DPDK) in order to access and use the
        interface. An interface set as DPDK can be attached to an OVS-DPDK
        bridge.</para>

        <note>
          <para>Make sure the <emphasis role="bold">Enable DPDK</emphasis>
          checkbox is selected by accessing <emphasis
          role="bold">Device</emphasis>, <emphasis
          role="bold">Configuration</emphasis> and choosing <emphasis
          role="bold">DPDK</emphasis>, otherwise no interface can be assigned
          as DPDK.</para>
        </note>

        <para>To add a DPDK interface under the management system, set
        appropriate values for the following fields:</para>

        <itemizedlist>
          <listitem>
            <para>Source: name of the physical interface.</para>
          </listitem>

          <listitem>
            <para>Networking-type: dpdk</para>
          </listitem>

          <listitem>
            <para>Dpdk-type: the kernel module that allows user space access
            to the physical interface. Either the <literal>vfio-pci</literal>
            (most commonly used type) or the <literal>igb_uio</literal> driver
            can be used.</para>
          </listitem>
        </itemizedlist>
      </section>

      <section id="sriov_interface_type">
        <title>SR-IOV Interface Type</title>

        <para>SR-IOV technology allows for the creation of a number of virtual
        functions on the host interface, which can be used by VNFs running on
        the uCPE device.</para>

        <para>For SR-IOV mode configuration, the user must set values for the
        following fields:</para>

        <itemizedlist>
          <listitem>
            <para>Source: name of the physical interface.</para>
          </listitem>

          <listitem>
            <para>Networking-type: srIov</para>
          </listitem>

          <listitem>
            <para>sriov-mode: adapter-pool</para>
          </listitem>

          <listitem>
            <para>sriov-num-vfs: the number of virtual functions to
            create.</para>
          </listitem>
        </itemizedlist>
      </section>

      <section id="standard_interface_type">
        <title>Standard Interface Type</title>

        <para>Some of the physical network interfaces available on a uCPE
        device, including Ethernet interfaces, do not have DPDK or SR-IOV
        support. Instead, the Linux kernel driver has to be used.</para>

        <para>To add Standard Interfaces under the management system, the user
        must set values for the following fields:</para>

        <itemizedlist>
          <listitem>
            <para>Source: the name of physical interface.</para>
          </listitem>

          <listitem>
            <para>Networking-type: standard.</para>
          </listitem>
        </itemizedlist>
      </section>

      <section id="wan_interface_type">
        <title>Wan Interface Type</title>

        <para>WAN interfaces configured during the installation of the uCPE
        device are automatically added in the Enea Edge Management application
        as type <literal>wan</literal>. The WAN interface used for management
        of the uCPE device is marked with the <literal>Management</literal>
        property set to <literal>True</literal>.</para>

        <para>If a WAN interface is to be assigned for use by a VNF, it must
        be changed into another interface type depending on the type of
        connection that will be used. The management WAN interface cannot be
        changed to a different type. It is automatically used when an In-band
        management bridge is created.</para>

        <para><emphasis role="bold">How to Edit the Configuration of a Wan
        Interface</emphasis></para>

        <orderedlist>
          <listitem>
            <para>To edit an interface configuration type from the Enea Edge
            Management, select the uCPE device, then from the top toolbar
            select the <emphasis role="bold">Configuration</emphasis> menu,
            then <emphasis role="bold">External Interfaces</emphasis> and
            <emphasis role="bold">Configuration</emphasis>. The already
            configured interfaces are displayed here, as seen in the figure
            above.</para>
          </listitem>

          <listitem>
            <para>In order to edit an already configured interface, (as in the
            example pop-up shown below, a WAN interface) double click on the
            desired one and a pop-up will appear. A different pop-up appears
            for each type of interface. From the <emphasis role="bold">Host
            Interface</emphasis> window, a user can change the networking type
            and the IP address assignment:</para>

            <figure>
              <title>Editing an Interface</title>

              <mediaobject>
                <imageobject>
                  <imagedata align="center" contentwidth="450"
                             fileref="images/edit_inter.png" />
                </imageobject>
              </mediaobject>
            </figure>
          </listitem>
        </orderedlist>

        <note>
          <para>When changing the <literal>address-assignment</literal> from
          static to DHCP, if any of the <literal>ip-address</literal>,
          <literal>netmask</literal>, <literal>gateway</literal> or
          <literal>dns-servers</literal> fields have invalid values a
          validation error will be triggered. These fields must be empty or
          have the valid values for their respective address
          assignment.</para>
        </note>
      </section>

      <section id="wap_interface_type">
        <title>Wap Interface Type</title>

        <para>Wireless Access Point (Wap) interfaces are used to create
        Wireless Access Points. Only interfaces with
        <literal>wap-capable</literal> capabilities can be added as WAP
        interfaces.</para>

        <para><emphasis role="bold">How to edit the Configuration of a Wap
        Interface</emphasis></para>

        <orderedlist>
          <listitem>
            <para>To edit an interface configuration from the Enea Edge
            Management, select the uCPE device, then from the top toolbar
            select the <emphasis role="bold">Configuration</emphasis> menu
            then <emphasis role="bold">External Interfaces</emphasis> and
            select <emphasis role="bold">Configuration</emphasis>. The already
            configured interfaces will be displayed here.</para>
          </listitem>

          <listitem>
            <para>In order to edit an already configured interface, (as in the
            example pop-up shown below, a WAP interface) double click on the
            desired one and a pop-up will appear. A different pop-up appears
            for each type of interface. From the <literal>Host
            Interface</literal> window, the following parameters are
            configurable:</para>

            <itemizedlist>
              <listitem>
                <para>Country Code: the country code, a 2 letter
                ISO3166-alpha2 identifier.</para>
              </listitem>

              <listitem>
                <para>Wireless Band: 2.4 GHz or 5 GHz. Depending on the band
                selection, the correct <literal>Wireless Mode</literal> and
                <literal>Radio Channel</literal> must be provided.</para>
              </listitem>
            </itemizedlist>

            <figure>
              <title>Editing an Interface</title>

              <mediaobject>
                <imageobject>
                  <imagedata align="center" contentwidth="475"
                             fileref="images/wap_external_interface.png" />
                </imageobject>
              </mediaobject>
            </figure>
          </listitem>
        </orderedlist>

        <note>
          <para>Correct <emphasis role="bold">Country Code</emphasis>
          selection is mandatory. All configuration options are available in
          the Enea Edge Management application GUI but only the Radio Settings
          that conform with the selected country's official regulatory laws
          will be applied when the Wireless AP is started on the uCPE
          Device.</para>
        </note>
      </section>

      <section id="man_configuration">
        <title>Manual Configuration</title>

        <para>For Manual Configuration of uCPE networking, select the uCPE
        device first, then access the <emphasis
        role="bold">Configuration</emphasis> menu, and choose <emphasis
        role="bold">External Interfaces</emphasis>, where a list of available
        network interfaces and their capabilities can be found.</para>

        <para>After networking interfaces have been added to the Enea Edge
        Management, the user can change the interface type (DPDK, SR-IOV,
        Standard, WAN, WAP).</para>

        <figure>
          <title>Configuration of External Interfaces</title>

          <mediaobject>
            <imageobject>
              <imagedata align="center" contentwidth="600"
                         fileref="images/edit_inter_config.png" />
            </imageobject>
          </mediaobject>
        </figure>
      </section>
    </section>

    <section id="configure_bridges">
      <title>Configuring Bridges</title>

      <para>After networking interfaces have been added to the Enea Edge
      Management, the user can create the necessary OVS bridges.</para>

      <figure>
        <title>OVS Bridges</title>

        <mediaobject>
          <imageobject>
            <imagedata align="center" contentwidth="600"
                       fileref="images/ovs_bridges_tab.png" />
          </imageobject>
        </mediaobject>
      </figure>

      <para><emphasis role="bold">How to add OVS bridges in the Enea Edge
      Management</emphasis></para>

      <orderedlist>
        <listitem>
          <para>Select the uCPE device.</para>
        </listitem>

        <listitem>
          <para>Select <emphasis role="bold">Configuration</emphasis>.</para>
        </listitem>

        <listitem>
          <para>Click <emphasis role="bold">OpenvSwitch</emphasis>.</para>
        </listitem>

        <listitem>
          <para>Select the <emphasis role="bold">Bridges</emphasis> option,
          then click <emphasis role="bold">Add</emphasis>.</para>
        </listitem>
      </orderedlist>

      <note>
        <para>Depending on the settings found when accessing the <emphasis
        role="bold">Configuration</emphasis> menu and selecting <emphasis
        role="bold">DPDK</emphasis>, OVS bridges with or without DPDK support
        will be used on the uCPE device.</para>
      </note>

      <para>There are three types of bridges which can be created, each one
      fulfilling a different role.</para>

      <section id="inband_mg_bridge">
        <title>uCPE In-band Management bridge</title>

        <para>In-band Management refers to a model where both the data plane
        and control plane flow over the same network path. In some situations
        (e.g. the uCPE device has only one routable IP address), this is the
        only option available to both control and configure the uCPE device,
        while also allowing for data-path traffic to pass over the same
        physical interface.</para>

        <para>The solution provided by Enea for in-band management is based
        upon an OpenvSwitch bridge managing all traffic passing through the
        WAN physical port. Any standard or DPDK-assigned network interface can
        be used for the In-Band management bridge.</para>

        <para>To create the In-Band Management bridge, the user must set
        values for the following fields:</para>

        <itemizedlist>
          <listitem>
            <para>name: name of the bridge.</para>
          </listitem>

          <listitem>
            <para>ovs-bridge-type: inbandMgmt</para>
          </listitem>
        </itemizedlist>
      </section>

      <section id="inband_mg_br_vnfs">
        <title>In-band Management bridge for VNFs</title>

        <para>If VNF management can be done over a dedicated virtual
        interface, its possible to extend the networking infrastructure
        configuration to also access the VNF's management interface over the
        WAN port.</para>

        <para>For this setup, three types of traffic will pass over the WAN
        physical interface:</para>

        <itemizedlist>
          <listitem>
            <para><emphasis role="bold">Device management</emphasis>. Part of
            the device configuration done by the Enea Edge Management
            application.</para>
          </listitem>

          <listitem>
            <para><emphasis role="bold">VNF(s) management</emphasis>. Enabling
            or disabling features of a VNF. E.g. enabling/disabling the
            firewall or VPN setup.</para>
          </listitem>

          <listitem>
            <para><emphasis role="bold">Data-path</emphasis>. All other
            traffic that is not used in the control plane and needs to reach a
            LAN network.</para>
          </listitem>
        </itemizedlist>

        <para>To create a VNF In-Band Management bridge, the user must set
        values for the following fields:</para>

        <itemizedlist>
          <listitem>
            <para>name: name of the bridge.</para>
          </listitem>

          <listitem>
            <para>ovs-bridge-type: vnfMgmt</para>
          </listitem>

          <listitem>
            <para>vnf-mgmt-address: select IPv4 as the type and fill in an
            internal IP address for the bridge interface that will be
            connected to the VNF management network, e.g 10.0.0.1.</para>
          </listitem>
        </itemizedlist>

        <note>
          <para>VNF management interfaces must be configured in same subnet as
          that used by the bridge interface connected to the VNF management
          network.</para>
        </note>
      </section>

      <section id="dataplane_bridge">
        <title>Data-plane bridge</title>

        <para>Data-plane bridges are generic bridges used for the VNF
        data-plane. There are two supported sub-types:</para>

        <itemizedlist>
          <listitem>
            <para><emphasis role="bold">communication</emphasis>:
            <itemizedlist>
                <listitem>
                  <para>Allows for VNF communication towards LAN/WAN networks.
                  This bridge type has at least one physical port attached to
                  it.</para>
                </listitem>

                <listitem>
                  <para>Allows for creation of <literal>Wireless Access
                  Points</literal>. This bridge type does not need a physical
                  port attached to it.</para>
                </listitem>
              </itemizedlist></para>
          </listitem>

          <listitem>
            <para><emphasis role="bold">integration</emphasis>: allows for
            VNF-to-VNF communication (usually for service function chaining).
            This bridge type does not have any physical port attached.</para>
          </listitem>
        </itemizedlist>

        <para>To create a Data-plane bridge, the user must set values for the
        following fields:</para>

        <itemizedlist>
          <listitem>
            <para><emphasis role="bold">name</emphasis>: name of the
            bridge.</para>
          </listitem>

          <listitem>
            <para><emphasis role="bold">ovs-bridge-type</emphasis>: select
            <literal>communication</literal> or
            <literal>integration</literal>, depending on intended usage. For
            communication bridges, physical interfaces can be added to the
            bridge.</para>
          </listitem>
        </itemizedlist>
      </section>
    </section>
  </section>

  <section id="zero_touch_prov">
    <title>Zero Touch Provisioning - Creating an Offline Configuration</title>

    <para>Zero-Touch Provisioning (ZTP) refers to the process of when a device
    starts up for the first time and its initial configuration is pushed down
    by an external management system, so that it is setup for proper operation
    without additional manual intervention by an operator. ZTP is an
    alternative to Manual configuration.</para>

    <para>A variety of operations can occur as part of ZTP such as initial
    device setup, configuration of managed objects, etc. The goal is to set up
    a device to the maximum possible extent without forcing an operator to be
    physically present (initially) to manage the device.</para>

    <para>An offline configuration is usually prepared in advance for the Enea
    Edge Management to setup the virtualization infrastructure on the uCPE
    device, as soon as a device enrolls into the management system.</para>

    <section id="offline_configuration">
      <title>Offline Configuration</title>

      <para>The Offline Configuration subsystem is used to pre-populate a
      configuration for a device that will be brought under management at a
      future point in time. When creating an offline configuration store a
      <literal>Device ID</literal> can be specified. This ID uniquely
      identifies the device to be initialized.</para>

      <para>Alternatively, a wildcard can be used in the <literal>Device
      ID</literal> field, which results in a configuration being pushed on all
      uCPE devices upon their initial connection towards the Enea Edge
      Management.</para>

      <para>If the offline configuration is not configured for a uCPE device,
      an alarm will be raised: <literal>Day-0 Config:ZTP:Major</literal>,
      which occurs when the uCPE device connects to the Enea Edge Management
      application informing that the ZTP setup failed for the specific uCPE
      device.</para>

      <para>To create an offline configuration, select from the top toolbar
      the <emphasis role="bold">Applications</emphasis> menu, then <emphasis
      role="bold">Offline Config</emphasis> and choose <emphasis
      role="bold">Add</emphasis>. The following fields should be
      filled:</para>

      <itemizedlist>
        <listitem>
          <para>Name: name of the device.</para>
        </listitem>

        <listitem>
          <para>Device type: Enea universal CPE.</para>
        </listitem>

        <listitem>
          <para>DeviceVersion: <xi:include
          href="../../eltf_params_updated.xml"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xpointer="element(EneaEdge_REL_VER/1)" /></para>
        </listitem>

        <listitem>
          <para>Config Set: uCPE Config</para>
        </listitem>

        <listitem>
          <para>Device ID: device ID or a wildcard(*).</para>
        </listitem>

        <listitem>
          <para>Device Grouping Tags: a tag to group devices. These tags match
          the customer tags provided during the installation of the
          device.</para>
        </listitem>
      </itemizedlist>

      <para>The Name is user defined and can be set to any unique text string
      identifying the configuration. The Device Version will match the Enea
      Edge version of the uCPE device and the Device ID will be set to the
      previously set identifier of the uCPE device.</para>

      <para>When a device connects to the Enea Edge Management application for
      the first time, it checks the device to see if it has been Zero Touch
      Provisioned (ZTP). If not, it looks for an offline configuration that
      matches these values, in the following order:</para>

      <itemizedlist>
        <listitem>
          <para>The Device ID.</para>
        </listitem>

        <listitem>
          <para>The set of tags.</para>
        </listitem>

        <listitem>
          <para>A "*" for Device ID (wildcard).</para>
        </listitem>
      </itemizedlist>

      <para>If a match is found, the offline configuration is sent to the
      device as part of Zero-Touch-Provisioning.</para>

      <para>After creating the Offline Config Store, access the device by
      selecting <emphasis role="bold">Applications</emphasis>, then <emphasis
      role="bold">offline config</emphasis> and clicking <emphasis
      role="bold">Config App</emphasis>, to provision it with the required
      initial configuration. This operation mirrors what happens during manual
      configuration described previously.</para>

      <note>
        <para>The ZTP will only be triggered the first time a uCPE device
        connects to the Enea Edge Management application. Just changing an
        offline configuration will not push the new changes to the device. If
        an offline configuration is changed after uCPE device registration, a
        factory reset can be executed to force a new ZTP to execute. Select
        the device, then access the <emphasis
        role="bold">Operations</emphasis> menu and select <emphasis
        role="bold">factory reset</emphasis>.</para>
      </note>
    </section>
  </section>

  <section id="custom_scripts">
    <title>Custom Scripts for Custom Networking Configurations</title>

    <para>The custom scripts feature allows users to execute user-defined
    scripts on the uCPE device at various times. This allows for more flexible
    and advanced configurations such as a LTE modem configuration, advanced
    network configurations or OVS flow rule programming at any time.</para>

    <note>
      <para>In the current Enea Edge Management application version custom 
        scripts are not supported as part of the offline config.</para>
    </note>

    <section id="upload_scripts">
      <title>Uploading Scripts</title>

      <para>The scripts need to be uploaded to the Enea Edge Management
      application prior to use. When uploading scripts to the Enea Edge
      Management application make sure to select the right script type.</para>

      <para>The following script types are supported:</para>

      <itemizedlist>
        <listitem>
          <para><literal>Once-before-startup</literal>. This script will only
          execute once after the system has rebooted, prior to processing any
          device configuration.</para>
        </listitem>

        <listitem>
          <para><literal>Always-before-startup</literal>. This script will
          always execute after the system has rebooted, prior to processing
          any device configuration.</para>
        </listitem>

        <listitem>
          <para><literal>Once-after-startup</literal>. The script will only
          execute once after the system has rebooted, after all device
          configuration processes have completed.</para>
        </listitem>

        <listitem>
          <para><literal>Always-after-startup</literal>. This script will
          always execute after all device configuration processes have
          completed after the system has rebooted.</para>
        </listitem>
      </itemizedlist>

      <note>
        <para>After a factory reset, any of the
        <literal>Once-before-*</literal> or <literal>Once-after-*</literal>
        scripts will be re-run as described above.</para>
      </note>

      <para>Follow the instruction below to upload scripts:</para>

      <orderedlist>
        <listitem>
          <para>Access the <emphasis role="bold">Devices</emphasis> menu, then
          <emphasis role="bold">Custom Scripts</emphasis> and choose <emphasis
          role="bold">Configure</emphasis>.</para>
        </listitem>

        <listitem>
          <para>Select <emphasis role="bold">Upload to EMS</emphasis>.</para>
        </listitem>

        <listitem>
          <para>In the <emphasis role="bold">Script Type</emphasis> menu,
          select the type the uploaded script should have.</para>
        </listitem>

        <listitem>
          <para>Press <emphasis role="bold">Choose File</emphasis> to select
          the scripts needed, and then click <emphasis
          role="bold">Send</emphasis>.</para>
        </listitem>
      </orderedlist>

      <note>
        <para>If two scripts are uploaded one at a time, the Enea Edge
        Management application will delete the first script already added from 
          the device and apply the new one. In order for both scripts to be available on
        the device, both scripts must be uploaded at once.</para>
      
        <para>If multiple custom scripts of the same type are uploaded at the
        same time, they are executed in alphabetical order.</para>
      </note>
    </section>

    <section id="remove_scripts">
      <title>Removing Scripts</title>

      <para>Follow the instruction below to remove scripts from the Enea Edge
      Management application:</para>

      <orderedlist>
        <listitem>
          <para>Access the <emphasis role="bold">Devices</emphasis> menu, then
          <emphasis role="bold">Custom Scripts</emphasis> and select <emphasis
          role="bold">Configure</emphasis>.</para>
        </listitem>

        <listitem>
          <para>Select the script you want to delete from the <emphasis
          role="bold">Uploaded Scripts</emphasis> tab and then click <emphasis
          role="bold">Delete</emphasis>, which will remove the script
          immediately from the Enea Edge Management application.</para>
        </listitem>
      </orderedlist>
    </section>

    <section id="configure_scripts">
      <title>Configuring Script Location</title>

      <para>The location where the scripts are staged in the Enea Edge
      Management application can be changed as described below:</para>

      <orderedlist>
        <listitem>
          <para>Access the <emphasis role="bold">Devices</emphasis> menu,
          choose <emphasis role="bold">Custom Scripts</emphasis> and select
          <emphasis role="bold">Configure</emphasis>.</para>
        </listitem>

        <listitem>
          <para>Select the <emphasis role="bold">Configuration</emphasis> tab
          and specify a new location to store the scripts.</para>

          <note>
            <para>Change the script storage location only if you have many
            scripts which you would prefer to store on another partition,
            otherwise leave this configuration as is.</para>
          </note>
        </listitem>
      </orderedlist>
    </section>

    <section id="run_the_scripts">
      <title>Running the Scripts</title>

      <para><emphasis role="bold">How to run Custom Scripts</emphasis></para>

      <orderedlist>
        <listitem>
          <para>Access the <emphasis role="bold">Devices</emphasis> menu,
          choose <emphasis role="bold">Custom Scripts</emphasis> and select
          <emphasis role="bold">Apply Scripts</emphasis>.</para>
        </listitem>

        <listitem>
          <para>In the <emphasis role="bold">Script Config Screen</emphasis>
          pop up, select the devices from the device(s) chooser list on which
          to run the scripts. Press the <emphasis role="bold">&gt;</emphasis>
          button to move the devices to the right side of the chooser, which
          is the list of devices that will execute the selected
          scripts.</para>
        </listitem>

        <listitem>
          <para>Select the scripts from the list under the device(s) chooser
          by pressing the <emphasis role="bold">+</emphasis> button.</para>
        </listitem>

        <listitem>
          <para>In the pop-up window, select the scripts from the list. If
          there are no scripts to select, then there is no script uploaded
          with that particular type. Upload the script(s) needed and try
          again.</para>
        </listitem>

        <listitem>
          <para>Check the <emphasis role="bold">Reboot devices</emphasis>
          checkbox if you want to reboot and execute the scripts at once and
          then select <emphasis role="bold">ok</emphasis>.</para>

          <note>
            <para>The status of execution for the scripts can be seen by
            accessing <emphasis role="bold">Fault</emphasis>, opening the
            <emphasis role="bold">Events</emphasis> screen and filtering by
            device and/or the event name
            <filename>CustomScriptExecuted</filename>.</para>
          </note>
        </listitem>
      </orderedlist>
    </section>

    <section id="remove_script_device">
      <title>Removing Scripts from a uCPE Device</title>

      <para>Follow the instructions below to remove scripts from a uCPE
      Device:</para>

      <orderedlist>
        <listitem>
          <para>Access the <emphasis role="bold">Operations</emphasis> menu
          and select <emphasis role="bold">Delete Custom
          Script</emphasis>.</para>
        </listitem>

        <listitem>
          <para>In the <emphasis role="bold">Delete Custom Script</emphasis>
          pop up, set the name and the type of the script that should be
          deleted and press <emphasis role="bold">Execute</emphasis>. If the
          <emphasis role="bold">Script Type</emphasis> remains unset, the
          script will be deleted regardless of its type.</para>
        </listitem>
      </orderedlist>
    </section>
  </section>

  <section id="wireless_access_point">
    <title>Wireless Access Point</title>

    <para>The Wireless AP Screen from the Enea Edge Management Configuration
    menu allows users to configure a <literal>Wireless Access Point</literal>.
    A <literal>wap-capable</literal> interface and a LAN bridge must be added
    before doing the Wireless AP configuration. For more details see sections
    <link linkend="wap_interface_type">Wap interface Type</link> and <link
    linkend="dataplane_bridge">Data-plane bridge</link>.</para>

    <para>The following parameters are configurable:</para>

    <itemizedlist>
      <listitem>
        <para>SSID: the Wireless network name - any string with a max. length
        of 32 octets.</para>
      </listitem>

      <listitem>
        <para>Interface Name: the <literal>wap-capable</literal> external
        interface.</para>
      </listitem>

      <listitem>
        <para>Lan Bridge: the LAN bridge where wireless clients will be
        hosted.</para>
      </listitem>

      <listitem>
        <para>WAP Security Mode: <literal>open</literal> or
        <literal>wpa2Psk</literal>. When choosing <literal>wpa2Psk</literal>,
        a <literal>password</literal> and an <literal>encryption</literal>
        must be provided. The <literal>password</literal> can be any string
        with a minimum length of 8 and a maximum length of 63
        characters.</para>
      </listitem>

      <listitem>
        <para>DHCP Server: <literal>disabled</literal> or
        <literal>enabled</literal>. When <literal>enabled</literal> is
        selected, the range of IPs (<literal>IP Address Start</literal> -
        <literal>IP Address End</literal>), <literal>Netmask</literal> and
        <literal>Gateway</literal> values must be provided.</para>
      </listitem>
    </itemizedlist>

    <figure>
      <title>Wireless AP</title>

      <mediaobject>
        <imageobject>
          <imagedata align="center" contentwidth="600"
                     fileref="images/wap_wireless_ap.png" />
        </imageobject>
      </mediaobject>
    </figure>

    <para>Only a single Wireless AP is allowed on a physical interface. The
      validation of the <literal>wap-capable</literal> interface is done when
      adding the Wireless AP, so, in case of an error, the parameters of the
      <literal>wap-capable</literal> interface must be rechecked. This can be
      done by accessing the <emphasis role="bold">Configuration</emphasis>
      menu and selecting <emphasis role="bold">External
      Interfaces</emphasis>.</para>

    <note>
      <para>For the 2.4GHz band, the <literal>802.11 g/n</literal> wireless
      mode will use a 40MHz channel width by default. For regulatory
      requirements compliance, channels are scanned in order to avoid
      overlapping with existing networks. If overlaps are detected, primary
      and secondary Wireless AP channels will be swapped, resulting in an
      effective channel width of 20MHz instead of 40Mhz being used.
      To avoid this, select another wireless channel.</para>

      <para>For the 5GHz band, the <literal>802.11 n</literal> and the 
        <literal>802.11 ac/n</literal> wireless modes can be configured
      explicitly to use a specific channel number, even when Automatic
      Channel Selection (<literal>ACS</literal>) is available. For regulatory
      requirements compliance, channels are scanned in order to avoid
      overlapping with existing networks. If overlaps are detected,
      <literal>ACS</literal> will try to find another free channel,
      resulting in a different channel number being used instead of the one
      explicitly configured. To avoid this, select another wireless channel.</para>
    </note>
  </section>
</chapter>