• Ei tuloksia

Tulevaisuudessa päivitettävää

3GPP-standardeja päivitetään säännöllisesti (12), ja joidenkin komentojen para-metrit muuttuvat uusien 3GPP-standardien tuomien muutoksien takia. Automaa-tiokomponenttia saatetaan tämän takia joutua päivittämään tulevaisuudessa.

E500:n ohjelmistoihin saattaa tulla myös päivityksiä tulevaisuudessa, jolloin joi-denkin komentojen parametrisaatio saattaa muuttua. Tässä tapauksessa pitää tarkistaa, halutaanko lisätä mahdollisuus ajaa testit myös E500:n vanhalla ohjel-mistoversiolla, jolloin pitäisi kartoittaa funktiot eri E500-ohjelmistoversiolle. Toi-sena vaihtoehtona voidaan päivittää kaikki komennot ja testiajot käyttämään uutta ohjelmistoversiota.

Oli päivityksen tarve sitten mikä tahansa, on komentosarjojen päivittäminen kui-tenkin helpompaa kuin aiemmassa toteutuksessa. Kooditoteutukseen laitetut muutokset tulevat jokaiseen testiajoon heti mukaan, eikä muutoksia tarvitse täl-löin käsin lisätä erikseen jokaiseen komentosarjaan. Mikäli muutoksia pitää tehdä vain joihinkin komentosarjoihin, voi tämänkin tehdä uudessa koodillisessa toteu-tuksessa käyttämällä Pythonin ehtolauseita.

Mikäli RF-kytkennät muuttuvat CI-ympäristössä, pitää useamman solun tapauk-sien logiikkaa muuttaa. Tällä hetkellä näissä tapauksissa RF-kytkin asetetaan aluksi ensimmäisen solun antenneihin, jonka jälkeen tämän solun arvot testa-taan. Tämän jälkeen RF-kytkimen kytkennät vaihdettaisiin seuraavalle testatta-valle solulle. Mikäli RF-kytkentäkapasiteettia saadaan lisättyä tulevaisuudessa niin, että solut voidaan yhdistää samanaikaisesti, tämä logiikka voidaan poistaa.

Näissä testitapauksissa oli myös valmiiksi tehty logiikka poikkeustilannetta var-ten, jolloin BLER-arvo saa olla yli 0 %. Esimerkiksi kahden solun tapauksessa vain puolet datasta voidaan lähettää testattaessa vain ensimmäistä solua, ja täl-löin BLER on 50 %.

20

4 TESTAUS JA INTEGRAATIO CI-YMPÄRISTÖÖN

Aluksi testauksen pystyi suorittamaan vertaamalla automaatiokomponentin pa-lauttamaa komentolistaa valmiisiin komentosarjoihin. Koska automaatiokom-ponentin palauttaman komentolistan parametrit oli asetettu vastaamaan käytetyn radiotukiasemakonfiguraation parametreja, pystyttiin niitä suoraan vertaamaan saman tukiasemakonfiguraation valmiiseen komentosarjaan.

Testaus voitiin aloittaa oikeissa CI-ympäristöissä, kun automaatiokomponentti saatiin siihen pisteeseen, että se palauttaa jokaisen tarvittavan komennon E500:n parametrisaatioon. CI-kirjastoissa oli olemassa toteutus, jolla pystyttiin suorittamaan yksittäisiä TMA-komentoja. Käytin tätä toteutusta automaatiokom-ponentin palauttamien komentojen suoritusta varten.

Valmiissa yksittäisten komentojen suoritukseen tehdyssä toteutuksessa kuitenkin ilmeni ongelmia. Komennot suoritettiin käyttäen Pythonin telnetlib-kirjastoa, joka tekee Telnet-yhteyden E500:ta ohjaavalle tietokoneelle. TMA-ohjelma on käyn-nistetty E500:n ohjaustietokoneella, jolta lähetetään komentoja etänä Telnet-yh-teyden kautta Microsoftin PsExec-ohjelmalla (13).

