---
# System prepended metadata

title: OpenSync Development Notes

---

# OpenSync Development Notes

---

:pencil: : Ralph Wang
:mailbox: : enhanceralph@gmail.com

---

## References

---

- [Plume Offical](https://www.plume.com/)
- [Plume Portal](https://portal.plume.com/home)
- [Github - OpenSync BCM Template](https://github.com/plume-design/opensync-vendor-bcm-template)
- [OpenSync 6.4 Wiki](https://opensync.atlassian.net/wiki/spaces/OCC/pages/40213741569/OpenSync+6.4)

---

## Project elements

---

- OpenSync 6.4 
    - An open source with the chip-set vendor overlay. Make a service on WiFi gateway or exntender for Plume cloud controller. 
    - Keywords for protocol
        - VLAN, WiFi, bridge, openvswitch
- FRV 3.7.1
    - Firmware release version
        - Automatical testbed for OSRT based on docker environment and python scripts.
- OSRT
    - OpenSync Reference Testbed
        - One server
            - RPi4
        - Two clients
            - Gigabytes Brix
        - DUT
            - Gateway / WiFI extender

---

## Key Development Process

---

- Get the OpenSync chipset overlay and patch from Plume. 
- Setup FRV / OSRT. 
- Apply private key and certification for  cloud service (Developing / Prodction) from Plume. 
- Fix the FRV testing bugs. 
- Get the certification. 


---

> For more detail information, needs the permission from Plume to get the detail documnetation. This only helps you to quick hand-on. 

---

## Public source code information

---

Start from the chip-set template first. You can get in more quickly. Please read the [ OpenSync rootdir](https://github.com/plume-design/opensync-vendor-bcm-template?tab=readme-ov-file#opensync-root-dir) section on Github first. So that you will have a image to get the source code and compile for it. For study, you can refer to OpenWRT with OpenSync first. 

---

## TERMS

---

OSRT - OpenSync Reference Testbed

USTB - Unified Standard Testbed

RPI - Raspberry Pi

Brix - Gigabyte BRIX GB-BACE-3160

PDU - Power Distribution Unit - remote power switch

FRV - Firmware Release Verification 

CRV - Cloud Release Verification

FUT - Functional Unit Testing

CXT - Customer Experience Testing

SEC - Security Testing

---

## allure report with nginx service

---

OSRT testing case will be based on FRV 3.7.1 test environment. The testing report is based on the Allure mechanism. Simply to say, we can use the CLI to generate the web based report. And if we have nginx, we can show the report on web browser by nginx web service.  

---

### nginx installation and configuration

---

#### Installation

```bash
sudo apt update
sudo apt install nginx -y
```

---

#### Configuration


 **/etc/nginx/sites-available/allure**
```bash
server {
    listen 80;
    # server_name your-domain.com;
    server_name _;

    root /var/www/html;
    # index index.html;
    autoindex on;  # Enables listing of folders

    disable_symlinks off;

}

```

:exclamation: For convinience, you can create the /var/html/www/reports this folder with yourself owneership. 


```bash
sudo mkdir -p /var/html/www/reports
sudo chown -R sw:sw /var/html/www/reports
```

#### enable configuration and restart service

---

```bash
cd /etc/nginx/sites-enabled
sudo ln -sf ../sites-available/allure
sudo systemctl restart nginx
```

---


### generate allure web page format report

After you enter FRV docker and ready for pset command. 

**single testing example command**

```bash
#!/bin/bash
CONFIG=PBL-6201_OSRT2_DEV
pytest --config=$CONFIG --alluredir=./report_result/ralph/test-01-osrt2.log ./tests/logpull/test_01_logpull.py
```

After testing is done, the testing result data will be located in test-01-osrt2. Then, key-in the following command for web based format report. 

```bash
cd report_result/ralph/
allure generate test-01-osrt2.log /var/html/www/reports/test-01-osrt2
```

---

### open report with browser

```bash
http://{nginx_server_ip}/reports/test-01-osrt2/index.html
```

---
