Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1519210 - RHOS 10 unable to implement ovs_extra params to ovs dpdk bond
Summary: RHOS 10 unable to implement ovs_extra params to ovs dpdk bond
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-heat-templates
Version: 10.0 (Newton)
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
: ---
Assignee: Emilien Macchi
QA Contact: Gurenko Alex
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-11-30 11:49 UTC by Maxim Babushkin
Modified: 2017-11-30 12:57 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-11-30 12:57:46 UTC


Attachments (Terms of Use)

Description Maxim Babushkin 2017-11-30 11:49:12 UTC
Description of problem:
RHOS 10 unable to implement ovs_extra params to ovs dpdk bond.

Version-Release number of selected component (if applicable):
RHOS 10
Puddle 2017-11-08.3

How reproducible:
Perform the ops dpdk deployment using the extra parameters for the ovs dpdk bond.

-
  type: ovs_user_bridge
  name: br-link0
  use_dhcp: false
  ovs_extra:
    -
      str_replace:
        template: set port br-link0 tag=_VLAN_TAG_
        params:
          _VLAN_TAG_: {get_param: TenantNetworkVlanID}
  addresses:
    -
      ip_netmask: {get_param: TenantIpSubnet}
  members:
    -
      type: ovs_dpdk_bond
      name: dpdkbond0
      mtu: 9000
      ovs_extra:
        - set interface $DEVICE options:n_rxq=2
        - set interface $DEVICE mtu_request=$MTU
      members:
        -
          type: ovs_dpdk_port
          name: dpdk0
          members:
            -
              type: interface
              name: nic4
        -
          type: ovs_dpdk_port
          name: dpdk1
          members:
            -
              type: interface
              name: nic5

Actual results:
Nov 30 02:51:27 compute-0 os-collect-config: [2017/11/30 02:51:27 AM] [INFO] running ifup on interface: dpdkbond0
Nov 30 02:51:27 compute-0 ovs-vsctl: ovs|00001|vsctl|INFO|Called as ovs-vsctl -t 10 -- --if-exists del-port br-link0 dpdkbond0 -- add-bond br-link0 dpdkbond0 dpdk0 dpdk1 -- set interface dpdk0 type=dpdk -- set interface dpdk1 type=dpdk -- set interface dpdkbond0 options:n_rxq=2 -- set interface dpdkbond0 mtu_request=9000 -- set interface dpdkbond0 options:n_rxq=2 -- set interface dpdkbond0 mtu_request=9000
Nov 30 02:51:27 compute-0 ovs-vsctl: ovs|00002|db_ctl_base|ERR|no row "dpdkbond0" in table Interface
Nov 30 02:51:27 compute-0 os-collect-config: Traceback (most recent call last):
Nov 30 02:51:27 compute-0 os-collect-config: File "/usr/bin/os-net-config", line 10, in <module>
Nov 30 02:51:27 compute-0 os-collect-config: sys.exit(main())
Nov 30 02:51:27 compute-0 os-collect-config: File "/usr/lib/python2.7/site-packages/os_net_config/cli.py", line 187, in main
Nov 30 02:51:27 compute-0 os-collect-config: activate=not opts.no_activate)
Nov 30 02:51:27 compute-0 os-collect-config: File "/usr/lib/python2.7/site-packages/os_net_config/impl_ifcfg.py", line 972, in apply
Nov 30 02:51:27 compute-0 os-collect-config: self.ifup(interface)
Nov 30 02:51:27 compute-0 os-collect-config: File "/usr/lib/python2.7/site-packages/os_net_config/__init__.py", line 244, in ifup
Nov 30 02:51:27 compute-0 os-collect-config: self.execute(msg, '/sbin/ifup', interface)
Nov 30 02:51:27 compute-0 os-collect-config: File "/usr/lib/python2.7/site-packages/os_net_config/__init__.py", line 224, in execute
Nov 30 02:51:27 compute-0 os-collect-config: processutils.execute(cmd, *args, **kwargs)
Nov 30 02:51:27 compute-0 os-collect-config: File "/usr/lib/python2.7/site-packages/oslo_concurrency/processutils.py", line 394, in execute
Nov 30 02:51:27 compute-0 os-collect-config: cmd=sanitized_cmd)
Nov 30 02:51:27 compute-0 os-collect-config: oslo_concurrency.processutils.ProcessExecutionError: Unexpected error while running command.
Nov 30 02:51:27 compute-0 os-collect-config: Command: /sbin/ifup dpdkbond0
Nov 30 02:51:27 compute-0 os-collect-config: Exit code: 1
Nov 30 02:51:27 compute-0 os-collect-config: Stdout: u''
Nov 30 02:51:27 compute-0 os-collect-config: Stderr: u'ovs-vsctl: no row "dpdkbond0" in table Interface\n'
Nov 30 02:51:27 compute-0 os-collect-config: + RETVAL=1
Nov 30 02:51:27 compute-0 os-collect-config: + [[ 1 == 2 ]]
Nov 30 02:51:27 compute-0 os-collect-config: + [[ 1 != 0 ]]
Nov 30 02:51:27 compute-0 os-collect-config: + echo 'ERROR: os-net-config configuration failed.'
Nov 30 02:51:27 compute-0 os-collect-config: ERROR: os-net-config configuration failed.
Nov 30 02:51:27 compute-0 os-collect-config: + exit 1

Expected results:
Compute should be configure the ovs dpdk bond with the requested params.

Additional info:
Same ovs_extra configuration on the single ovs dpdk bridge (not bonded), are passing.

Comment 1 Saravanan KR 2017-11-30 12:07:51 UTC
As per the integration document [1] for OSP10 for MTU, following is the correct way to configure the MTU values for a bond. 

              - type: ovs_user_bridge
                name: br-link
                members:
                - type: ovs_dpdk_bond
                  name: dpdkbond0
                  mtu: 2000
                  ovs_extra:
                  - set interface dpdk0 mtu_request=$MTU
                  - set interface dpdk1 mtu_request=$MTU
                  members:
                  - type: ovs_dpdk_port
                    name: dpdk0
                    members:
                    - type: interface
                      name: nic4
                  - type: ovs_dpdk_port
                    name: dpdk1
                    members:
                    - type: interface
                      name: nic5

Instead of setting with $DEVICE, the MTU value has to be set to both the dpdk ports. Note that this sample is provided based on testing of OSP11. OSP10 with bond was not validated by us, but it should be similar with respect to ovs2.6 version.

Please modify the template and update BZ, if it solves the error.

[1] https://docs.google.com/document/d/1akw2rQLiajp69PDF6tikgBNrdE20EHPzpM9QnlQLxEI/edit

Comment 2 Maxim Babushkin 2017-11-30 12:57:46 UTC
Hi Saravanan,

I was able to perform the successful deployment as by your reference.
Thank you for the input.

Closing as not a bug.


Note You need to log in before you can comment on or make changes to this bug.