Telnetlib-kirjastosta käytettävää expect-funktio ottaa parametriksi odotetun pa-luuarvon suoritettavasta komennosta (14). Jos tämän parametrin jätti tyhjäksi, niin CI-testiajossa TMA-komennot suoritettiin liian nopeasti, eikä aiempia komen-toja ollut ehditty suorittaa. Tämän takia komentosarjan suoritus sekä testiajo epä-onnistuivat.

Testasin myös testiajon suorittamista niin, että expect-funktion parametrina oli

”Ok”. Komennot suoritettiin ja expect-funktion avulla jäätiin odottamaan, että E500 palautti tämän kyseisen merkkijonon. Tällä ”Ok”-arvolla testiajo meni läpi, sillä jokainen suoritettu TMA-komento palauttaa tämän onnistuessaan.

Tässä toteutuksessa kuitenkin ilmeni ongelmia, sillä telnetlib-kirjaston expect-funktiolla TMA-komennon paluuarvosta palautetaan vain tähän ”Ok”-merkkijo-noon asti, vaikka TMA-komentojen merkkejä olisi enemmän vielä kyseisen merk-kijonon jälkeen. Paluuarvojen loput merkit tulevat seuraavan komennon paluuar-von alussa. Tälle ongelmalle ei taida olla järkevää ratkaisua. Ainoa hyvä ratkaisu olisi, jos jokaiselle komennolle tiedettäisiin valmiiksi odotettu paluuarvo koko-naan. Ongelma ei vaikuta automaatiokomponentin toiminnallisuuteen, ainoas-taan luettavuuteen, joten päätin olla käyttämättä aikaani sen korjaukseen. Jos tulevaisuudessa tulee tarve korjata tämä ongelma, pitäisi tehdä kokonaan uusi toteutus komentojen suorituksesta kenties SSH-yhteyttä käyttäen.

Joissakin TMA:n nollaavissa TMA-komennoissa tämä ”Ok”-merkkijono palautet-tiin vasta todella pitkän ajan päästä, jonka seurauksena testiajon suoritus piden-tyy. Vanhassa toteutuksessa koko komentosarjan suorituksessa kesti alle yksi sekunti, mutta nyt näihin komentoihin pitää jäädä odottamaan paluuarvoa jopa 30 sekunniksi. Komentojen dokumentaatiossa kerrottiin, että TMA:n nollaavien komentojen suorituksissa saattaa kestää jopa 60 sekuntia. Jostakin syystä aiem-massa toteutuksessa, jossa nykyisestä poiketen koko komentosarja suoritettiin kerrallaan, näiden komentojen suorituksessa ei kestänyt aikaa. En tiedä, mistä tämä voisi johtua, mutta tähän väliin en myöskään perehdy asiaan tarkemmin.

Vaikka komentosarjan suoritus on hitaampi verrattuna aiempaan toteutukseen, aiheutunut hidastus on kuitenkin koko CI-testiajon pituuteen verrattuna merkityk-setön, minkä takia tämäkin korjataan tulevaisuudessa, mikäli korjaukselle ilme-nee tarvetta.

Useamman solun testitapauksia varten oli tehty toteutus, jossa yksi solu testattiin ja RF-kytkimen avulla kytkennät vaihdettiin toisen solun antenneille, jolloin tämä-kin solu voidaan testata. Tämä toteutus tarvittiin, koska nykyisen CI-ympäristön RF-kytkentäkapasiteetti on rajoitettu. Tällaisia testitapauksia varten automaatio-komponenttiin piti lisätä logiikka, jolla komentosarja parametrisoidaan vain jonkin tietyn solun parametrien mukaan. Tämän logiikan lisäämisen jälkeen pystyttiin nämäkin radiotukiasemakonfiguraatiot testaamaan onnistuneesti automaatio-komponenttia käyttäen nykyisessä CI-ympäristössä.

22

Piti myös varmistaa, että E500-testiajon komentojen epäonnistuessa testiajo käyttäytyy oikein. Mikäli valmiissa komentojen suoritustoteutuksessa tätä ”Ok”-arvoa ei löytynyt paluuarvosta, komentolistan suoritus kuitenkin jatkui normaalisti.

