Support Support Downloads Knowledge Base Juniper Support Portal Community

Knowledge Base

Search our Knowledge Base sites to find answers to your questions.

Ask All Knowledge Base Sites All Knowledge Base Sites JunosE Defect (KA)Knowledge BaseSecurity AdvisoriesTechnical BulletinsTechnotes Sign in to display secure content and recently viewed articles

[Contrail] How to disable mergable buffer feature on a DPDK compute



Article ID: KB32753 KB Last Updated: 22 May 2020Version: 2.0

The mergeable buffer feature is needed to support jumbo MTU in non-DPDK VM on a DPDK compute. It was introduced in contrail and 4.0/4.1 releases. When upgrading to a contrail version with mergeable buffer turned on by default, you may notice a few types of VMs (i.e. VLC vMME VM, MetaSwitch Perimeta VOIP VM etc.) fail to do PXE boot up or rx/tx traffic to vRouter in DPDK mode.

This is occurs because these VMs do not have any features used for QEMU 2.5 to pass to the vRouter. When the vRouter restarts, they send 0x0 code to the vRouter, but vRouter is expecting anything other than 0x0.

If you see the following log entry in /var/log/contrail/contrail-vrouter-dpdk-stdout.log, it means VM connected to vRouter by tap3f826968-be might not able to tx/rx traffic to/from vRouter.

2018-01-29 09:31:10,769 UVHOST: Client _tap3f826968-be: handling message 2
2018-01-29 09:31:10,769 UVHOST:     SET FEATURES: 0x0

This issue is tracked by LP 1746578, which has been fixed in,, and 5.0. A workaround is possible if an upgrade to the aforementioned releases is not desirable.


A possible workaround is to disable merger buffer in dpdk-vrouter.ini file and restart vRouter to be backward compatible with the particular VNF you are using

  1. Modify /etc/contrail/supervisord_vrouter_files/contrail-vrouter-dpdk.ini to include "--no-mrgbuf" switch in the command line:


    command=taskset 0xf taskset 0xf taskset 0xf /usr/bin/contrail-vrouter-dpdk --no-daemon --vdev "eth_bond_bond0,mode=4,xmit_policy=l34,socket_id=1,mac=14:02:ec:66:b8:dc,slave=0000:87:00.0,slave=0000:09:00.1" --vlan_tci "722" --vlan_fwd_intf_name "bond0" --socket-mem 1024,1024


    command=taskset 0xf taskset 0xf taskset 0xf /usr/bin/contrail-vrouter-dpdk --no-daemon --no-mrgbuf --vdev "eth_bond_bond0,mode=4,xmit_policy=l34,socket_id=1,mac=14:02:ec:66:b8:dc,slave=0000:87:00.0,slave=0000:09:00.1" --vlan_tci "722" --vlan_fwd_intf_name "bond0" --socket-mem 1024,1024
  2. Restart supervisor-vrouter

    root@bcomp80:service supervisor-vrouter restart
  3. Verify that '--no-mrgbuf' flag is effective

    Without '--no-mrgbuf' flag,

    root@bcomp80:~# ps -eaf | grep dpdkroot     32470 32457 99 09:19 ?        04:36:28 /usr/bin/contrail-vrouter-dpdk --no-daemon --vdev eth_bond_bond1,mode=4,xmit_policy=l34,socket_id=0,mac=8c:dc:d4:b1:88:20,slave=0000:08:00.0,slave=0000:08:00.1 --vlan_tci 1423 --vlan_fwd_intf_name bond1 --socket-mem 1024 1024 root     37692 20464  0 09:54 pts/3    00:00:00 grep --color=auto /usr/bin/contrail-vrouter-dpdk

    With '--no-mrgbuf' flag,

    root@bcomp80:~# ps -ef | grep dpdk                                      root     34915 34902 99 14:51 ?        01:29:42 /usr/bin/contrail-vrouter-dpdk --no-daemon --no-mrgbuf --vdev eth_bond_bond1,mode=4,xmit_policy=l34,socket_id=0,mac=00:11:0a:68:a5:98,slave=0000:08:00.0,slave=0000:08:00.1 --vlan_tci 1423 --vlan_fwd_intf_name bond1 --socket-mem 1024 1024 root     39912 27920  0 15:03 pts/11   00:00:00 grep --color=auto dpdk
  4. Restart VM that fails to communicate with vRouter.

Comment on this article > Affected Products Browse the Knowledge Base for more articles related to these product categories. Select a category to begin.

Getting Up and Running with Junos

Getting Up and Running with Junos Security Alerts and Vulnerabilities Product Alerts and Software Release Notices Problem Report (PR) Search Tool EOL Notices and Bulletins JTAC User Guide Customer Care User Guide Pathfinder SRX High Availability Configurator SRX VPN Configurator Training Courses and Videos End User Licence Agreement Global Search