openvswitch is used by cloud infrastructure (e.g. OpenStack) and software defined networking stacks, often in conjunction with KVM and Xen compute resources. When creating workloads on KVM compute resources, orchestration services can specify the openvswitch interfaceid and port-profile of the workload's virtual interface(s). E.g. orchestration can create workload configuration containing

<interface type='bridge'> <source bridge='ovsbr'/> <virtualport type='openvswitch'> <parameters profileid='menial' interfaceid='09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f'/> </virtualport> </interface>

libvirt will connect this virtual interface to an openvswitch bridge named 'ovsbr', which is uniquely identified with openvswitch via interfaceid. Additionally, the 'menial' port profile will be sent to openvswitch as the interface's "port-profile".

Xen, libvirt, and openvswitch do not enjoy the same level of integration. This project aims to improve the integration, allowing orchestration services to use Xen compute resources similar to KVM.

Looking for mad skills in:

virtualization openvswitch c

This project is part of:

Hack Week 14

Activity

  • over 2 years ago: tdig liked Improve openvswitch+libvirt+Xen
  • over 2 years ago: zzhou liked Improve openvswitch+libvirt+Xen
  • over 2 years ago: xbem joined Improve openvswitch+libvirt+Xen
  • over 2 years ago: jfehlig added keyword "c" to Improve openvswitch+libvirt+Xen
  • over 2 years ago: jfehlig added keyword "openvswitch" to Improve openvswitch+libvirt+Xen
  • Show History

    Comments

    • jfehlig
      over 2 years ago by jfehlig | Reply

      My hackweek had several interruptions, including and L3 bug, SLE12 SP2 beta4 preparations, and a bad crash on my bike! But nonetheless, I was able to get libvirt+Xen+openvswitch working well together, including support for VLAN tags and trunking. An example of a trunking interface could be

      <interface type='bridge'>
        <vlan>
          <tag id='42'/>
          <tag id='43'/>
        </vlan>
        <source bridge='ovsbr0'/>
        <mac address='00![add-emoji](https://assets-cdn.github.com/images/icons/emoji/16.png)3e![add-emoji](https://assets-cdn.github.com/images/icons/emoji/7a.png)35:ce'/>
        <virtualport type='openvswitch'/>
        <model type='netfront'/>
      </interface>
      

    • jfehlig
      over 2 years ago by jfehlig | Reply

      To expand a bit more on the above, starting a VM with such config will add the vif to an openvswitch port and configure the port with ovs-vsctl. E.g. after starting the VM

      ovs-vsctl show<br> 406871f3-2fb6-45a7-8fcd-30f1f714ffe1<br> Bridge "ovsbr0"<br> Port "eth1"<br> Interface "eth1"<br> Port "vif6.0"<br> trunks: [42, 43]<br> Interface "vif6.0"<br> Port "ovsbr0"<br> Interface "ovsbr0"<br> type: internal<br> ovs_version: "2.5.0"<br>

    Similar Projects

    Boot system from Ceph RADOS Block Device by dmdiss

    Write a new Dracut module which adds support fo...


    Check p2v tool (guestfs) by aginies

    Test the latest release of guesfs tools, and ch...


    Easily Deploy an HA cluster in Virtual Machines by aginies

    GOAL

    The goal was to easily and quic...


    Make ruby-ui usable for YaST by dmacvicar

    ruby-ui was a hackweek project with jreidinger ...


    Shell completion by federico3

    Implement [shellcomp](https://shellcomp.github....