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 3 years ago: tdig liked Improve openvswitch+libvirt+Xen
  • over 3 years ago: zzhou liked Improve openvswitch+libvirt+Xen
  • over 3 years ago: xbem joined Improve openvswitch+libvirt+Xen
  • over 3 years ago: jfehlig added keyword "c" to Improve openvswitch+libvirt+Xen
  • over 3 years ago: jfehlig added keyword "openvswitch" to Improve openvswitch+libvirt+Xen
  • Show History

    Comments

    • jfehlig
      over 3 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 3 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

    netlink interface for ethtool by mkubecek

    There seems to be an overall consensus that the...


    ethtool ops for netdevsim by mkubecek

    This can be seen as a subproject of [ethtool ne...