Hi vpp devs,

After this patch in VPP: https://gerrit.fd.io/r/#/c/15759/
our DHCP relay tests started to fail. The configuration seems to be written 
correctly (same as before, commands for VPP on DUT1 in attachment), but when 
actual packet is received the vpp seems to crash. Sometimes there are 
postmortem api files generated but I haven't  seen a core dump file. VPP is 
restarted for sure. It has different PID afterwards and configuration is lost. 
What I managed to figure out is that it happens after DHCP option 82 packet is 
sent from TG to DUT1 (attached).
Topology:
#        +------+                 +-----+ port1
#        |      | port1     port3 |     +------+
#        | DUT1 +-----------------+ TG  |      |
#        |      +-----------------+     +------+
#        |      | port2     port4 |     | port2
#        +-+-+--+                 +-+-+-+

The packet is sent from port3 on TG, then it passes to DUT1 where vpp is 
running and has both ports enabled and IP assigned. The other port on TG is 
running a DHCP server. VPP is set as a DHCP relay to pass the requests sent 
from port3 on TG to port4 on TG where DHCP server is running. But as I said vpp 
crashes when the packet is received. I tried to run it with "dut1 vpp 
commands.txt" configuration on clean vpp. After the same packet is sent VPP 
crashes. So this is the only configuration needed to replicate this behavior on 
such setup.
I used the script provided by CSIT to generate the packet 
https://gerrit.fd.io/r/gitweb?p=csit.git;a=blob;f=resources/traffic_scripts/dhcp/send_and_check_proxy_discover.py;h=d8089713fd10643f92d178bbe024cf4b04ed7e94;hb=refs/heads/master
The command looks like this:
sudo -S sh -c "cd ~/openvpp-testing; virtualenv --system-site-packages 
--never-download env && export PYTHONPATH=\${PWD}; . \${PWD}/env/bin/activate; 
resources/traffic_scripts/dhcp/send_and_check_proxy_messages.py --tx_if enp0s17 
--rx_if enp0s16 --server_ip 192.168.0.100 --server_mac 08:00:27:20:b0:38 
--client_ip 172.16.0.2 --client_mac 08:00:27:62:73:6e --proxy_ip 172.16.0.1"

Can someone take a look?

Thanks
Michal

[https://www.cisco.com/c/dam/m/en_us/signaturetool/images/banners/standard/06_standard_graphic.png]




Michal Cmarada
Engineer - Software
mcmar...@cisco.com<mailto:mcmar...@cisco.com>
Tel:










Cisco Systems, Inc.



Slovakia
cisco.com



[http://www.cisco.com/assets/swa/img/thinkbeforeyouprint.gif]

Think before you print.

This email may contain confidential and privileged material for the sole use of 
the intended recipient. Any review, use, distribution or disclosure by others 
is strictly prohibited. If you are not the intended recipient (or authorized to 
receive for the recipient), please contact the sender by reply email and delete 
all copies of this message.
Please click 
here<http://www.cisco.com/c/en/us/about/legal/terms-sale-software-license-agreement/company-registration-information.html>
 for Company Registration Information.







Sending packet out of ens7 of len 286
###[ Ethernet ]###
  dst       = ff:ff:ff:ff:ff:ff
  src       = fa:16:3e:2b:11:9e
  type      = 0x800
###[ IP ]###
     version   = 4L
     ihl       = 5L
     tos       = 0x0
     len       = 272
     id        = 1
     flags     = 
     frag      = 0L
     ttl       = 64
     proto     = udp
     chksum    = 0x79dd
     src       = 0.0.0.0
     dst       = 255.255.255.255
     \options   \
###[ UDP ]###
        sport     = bootpc
        dport     = bootps
        len       = 252
        chksum    = 0x889
###[ BOOTP ]###
           op        = BOOTREQUEST
           htype     = 1
           hlen      = 6
           hops      = 0
           xid       = 0
           secs      = 0
           flags     = 
           ciaddr    = 0.0.0.0
           yiaddr    = 0.0.0.0
           siaddr    = 0.0.0.0
           giaddr    = 0.0.0.0
           chaddr    = 
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
           sname     = 
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
           file      = 
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
           options   = 'c\x82Sc'
###[ DHCP options ]###
              options   = [message-type=discover end]
dut1:~$ sudo vppctl set int ip address GigabitEthernet0/9/0 192.168.0.1/24
dut1:~$ sudo vppctl set int state GigabitEthernet0/9/0 up
dut1:~$ sudo vppctl set int ip address GigabitEthernet0/a/0 172.16.0.1/24
dut1:~$  sudo vppctl set int state GigabitEthernet0/a/0 up
dut1:~$ vppctl set dhcp proxy server 192.168.0.100 src-address 172.16.0.1
clib_socket_init: connect (fd 3, '/run/vpp/cli.sock'): Permission denied
dut1:~$ sudo vppctl set dhcp proxy server 192.168.0.100 src-address 172.16.0.1
dut1:~$ sudo vppctl sh int address
GigabitEthernet0/10/0 (dn):
GigabitEthernet0/11/0 (dn):
GigabitEthernet0/9/0 (up):
  L3 192.168.0.1/24
GigabitEthernet0/a/0 (up):
  L3 172.16.0.1/24
local0 (dn):
dut1:~$  sudo vppctl sh dhcp proxy
    RX FIB       Src Address  Servers FIB,Address
       0         172.16.0.1   0,192.168.0.100
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#11381): https://lists.fd.io/g/vpp-dev/message/11381
Mute This Topic: https://lists.fd.io/mt/28292147/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to