Jos esimerkiksi solun parametrit menivät väärin, eivät loputkaan komennot voisi suoriutua oikein, joten lopulta ne aikakatkaistaan. Tämän tilanteen korjaukseksi lisäsin logiikan, jolla aikakatkaisun tapahtuessa komentojen suoritustoteutus nos-taa poikkeuksen (15), jossa palautenos-taan myös kaikki merkit, joita Telnet-yhteyden kautta on tullut.

5 YHTEENVETO

Opinnäytetyössä oli tarkoituksena saada automatisoitua aiemmin manuaalisesti tehtävä työ. E500:ta ohjaavien komentosarjojen tekeminen manuaalisesti oli oma urakkansa, mutta myös ongelmatilanteissa valmiiden komentosarjojen ongelma- ja virheenkorjaustilanteissa saattoi kestää jopa useita viikkoja.

Valmiit komentosarjat olivat luettavuudeltaan erittäin epäselviä, mikä hidasti työn-tekoa. Komentojen parametrit oli laitettu komennon loppuun ilman tarkempaa do-kumentaatiota siitä, mikä arvo vastaa mitäkin parametria radiotukiaseman puo-lelta. Tämän takia ongelmatilanteissa piti lähes poikkeuksetta lukea komentojen dokumentaatiosta, jotta selvisi, mitä arvoa mikäkin parametri vastaa.

Automaattisessa toteutuksessa sen sijaan pystytään katsomaan koodista suo-raan se, mitä arvoa tukiasemalla jokainen parametri vastaa. Koodillinen toteutus myös helpottaa muutoksien tekoa, sillä muutoksia pystytään tekemään automaa-tiokomponenttiin, eikä tarvitse käydä lisäämässä muutoksia manuaalisesti jokai-seen olemassa olevaan komentosarjaan.

Uudessa toteutuksessa komentojen suoritusta varten tehty toteutus oli myös pa-rempi kuin aiemmassa toteutuksessa. Aiemmassa toteutuksessa koko komento-sarja suoritettiin kerrallaan, jonka takia suorituksesta saatiin vain yksi paluuarvo.

Uudessa toteutuksessa sen sijaan saadaan palautettua jokaiselta suoritettavalta komennolta paluuarvo, kun taas aiemmassa toteutuksessa näitä paluuarvoja ei voinut saada mitenkään. Jos nämä paluuarvot tarvittiin virheenkorjaustilannetta varten, piti odottaa, että CI-ympäristössä ei ollut meneillään mitään testiajoja, jotta CI:ssä käytetty RF-kytkin olisi vapaana. Tämän jälkeen piti suorittaa testiajo, jossa radiotukiasema konfiguroidaan ja RF-kytkin asetetaan oikeaan asentoon, jonka jälkeen komentosarja piti käydä suorittamassa käsin.

Automaatiokomponentti saatiin onnistuneesti tehtyä valmiiksi ja lisättyä mukaan CI-ympäristön testiajoihin. Automaatiokomponentin avulla uusien testitapauksien

24

ja radiotukiasemien L1-puhelun konfigurointi ja ongelmanratkaisu nopeutuu ja helpottuu huomattavasti sekä sen avulla radiotukiasemien sekä E500:n käyttö-aste kasvaa.

Automaatiokomponentilla voidaan myös vähentää manuaalisessa testauksessa tarvittavan työn määrää. Jos joku haluaisi testata L1-puhelun testitapauksia ma-nuaalisesti, voidaan automaatiokomponenttia myös ajaa itsenäisesti muusta CI-ympäristöstä, ja tällöin saadaan komentosarja palautettua manuaaliseen testauk-seen.

