<div dir="ltr"><p style="box-sizing:border-box;margin-bottom:16px;color:rgb(36,41,47);font-family:-apple-system,"system-ui","Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;margin-top:0px">I'm trying to use DPDK on AWS i3.metal instances. I have the code built with AWS vfio-patches. In order to be logged into the machine on one NIC while having a free ENA NIC for DPDK, I attached a second NIC.<br><br>./dpdk-devbind.py is able to see the second NIC, and bind to it. <b>All that's working fine. However, by default this 2nd NIC does not have an IP address.</b></p><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(36,41,47);font-size:14px"><font face="arial, sans-serif">Meanwhile code needs a hostname or IP address of the client and server. How do I get an IP address associated with this 2nd NIC? And do I need to do some sys-admin work to ensure traffic in and out of the DPDK bound vfio-pci NIC is kept separate from the first NIC? <br><br>As far as I can see the correct approach is to:<br><br># setup second NIC to have an IP address and make sure UP before dpdk-devbind:<br>* </font>sudo ip addr add <some-valid-ipv4-addr> dev ens1 label ens1:1<br><font face="arial, sans-serif">* sudo ip lin set ens1 u[<br><br>before I do DPDK bind.<br><br>The NIC, when AWS adds it, starts off down without an IP address by default:<br><br></font><span style="font-size:small;color:rgb(34,34,34)">ubuntu$ lspci | grep Ether</span></p>04:00.0 Ethernet controller: Amazon.com, Inc. Elastic Network Adapter (ENA)<br>05:00.0 Ethernet controller: Amazon.com, Inc. Elastic Network Adapter (ENA)<br>ubuntu$ sudo ip a<br>1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000<br>    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br>    inet <a href="http://127.0.0.1/8">127.0.0.1/8</a> scope host lo<br>       valid_lft forever preferred_lft forever<br>    inet6 ::1/128 scope host <br>       valid_lft forever preferred_lft forever<br>2: ens785: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000<br>    link/ether 0a:0f:1f:db:ca:73 brd ff:ff:ff:ff:ff:ff<br>    inet <a href="http://172.31.17.144/20">172.31.17.144/20</a> brd 172.31.31.255 scope global dynamic ens785<br>       valid_lft 3544sec preferred_lft 3544sec<br>    inet6 fe80::80f:1fff:fedb:ca73/64 scope link <br>       valid_lft forever preferred_lft forever<br><b>3: ens1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000<br>    link/ether 0a:06:15:14:95:05 brd ff:ff:ff:ff:ff:ff<br></b><br>Once I bind 'ens1' dpdk-devbind reports it as bound -AND- it no longer appears in `ip a`:<br><br>Network devices using DPDK-compatible driver<br>============================================<br>0000:05:00.0 'Elastic Network Adapter (ENA) ec20' drv=vfio-pci unused=ena<br><br>Network devices using kernel driver<br>===================================<br>0000:04:00.0 'Elastic Network Adapter (ENA) ec20' if=ens785 drv=ena unused=vfio-pci *Active*<br><br>$ ip a<br>ubuntu@ip-172-31-17-144:~/Scripts$ ip a<br>1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000<br>    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br>    inet <a href="http://127.0.0.1/8">127.0.0.1/8</a> scope host lo<br>       valid_lft forever preferred_lft forever<br>    inet6 ::1/128 scope host <br>       valid_lft forever preferred_lft forever<br>2: ens785: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000<br>    link/ether 0a:0f:1f:db:ca:73 brd ff:ff:ff:ff:ff:ff<br>    inet <a href="http://172.31.17.144/20">172.31.17.144/20</a> brd 172.31.31.255 scope global dynamic ens785<br>       valid_lft 3314sec preferred_lft 3314sec<br>    inet6 fe80::80f:1fff:fedb:ca73/64 scope link <br>       valid_lft forever preferred_lft forever<br></div>