VPP DHCP address cannot be assigned on some clouds
For example, on AWS:
Config:
vyos@VyOS-for-Smoke-Tests:~$ show conf com | match "eth1|vpp" set interfaces ethernet eth1 address 'dhcp' set interfaces ethernet eth1 description 'LAN' set interfaces ethernet eth1 dhcp-options no-default-route set interfaces ethernet eth1 mtu '1500' set vpp settings interface eth1 dpdk-options promisc set vpp settings interface eth1 driver 'dpdk' set vpp settings unix poll-sleep-usec '222' vyos@VyOS-for-Smoke-Tests:~$
Trace
vpp# show trace
------------------- Start of thread 0 vpp_main -------------------
Packet 1
00:07:00:472210: dpdk-input
eth1 rx queue 0
buffer 0x7b3e6: current data 0, length 590, buffer-pool 0, ref-count 1, trace handle 0x0
ext-hdr-valid
PKT MBUF: port 0, nb_segs 1, pkt_len 590
buf_len 2176, data_len 590, ol_flags 0x180, data_off 128, phys_addr 0x4b91d380
packet_type 0x210 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
Packet Offload Flags
PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
Packet Types
RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
RTE_PTYPE_L4_UDP (0x0200) UDP packet
IP4: 06:88:62:0d:39:6d -> 06:22:c0:87:dc:d5
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:07:00:472510: ethernet-input
frame: flags 0x1, hw-if-index 1, sw-if-index 1
IP4: 06:88:62:0d:39:6d -> 06:22:c0:87:dc:d5
00:07:00:472514: ip4-input
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:07:00:472517: ip4-not-enabled
fib:0 adj:0 flow:0x00000000
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:07:00:472520: error-drop
rx:eth1
00:07:00:472521: drop
dpdk-input: no error
Packet 2
00:07:14:612322: dpdk-input
eth1 rx queue 0
buffer 0x7b425: current data 0, length 590, buffer-pool 0, ref-count 1, trace handle 0x1
ext-hdr-valid
PKT MBUF: port 0, nb_segs 1, pkt_len 590
buf_len 2176, data_len 590, ol_flags 0x180, data_off 128, phys_addr 0x4b91f300
packet_type 0x210 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
Packet Offload Flags
PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
Packet Types
RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
RTE_PTYPE_L4_UDP (0x0200) UDP packet
IP4: 06:88:62:0d:39:6d -> 06:22:c0:87:dc:d5
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:07:14:612625: ethernet-input
frame: flags 0x1, hw-if-index 1, sw-if-index 1
IP4: 06:88:62:0d:39:6d -> 06:22:c0:87:dc:d5
00:07:14:612628: ip4-input
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:07:14:612629: ip4-not-enabled
fib:0 adj:0 flow:0x00000000
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:07:14:612631: error-drop
rx:eth1
00:07:14:612632: drop
dpdk-input: no error
Packet 3
00:07:28:954854: dpdk-input
eth1 rx queue 0
buffer 0x7b464: current data 0, length 590, buffer-pool 0, ref-count 1, trace handle 0x2
ext-hdr-valid
PKT MBUF: port 0, nb_segs 1, pkt_len 590
buf_len 2176, data_len 590, ol_flags 0x180, data_off 128, phys_addr 0x4c921280
packet_type 0x210 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
Packet Offload Flags
PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
Packet Types
RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
RTE_PTYPE_L4_UDP (0x0200) UDP packet
IP4: 06:88:62:0d:39:6d -> 06:22:c0:87:dc:d5
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:07:28:955151: ethernet-input
frame: flags 0x1, hw-if-index 1, sw-if-index 1
IP4: 06:88:62:0d:39:6d -> 06:22:c0:87:dc:d5
00:07:28:955154: ip4-input
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:07:28:955155: ip4-not-enabled
fib:0 adj:0 flow:0x00000000
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:07:28:955156: error-drop
rx:eth1
00:07:28:955157: drop
dpdk-input: no error
Packet 4
00:07:50:799285: dpdk-input
eth1 rx queue 0
buffer 0x7b4a3: current data 0, length 42, buffer-pool 0, ref-count 1, trace handle 0x3
ext-hdr-valid
PKT MBUF: port 0, nb_segs 1, pkt_len 42
buf_len 2176, data_len 42, ol_flags 0x0, data_off 128, phys_addr 0x4c923200
packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
ARP: 06:88:62:0d:39:6d -> ff:ff:ff:ff:ff:ff
request, type ethernet/IP4, address size 6/4
06:88:62:0d:39:6d/172.16.21.1 -> 00:00:00:00:00:00/172.16.21.25
00:07:50:799586: ethernet-input
frame: flags 0x1, hw-if-index 1, sw-if-index 1
ARP: 06:88:62:0d:39:6d -> ff:ff:ff:ff:ff:ff
00:07:50:799592: arp-input
request, type ethernet/IP4, address size 6/4
06:88:62:0d:39:6d/172.16.21.1 -> 00:00:00:00:00:00/172.16.21.25
00:07:50:799594: linux-cp-arp-phy
rx-sw-if-index: 1 opcode: 1
00:07:50:799601: error-drop
rx:eth1
00:07:50:799602: drop
dpdk-input: no error
Packet 5
00:08:40:990442: dpdk-input
eth1 rx queue 0
buffer 0x7b4e2: current data 0, length 590, buffer-pool 0, ref-count 1, trace handle 0x4
ext-hdr-valid
PKT MBUF: port 0, nb_segs 1, pkt_len 590
buf_len 2176, data_len 590, ol_flags 0x180, data_off 128, phys_addr 0x4c925180
packet_type 0x210 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
rss 0x0 fdir.hi 0x0 fdir.lo 0x0
Packet Offload Flags
PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
Packet Types
RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
RTE_PTYPE_L4_UDP (0x0200) UDP packet
IP4: 06:88:62:0d:39:6d -> 06:22:c0:87:dc:d5
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:08:40:990732: ethernet-input
frame: flags 0x1, hw-if-index 1, sw-if-index 1
IP4: 06:88:62:0d:39:6d -> 06:22:c0:87:dc:d5
00:08:40:990735: ip4-input
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:08:40:990736: ip4-not-enabled
fib:0 adj:0 flow:0x00000000
UDP: 172.16.21.1 -> 172.16.21.25
tos 0x00, ttl 255, length 576, checksum 0xf771 dscp CS0 ecn NON_ECN
fragment id 0x0000, flags DONT_FRAGMENT
UDP: 67 -> 68
length 556, checksum 0x0000
00:08:40:990738: error-drop
rx:eth1
00:08:40:990739: drop
dpdk-input: no error