This repository has been archived on 2025-03-20. You can view files and clone it, but cannot push or open issues or pull requests.
sonic-buildimage/platform/vs
Danny Allen 9297d8ee47
[dvs] Start portsyncd before orchagent for docker-sonic-vs container ()
Swap order of orchagent and portsyncd in start.sh and fix priorities

Many docker virtual switch tests are failing at the moment because orchagent never finishes initializing. After doing some searching I figured out that Ethernet24 is never published to State DB, which is reminiscent of 

Signed-off-by: Danny Allen <daall@microsoft.com>
2020-08-11 08:52:06 -07:00
..
docker-sonic-vs [dvs] Start portsyncd before orchagent for docker-sonic-vs container () 2020-08-11 08:52:06 -07:00
docker-syncd-vs [dockers] Update critical_processes file syntax () 2020-06-25 21:18:21 -07:00
sonic-version [vs]: build sonic vs kvm image () 2018-11-20 22:32:40 -08:00
tests Revert "DPB Breakout Cli Test with proper setup ()" 2020-08-05 23:44:00 +00:00
create_vnet.sh [vs]: dynamically create front panel ports in vs docker () 2020-04-30 12:50:59 -07:00
docker-sonic-vs.dep [build]: support for DPKG local caching () 2020-03-11 20:04:52 -07:00
docker-sonic-vs.mk [Python] Migrate applications/scripts to import sonic-py-common package () 2020-08-03 11:43:12 -07:00
docker-syncd-vs.dep [build]: support for DPKG local caching () 2020-03-11 20:04:52 -07:00
docker-syncd-vs.mk [docker-{sonic,syncd}-vs]: upgrade {sonic,syncd}-vs docker to stretch () 2019-05-06 07:19:36 -07:00
kvm-image.dep [build]: support for DPKG local caching () 2020-03-11 20:04:52 -07:00
kvm-image.mk [build]: Move Systemd service start to systemd generator () 2019-07-29 15:52:15 -07:00
one-image.dep [build]: support for DPKG local caching () 2020-03-11 20:04:52 -07:00
one-image.mk [vsimage]: install systemd generator into one image 2020-04-17 04:51:51 +00:00
onie.dep [build]: support for DPKG local caching () 2020-03-11 20:04:52 -07:00
onie.mk [vs]: build sonic vs kvm image () 2018-11-20 22:32:40 -08:00
platform.conf [vs]: build sonic vs kvm image () 2018-11-20 22:32:40 -08:00
raw-image.dep [vsraw]: build sonic-vs.raw image 2020-04-17 04:51:51 +00:00
raw-image.mk [vsraw]: build sonic-vs.raw image 2020-04-17 04:51:51 +00:00
README.gns3.md [vsimage]: Support for the creation of a GNS3 appliance file () 2019-10-07 07:16:11 -07:00
README.vsdocker.md [vs]: dynamically create front panel ports in vs docker () 2020-04-30 12:50:59 -07:00
README.vsvm.md [baseimage]: support building multi-asic component () 2020-01-26 13:56:42 -08:00
rules.dep [build]: support for DPKG local caching () 2020-03-11 20:04:52 -07:00
rules.mk [vsraw]: build sonic-vs.raw image 2020-04-17 04:51:51 +00:00
sonic_multiasic.xml Multi-ASIC implementation () 2020-03-31 10:06:19 -07:00
sonic-gns3a.sh [kvmimae]: Update sonic-gns3a.sh () 2020-06-04 13:29:36 -07:00
sonic-version.dep [build]: support for DPKG local caching () 2020-03-11 20:04:52 -07:00
sonic-version.mk [vs]: build sonic vs kvm image () 2018-11-20 22:32:40 -08:00
sonic.xml [vs]: sync changes to disk and add e1000 driver to sonic vm () 2018-11-22 12:09:21 -08:00
syncd-vs.dep [build]: support for DPKG local caching () 2020-03-11 20:04:52 -07:00
syncd-vs.mk [docker-orchagent]: make build depends only on sairedis package () 2020-07-12 18:08:51 +00:00

HOWTO Use Virtual Switch (VM)

  1. Install libvirt, kvm, qemu
sudo apt-get install libvirt-clients qemu-kvm libvirt-bin
  1. Create SONiC VM for single ASIC HWSKU
$ sudo virsh
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh # 
virsh # create sonic.xml
Domain sonic created from sonic.xml

virsh # 
  1. Create SONiC VM for multi-ASIC HWSKU Update sonic_multiasic.xml with the external interfaces required for HWSKU.
$ sudo virsh
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh #
virsh # create sonic_multiasic.xml 
Domain sonic created from sonic.xml

virsh #

Once booted up, create a file "asic.conf" with the content:
NUM_ASIC=<Number of asics>
under /usr/share/sonic/device/x86_64-kvm_x86_64-r0/
Also, create a "topology.sh" file which will simulate the internal
asic connectivity of the hardware under
/usr/share/sonic/device/x86_64-kvm_x86_64-r0/<HWSKU>
The HWSKU directory will have the required files like port_config.ini
for each ASIC.

Having done this, a new service "topology.service" will be started
during bootup which will invoke topology.sh script.

3. Access virtual switch:

    1. Connect SONiC VM via console
    ```
    $ telnet 127.0.0.1 7000
    ```
    
    OR

    2. Connect SONiC VM via SSH
        
        1. Connect via console (see 3.1 above)

        2. Request a new DHCP address
        ```
        sudo dhclient -v
        ```
        
        3. Connect via SSH
        ```
        $ ssh -p 3040 admin@127.0.0.1
        ```