Newer
Older
Dimitrios Giannopoulos
committed
</span>
<span class="md-nav__icon md-icon"></span>
</label>
Dimitrios Giannopoulos
committed
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
Dimitrios Giannopoulos
committed
<span class="md-nav__icon md-icon"></span>
Dimitrios Giannopoulos
committed
Service as a Product
Dimitrios Giannopoulos
committed
</label>
<ul class="md-nav__list" data-md-scrollfix>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
Dimitrios Giannopoulos
committed
<a href="../product_model/product_spec.md" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Dimitrios Giannopoulos
committed
Product Specification
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
<li class="md-nav__item">
Dimitrios Giannopoulos
committed
<a href="../product_model/product_catalogs.md" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Dimitrios Giannopoulos
committed
Product Catalogs
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
<li class="md-nav__item">
Dimitrios Giannopoulos
committed
<a href="../product_model/product_inventory.md" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Dimitrios Giannopoulos
committed
Product Inventory
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
</ul>
</nav>
</li>
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<li class="md-nav__item md-nav__item--nested">
Dimitrios Giannopoulos
committed
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Assurance services
</span>
<span class="md-nav__icon md-icon"></span>
</label>
Dimitrios Giannopoulos
committed
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
Dimitrios Giannopoulos
committed
<span class="md-nav__icon md-icon"></span>
Assurance services
</label>
<ul class="md-nav__list" data-md-scrollfix>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
Dimitrios Giannopoulos
committed
<a href="../assurance_services/intro.md" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Dimitrios Giannopoulos
committed
Introduction
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
<li class="md-nav__item">
Dimitrios Giannopoulos
committed
<a href="../assurance_services/alarms_actions.md" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Alarms and Actions
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
</ul>
</nav>
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item md-nav__item--nested">
Dimitrios Giannopoulos
committed
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Design & Architecture
</span>
<span class="md-nav__icon md-icon"></span>
</label>
Dimitrios Giannopoulos
committed
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
Dimitrios Giannopoulos
committed
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
<span class="md-nav__icon md-icon"></span>
Design & Architecture
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../architecture/architecture/" class="md-nav__link">
<span class="md-ellipsis">
Architecture
</span>
</a>
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item md-nav__item--nested">
Dimitrios Giannopoulos
committed
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9_2" >
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<label class="md-nav__link" for="__nav_9_2" id="__nav_9_2_label" tabindex="0">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Cloud native support
</span>
<span class="md-nav__icon md-icon"></span>
</label>
Dimitrios Giannopoulos
committed
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_9_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9_2">
Dimitrios Giannopoulos
committed
<span class="md-nav__icon md-icon"></span>
Cloud native support
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
Dimitrios Giannopoulos
committed
<a href="../architecture/CRIDGE_cloud_native_intro.md" class="md-nav__link">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Dimitrios Giannopoulos
committed
Introduction
Dimitrios Giannopoulos
committed
</span>
</a>
</li>
<li class="md-nav__item">
Dimitrios Giannopoulos
committed
<a href="../architecture/CRIDGE/CRIDGEforDevelopers/" class="md-nav__link">
Dimitrios Giannopoulos
committed
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
<span class="md-ellipsis">
CRIDGE for Developers
</span>
</a>
</li>
</ul>
</nav>
</li>
Dimitrios Giannopoulos
committed
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
<li class="md-nav__item">
<a href="../architecture/messagebus/" class="md-nav__link">
<span class="md-ellipsis">
Message bus
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../architecture/osom/" class="md-nav__link">
<span class="md-ellipsis">
OSOM
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../architecture/oauth/" class="md-nav__link">
<span class="md-ellipsis">
Authentication
</span>
</a>
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item md-nav__item--nested">
Dimitrios Giannopoulos
committed
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9_6" >
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<label class="md-nav__link" for="__nav_9_6" id="__nav_9_6_label" tabindex="0">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
APIs
</span>
<span class="md-nav__icon md-icon"></span>
</label>
Dimitrios Giannopoulos
committed
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_9_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9_6">
Dimitrios Giannopoulos
committed
<span class="md-nav__icon md-icon"></span>
APIs
</label>
<ul class="md-nav__list" data-md-scrollfix>
Dimitrios Giannopoulos
committed
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
<li class="md-nav__item">
<a href="../architecture/tmfapi/" class="md-nav__link">
<span class="md-ellipsis">
TMF API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../architecture/nfvapi/" class="md-nav__link">
<span class="md-ellipsis">
NFV API
</span>
</a>
</li>
Dimitrios Giannopoulos
committed
</ul>
</nav>
</li>
Dimitrios Giannopoulos
committed
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
<li class="md-nav__item">
<a href="../architecture/issuemgt/" class="md-nav__link">
<span class="md-ellipsis">
Issue management
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../architecture/centrallog/" class="md-nav__link">
<span class="md-ellipsis">
Central logging
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
Dimitrios Giannopoulos
committed
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
Dimitrios Giannopoulos
committed
<span class="md-ellipsis">
Dimitrios Giannopoulos
committed
Contributing to OSL
Dimitrios Giannopoulos
committed
</span>
<span class="md-nav__icon md-icon"></span>
</label>
Dimitrios Giannopoulos
committed
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10">
Dimitrios Giannopoulos
committed
<span class="md-nav__icon md-icon"></span>
Dimitrios Giannopoulos
committed
Contributing to OSL
Dimitrios Giannopoulos
committed
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../contributing/developing/" class="md-nav__link">
<span class="md-ellipsis">
Developing
</span>
</a>
</li>
</ul>
</nav>
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="../terminology/" class="md-nav__link">
<span class="md-ellipsis">
Terminology
</span>
</a>
</li>
Dimitrios Giannopoulos
committed
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#examine-if-the-rules-are-executed-successfully" class="md-nav__link">
<span class="md-ellipsis">
Examine if the rules are executed successfully
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#lcm-rules-and-osom-service-orchestration" class="md-nav__link">
<span class="md-ellipsis">
LCM Rules and OSOM Service Orchestration
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#define-rules" class="md-nav__link">
<span class="md-ellipsis">
Define rules
</span>
</a>
<nav class="md-nav" aria-label="Define rules">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#definition-language" class="md-nav__link">
<span class="md-ellipsis">
Definition language
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
</ul>
</nav>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#the-blocks-library" class="md-nav__link">
<span class="md-ellipsis">
The blocks library
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#examples-of-rules" class="md-nav__link">
<span class="md-ellipsis">
Examples of Rules
</span>
</a>
<nav class="md-nav" aria-label="Examples of Rules">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#define-variables-according-to-cases" class="md-nav__link">
<span class="md-ellipsis">
define variables according to cases
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#define-complex-osm-configs-for-day-0" class="md-nav__link">
<span class="md-ellipsis">
Define complex OSM configs for DAY 0
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
<li class="md-nav__item">
<a href="#define-and-instantiate-different-services-according-to-service-order-request" class="md-nav__link">
<span class="md-ellipsis">
Define and instantiate different services according to Service Order request
</span>
</a>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
<li class="md-nav__item">
<a href="#call-an-external-restful-service" class="md-nav__link">
<span class="md-ellipsis">
Call an external RESTful service
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#create-new-service-orders" class="md-nav__link">
<span class="md-ellipsis">
Create New Service Orders
</span>
</a>
</li>
</ul>
</nav>
Dimitrios Giannopoulos
committed
</li>
Dimitrios Giannopoulos
committed
</ul>
</nav>
</div>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
Dimitrios Giannopoulos
committed
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
<h1 id="lifecycle-management-lcm-rules">Lifecycle Management (LCM) Rules</h1>
<ul>
<li>NOTE: This is a prototype/experimental feature. So issues might raise during operation</li>
</ul>
<p>LCM Rules are used for defining complex conditions and actions during the lifecycle of a service. In Openslice there are four types of rules defined:</p>
<ul>
<li>PRE_PROVISION</li>
<li>CREATION</li>
<li>AFTER_ACTIVATION </li>
<li>SUPERVISION </li>
<li>AFTER_DEACTIVATION </li>
</ul>
<p>The following figure displays the different phases that the rules are performed, during the lifecycle of a Network Slice Instance.</p>
<p><a href="../images/lcm/lcmfig1.png"><img alt="Rules in NSI" src="../images/lcm/lcmfig1.png" /></a></p>
<ul>
<li>PRE_PROVISION rules: Run only once just before creating a service with a given priority. </li>
<li>CREATION rules: Run while the referenced service dependencies of a service are created</li>
<li>AFTER_ACTIVATION rules: Run only once just after a service get the ACTIVE state</li>
<li>SUPERVISION rules: Run when a characteristic of a service is changed and the service is in the ACTIVE state </li>
<li>AFTER_DEACTIVATION rules: Run only once just after a service get the INACTIVE/TERMINATED state </li>
</ul>
<p>In general the rules allow to perform many actions during service LCM. Thes are some examples:</p>
<ul>
<li>Modify service specification parameters before the instantiation of a service (or during operation) based on other dependencies. These parameters might be part of other services already included in Service order</li>
<li>Translate GST/NEST parameter values to other values passed later to NFVO for instantiation or control</li>
<li>Define complex OSM Configs based on other dependencies and passing variables</li>
<li>Define any dependencies when creating the referenced services</li>
<li>Dynamically include new service dependencies</li>
<li>Create new service orders so include dynamically other services</li>
<li>Call external (RESTful) services (via http(s), define payload, examine response)</li>
</ul>
<h2 id="examine-if-the-rules-are-executed-successfully">Examine if the rules are executed successfully</h2>
<p>Rules are transformed automatically to executable code (currently is Java). If a rule is performed successfully or has any issues (e.g. unexpected syntax errors or exceptions) appear in OSOM logfiles and also tey are attached as Notes to the running Service.</p>
<h2 id="lcm-rules-and-osom-service-orchestration">LCM Rules and OSOM Service Orchestration</h2>
<p>OSOM is the responsible service for executing the rules on a specific phase. The following image explains the design in the BPMN phases:</p>
<p><a href="../images/lcm/lcmfig1_osom.png"><img alt="Rules" src="../images/lcm/lcmfig1_osom.png" /></a></p>
<h2 id="define-rules">Define rules</h2>
<p>Rules are defined when designing a Service Spec. Here is an example of a list of rules:</p>
<p><a href="../images/lcm/lcmfig2.png"><img alt="lcmrules" src="../images/lcm/lcmfig2.png" /></a></p>
<p>Execution order of rules on a specific phase is random</p>
<ul>
<li>NOTE: There is a priority field. The lower the number the highest the priority of rule execution. For example Rule with priority 0 will run before rule with priority 1.</li>
</ul>
<h3 id="definition-language">Definition language</h3>
<ul>
<li>The visual language that Openslice used is based on Google's Blockly (see https://developers.google.com/blockly)</li>
<li>The blockly graph is automatically translated to Java internally and then dynamically executed during orchestration phases.</li>
</ul>
<p>The following figure is an example of such a rule design. The rule for example will run in PRE_PROVISION phase:</p>
<p><a href="../images/lcm/lcmfig3.png"><img alt="lcmrules" src="../images/lcm/lcmfig3.png" /></a></p>
<ul>
<li>The goal of the above rule is to properly define a variable AreaCodes given the chosen AreaOfService from a Service Order.</li>
<li>On the right side the user can define some rule properties or observe the underlying generated java code.</li>
</ul>
<h2 id="the-blocks-library">The blocks library</h2>
<p>The following images describe some blocks found in the library.</p>
<p>Blockly has syntax rules. It helps with colours to define them. </p>
<p>So for example a parameter that is a Number cannot be "glued" with a String. Will need some conversion first</p>
<p><a href="../images/lcm/lcmfig4.png"><img alt="lcmrules" src="../images/lcm/lcmfig4.png" /></a>
<a href="../images/lcm/lcmfig5.png"><img alt="lcmrules" src="../images/lcm/lcmfig5.png" /></a>
<a href="../images/lcm/lcmfig6.png"><img alt="lcmrules" src="../images/lcm/lcmfig6.png" /></a>
<a href="../images/lcm/lcmfig7.png"><img alt="lcmrules" src="../images/lcm/lcmfig7.png" /></a>
<a href="../images/lcm/lcmfig8.png"><img alt="lcmrules" src="../images/lcm/lcmfig8.png" /></a></p>
<h2 id="examples-of-rules">Examples of Rules</h2>
<p>The following images provide some examples of rules.</p>
<h3 id="define-variables-according-to-cases">define variables according to cases</h3>
<p>In the following example we :</p>
<ul>
<li>define a String variable. </li>
<li>Then according to the Area of Service selected from the Service Order of the Service Specification we need to define it properly.</li>
<li>We output the value to the OSOM Log</li>
<li>Define dynamically the value of another parameter (This is fictional) and then do some other condition check</li>
</ul>
<p>The strAreaCodes could be passed then e.g. to NFVO for instantiation of services to these cells.</p>
<p><a href="../images/lcm/lcmfig9.png"><img alt="lcmrules" src="../images/lcm/lcmfig9.png" /></a></p>
<h3 id="define-complex-osm-configs-for-day-0">Define complex OSM configs for DAY 0</h3>
<p>The following displays some complex examples for defining the parameters to pass to the NFV. In this case is OSM.</p>
<ul>
<li>
<p>NOTE: The OSM_CONFIG characteristic of a service is the one that it is used in orchestration to instantiate NS from OSM</p>
</li>
<li>
<p>check the variable strTargetsParam. It is passed to the variable strOsmConfig3 which is executed if the Number of Cameras is more than 100. </p>
</li>
<li>if the Video quality requested is 3, then the Maximum Namber of camers will be 8. Check the OSM detailed configuration block and its syntax.</li>
<li>if the Video quality requested is 2, we use a simpler OSM Config block to configure the parameter OSM_CONFIG. We just injected a json text ( watch the Escape of the string for the Quotes!)</li>
<li>if the Video quality requested is 1, again we use a simpler OSM Config block to configure the parameter OSM_CONFIG. We use as injected json text a variable constructed later</li>
</ul>
<p><a href="../images/lcm/lcmfig10.png"><img alt="lcmrules" src="../images/lcm/lcmfig10.png" /></a></p>
<h3 id="define-and-instantiate-different-services-according-to-service-order-request">Define and instantiate different services according to Service Order request</h3>
<p>In the following example we would like to offer a service either as Platinum, Gold or Silver. Depending on the selection we need to instantiate different services.</p>
<p>There are different ways to accomplish this:</p>
<ul>
<li>create dynamically New Service Orders of RFSs with equivalent quality of Services</li>
<li>change for example the VIMs that you deploy the NS</li>
<li>change the NSD (that is use different VNFs)</li>
</ul>
<p>The following image displays for example the latter case.</p>
<p><a href="../images/lcm/lcmfig11.png"><img alt="lcmrules" src="../images/lcm/lcmfig11.png" /></a></p>
<h3 id="call-an-external-restful-service">Call an external RESTful service</h3>
<p>This is useful in cases for example of alarms , external logging, calling other services e.g. email or even a complex algorithm written in other language e.g. call an external service and get a result. (service e.g. a Python service)</p>
<p><a href="../images/lcm/lcmfig12.png"><img alt="lcmrules" src="../images/lcm/lcmfig12.png" /></a></p>
<p><a href="../images/lcm/lcmfig13.png"><img alt="lcmrules" src="../images/lcm/lcmfig13.png" /></a></p>
<h3 id="create-new-service-orders">Create New Service Orders</h3>
<p>The following example calls to Order a New Service Specification with specific Parameter Values</p>
Dimitrios Giannopoulos
committed
<p><a href="../images/lcm/lcmfig14.png"><img alt="lcmrules" src="../images/lcm/lcmfig14.png" /></a></p>
Dimitrios Giannopoulos
committed
Dimitrios Giannopoulos
committed
</article>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Dimitrios Giannopoulos
committed
Copyright © 2024 ETSI OSL
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
Dimitrios Giannopoulos
committed
</div>
Dimitrios Giannopoulos
committed
<div class="md-social">
<a href="https://osl.etsi.org/" target="_blank" rel="noopener" title="osl.etsi.org" class="md-social__link">
Dimitrios Giannopoulos
committed
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64h185.4c2.2 20.4 3.3 41.8 3.3 64zm28.8-64h123.1c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6 78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7 10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5 11.6 26 20.9 58.2 27 94.7zm-209 0H18.6c30-74.1 93.6-130.9 172-151.6-25.5 34.2-45.3 87.7-55.3 151.6zM8.1 192h123.1c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zm186.6 254.6c-11.6-26-20.9-58.2-27-94.6h176.6c-6.1 36.4-15.5 68.6-27 94.6-10.5 23.6-22.2 40.7-33.5 51.5-11.2 10.7-20.5 13.9-27.8 13.9s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6-78.4-20.7-142-77.5-172-151.6h116.7zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6 25.5-34.2 45.2-87.7 55.3-151.6h116.6z"/></svg>
Dimitrios Giannopoulos
committed
</a>
<a href="https://labs.etsi.org/rep/osl" target="_blank" rel="noopener" title="labs.etsi.org" class="md-social__link">
Dimitrios Giannopoulos
committed
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m503.5 204.6-.7-1.8-69.7-181.78c-1.4-3.57-3.9-6.59-7.2-8.64-2.4-1.55-5.1-2.515-8-2.81-2.9-.295-5.7.083-8.4 1.11-2.7 1.02-5.1 2.66-7.1 4.78-1.9 2.12-3.3 4.67-4.1 7.44l-47 144H160.8l-47.1-144c-.8-2.77-2.2-5.31-4.1-7.43-2-2.12-4.4-3.75-7.1-4.77a18.1 18.1 0 0 0-8.38-1.113 18.4 18.4 0 0 0-8.04 2.793 18.09 18.09 0 0 0-7.16 8.64L9.267 202.8l-.724 1.8a129.57 129.57 0 0 0-3.52 82c7.747 26.9 24.047 50.7 46.447 67.6l.27.2.59.4 105.97 79.5 52.6 39.7 32 24.2c3.7 1.9 8.3 4.3 13 4.3 4.7 0 9.3-2.4 13-4.3l32-24.2 52.6-39.7 106.7-79.9.3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z"/></svg>
Dimitrios Giannopoulos
committed
</a>
<a href="https://www.linkedin.com/company/openslice/" target="_blank" rel="noopener" title="www.linkedin.com" class="md-social__link">
Dimitrios Giannopoulos
committed
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/></svg>
Dimitrios Giannopoulos
committed
</a>
<a href="https://twitter.com/OpensliceOSS" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
Dimitrios Giannopoulos
committed
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9L389.2 48zm-24.8 373.8h39.1L151.1 88h-42l255.3 333.8z"/></svg>
Dimitrios Giannopoulos
committed
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<div class="md-progress" data-md-component="progress" role="progressbar"></div>
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.instant", "navigation.instant.progress", "navigation.top", "navigation.footer", "navigation.path", "search", "search.highlight"], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
Dimitrios Giannopoulos
committed
<script src="../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
Dimitrios Giannopoulos
committed
</body>
</html>