Ainoa uuteen automatisoituun toteutukseen jäävä puute oli komentojen suorituk-sessa käytetyn Telnet-yhteyden aiheuttama paluuarvojen huono muotoilu. Sen seurauksena komennoista saatavien paluuarvojen luettavuus huononee, sillä pa-luuarvot aina katkaistaan keskeltä. Tähän ratkaisuna olisi yrittää saada komennot suoritettua jonkin modernimman yhteystyypin kautta, kuten SSH:n, sillä siinä on valmiina logiikka, jolla saadaan koko paluuarvo helposti palautettua. Tätä puu-tetta ei opinnäytetyössä enää korjattu, sillä se ei vaikuta toiminnallisuuteen, aino-astaan paluuarvojen luettavuuteen.

LÄHTEET

1. Whitney, Lance 2020. 5G smartphone shipments forecast to grow by more than 1,500% this year. TechRepublic. Saatavissa: https://www.techrepub- lic.com/article/5g-smartphone-shipments-forecast-to-grow-by-more-than-1500-this-year/. Hakupäivä 28.10.2020.

2. Patil, Hemant – Price, Gareth 2020. CI/CD and CD/D: continuous software delivery explained. Ericsson. Saatavissa:

https://www.erics- son.com/en/blog/2020/9/cicd-and-cdd-continuous-software-delivery-explai-ned. Hakupäivä 28.10.2020.

3. Stüttgen, Heinrich 2015. Network Softwarization and Virtualization. NEC Corporation. Saatavissa: http://www.5gsummit.org/berlin/docs/slides/Hein-rich-Stuttgen.pdf. Hakupäivä 12.11.2020

4. E500 data center cabinet product brief. Viavi 2018. Saatavissa:

https://www.viavisolutions.com/en-us/literature/e500-data-center-cabinet-brochure-en.pdf. Hakupäivä 21.10.2020.

5. Akhundov, Ziya. Block Error Rate in LTE. Telecompedia. Saatavissa:

https://telecompedia.net/block-error-rate-in-lte/. Hakupäivä 29.10.2020.

6. Data structures. Python Software Foudation. Saatavissa: https://docs.pyt-hon.org/3/tutorial/datastructures.html. Hakupäivä 28.10.2020.

7. 5G/NR SLIV. ShareTechnote. Saatavissa: https://www.sharetech-note.com/html/5G/5G_SLIV.html. Hakupäivä 6.11.2020

8. Wannstrom, Jeanette 2013.Carrier Aggregation explained. 3GPP. Saata-vissa:

https://www.3gpp.org/technologies/keywords-acronyms/101-carrier-26

aggregation-explained. Hakupäivä 30.10.2020

9. Yap, How-Siang 2018. Understanding 5G and IoT RF Systems with Off-the-Shelf Components. Microwaves & RF. Saatavissa:

https://www.mwrf.com/technologies/components/article/21848922/unders-tanding-5g-and-iot-rf-systems-with-offtheshelf-components. Hakupäivä 29.10.2020.

10. 5G/NR Scheduling. ShareTechnote. Saatavissa: http://www.sharetech-note.com/html/5G/5G_Scheduling.html. Hakupäivä 29.10.2020.

11. Chelikani, Naveen 2020. 5G-NR K0, K1 & K2 for Time Domain DL & UL Re-source allocation. LinkedIn. Saatavissa: https://www.linkedin.com/pulse/5g-nr-k0k1-k2-time-domain-dl-ul-resource-allocation-naveen-chelikani. Haku-päivä 29.10.2020

12. 3GPP Specification Release Numbers. Electronics Notes. Saatavissa:

https://www.electronics-notes.com/articles/connectivity/3gpp/standards-re-leases.php. Hakupäivä 30.10.2020

13. Fisher, Tim 2020. PsExec: What It Is and How to Use It. Lifewire. Saata-vissa: https://www.lifewire.com/psexec-4587631. Hakupäivä 24.11.2020

14. telnetlib – Telnet Client. Python Software Foundation. Saatavissa:

https://docs.python.org/3/library/telnetlib.html#telnetlib.Telnet.expect. Haku-päivä 5.11.2020

15. Built-in Exception. Python Software Foundation. Saatavissa:

https://docs.python.org/3/library/exceptions.html#Exception. hakupäivä 24.11.2020