Uploaded image for project: 'vpp'
  1. vpp
  2. VPP-2026

SIGSEGV when enabling nat64 on 22.02+

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • None
    • None
    • nat
    • None

      Hi,

      I am looking to set up nat64 for testing. However I got SIGSEGV when issuing set interface nat64 out <interface>. Is nat64 broken or was I doing something wrong?

      I was running v22.06-rc1 official debian build on a Debian bullseye virtual machine with a very basic config. I also tried v22.02 and master but got the same error.

      $ uname -a
      Linux vpp-proto 5.10.0-15-amd64 #1 SMP Debian 5.10.120-1 (2022-06-09) x86_64 GNU/Linux
      
      $ vppctl show version verbose cmdline
      
      Version:                  v22.06-rc1~5-gea4bcec98~b8
      
      Compiled by:              root
      
      Compile host:             bc9b24a17e05
      
      Compile date:             2022-06-10T21:37:09
      
      Compile location:         /w/workspace/vpp-merge-2206-debian11-x86_64
      
      Compiler:                 Clang/LLVM 11.0.1 
      
      Current PID:              10735
      
      Command line arguments:  
      
        /usr/bin/vpp
      
        unix
      
          {
      
          nodaemon
      
          log
      
          /var/log/vpp/vpp.log
      
          full-coredump
      
          cli-listen
      
          /run/vpp/cli.sock
      
          gid
      
          vpp
      
          exec
      
          /etc/vpp/bootstrap.vpp
      
          }
      
        api-trace
      
          {
      
          on
      
          }
      
        api-segment
      
          {
      
          gid
      
          vpp
      
          }
      
        socksvr
      
          {
      
          default
      
          }
      
        memory
      
          {
      
          main-heap-size
      
          512M
      
      
          main-heap-page-size
      
          default-hugepage
      
          }
      
        cpu
      
          {
      
          main-core
      
          1
      
          workers
      
          2
      
          }
      
        dpdk
      
          {
      
          dev
      
          0000:00:13.0
      
          dev
      
          0000:00:14.0
      
          }
      
      
          default-hugepage
          }
      
        cpu
      
          {
      
          main-core
      
          1
      
          workers
      
          2
      
          }
      
        dpdk
      
          {
      
          dev
      
          0000:00:13.0
      
          dev
      
          0000:00:14.0
      
          }
      
      

      /etc/vpp/bootstrap.vpp

      set interface state GigabitEthernet0/13/0 up
      set interface ip address GigabitEthernet0/13/0 2001:db8::1/64
      set interface state GigabitEthernet0/14/0 up
      set interface ip address GigabitEthernet0/14/0 100.100.18.253/24
      

      Both NICs are virtio nics connected to a linux bridge on the host:

      # dpdk-devbind.py -s
      Network devices using DPDK-compatible driver
      ============================================
      0000:00:13.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci,vfio-pci
      0000:00:14.0 'Virtio network device 1000' drv=uio_pci_generic unused=virtio_pci,vfio-pci
      

      Steps to produce:

      # vppctl show int addr
      
      GigabitEthernet0/13/0 (up):
      
        L3 2001:db8::1/64
      
      GigabitEthernet0/14/0 (up):
      
        L3 100.100.18.253/24
      
      local0 (dn):
      # vppctl set interface nat64 in GigabitEthernet0/13/0
      
      # vppctl set interface nat64 out GigabitEthernet0/14/0
      

      After issuing `set interface nat64 out <interface>` command, vpp will crash in a few seconds with the error message like:

      Jun 13 15:08:21 vpp-proto vnet[10728]: received signal SIGSEGV, PC 0x7fe97ba6e0f8, faulting address 0x848
      
      Jun 13 15:08:21 vpp-proto vnet[10728]: #0  0x00007fe99ebb153e 0x7fe99ebb153e
      
      Jun 13 15:08:21 vpp-proto vnet[10728]: #1  0x00007fe99eac8140 0x7fe99eac8140
      
      Jun 13 15:08:21 vpp-proto vnet[10728]: #2  0x00007fe97ba6e0f8 0x7fe97ba6e0f8
      
      Jun 13 15:08:21 vpp-proto vnet[10728]: #3  0x00007fe97ba57157 nat64_out2in_node_fn_hsw + 0x447
      
      Jun 13 15:08:21 vpp-proto vnet[10728]: #4  0x00007fe99eb41451 vlib_worker_loop + 0x1b31
      
      Jun 13 15:08:21 vpp-proto vnet[10728]: #5  0x00007fe99eb93f1a vlib_worker_thread_fn + 0xaa
      
      Jun 13 15:08:21 vpp-proto vnet[10728]: #6  0x00007fe99eb8e291 vlib_worker_thread_bootstrap_fn + 0x51
      
      Jun 13 15:08:21 vpp-proto vnet[10728]: #7  0x00007fe99eabcea7 start_thread + 0xd7
      
      Jun 13 15:08:21 vpp-proto vnet[10728]: #8  0x00007fe99e80fdef clone + 0x3f
      
      Jun 13 15:08:21 vpp-proto systemd[1]: vpp.service: Main process exited, code=killed, status=6/ABRT
      

            fivarga89 Filip Varga
            vfreex Yuxiang Zhu
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: