{"action":"created","issue":{"url":"https://api.github.com/repos/eunyoung14/mtcp/issues/65","repository_url":"https://api.github.com/repos/eunyoung14/mtcp","labels_url":"https://api.github.com/repos/eunyoung14/mtcp/issues/65/labels{/name}","comments_url":"https://api.github.com/repos/eunyoung14/mtcp/issues/65/comments","events_url":"https://api.github.com/repos/eunyoung14/mtcp/issues/65/events","html_url":"https://github.com/eunyoung14/mtcp/issues/65","id":154927166,"number":65,"title":"MTCP over a VF device","user":{"login":"mishka99","id":391315,"avatar_url":"https://avatars.githubusercontent.com/u/391315?v=3","gravatar_id":"","url":"https://api.github.com/users/mishka99","html_url":"https://github.com/mishka99","followers_url":"https://api.github.com/users/mishka99/followers","following_url":"https://api.github.com/users/mishka99/following{/other_user}","gists_url":"https://api.github.com/users/mishka99/gists{/gist_id}","starred_url":"https://api.github.com/users/mishka99/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mishka99/subscriptions","organizations_url":"https://api.github.com/users/mishka99/orgs","repos_url":"https://api.github.com/users/mishka99/repos","events_url":"https://api.github.com/users/mishka99/events{/privacy}","received_events_url":"https://api.github.com/users/mishka99/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-05-15T20:03:19Z","updated_at":"2016-05-18T19:50:55Z","closed_at":null,"body":"Have you guys tried running MTCP/DPDK over a VF device (using 82599 and ixgbe)?  I'm having problems getting it going as it sees zeroes in the MACs and if I specify static macs in the conf file, then it never goes past the SYN stage."},"comment":{"url":"https://api.github.com/repos/eunyoung14/mtcp/issues/comments/220138226","html_url":"https://github.com/eunyoung14/mtcp/issues/65#issuecomment-220138226","issue_url":"https://api.github.com/repos/eunyoung14/mtcp/issues/65","id":220138226,"user":{"login":"mishka99","id":391315,"avatar_url":"https://avatars.githubusercontent.com/u/391315?v=3","gravatar_id":"","url":"https://api.github.com/users/mishka99","html_url":"https://github.com/mishka99","followers_url":"https://api.github.com/users/mishka99/followers","following_url":"https://api.github.com/users/mishka99/following{/other_user}","gists_url":"https://api.github.com/users/mishka99/gists{/gist_id}","starred_url":"https://api.github.com/users/mishka99/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mishka99/subscriptions","organizations_url":"https://api.github.com/users/mishka99/orgs","repos_url":"https://api.github.com/users/mishka99/repos","events_url":"https://api.github.com/users/mishka99/events{/privacy}","received_events_url":"https://api.github.com/users/mishka99/received_events","type":"User","site_admin":false},"created_at":"2016-05-18T19:50:55Z","updated_at":"2016-05-18T19:50:55Z","body":"Here is more data for you guys - maybe it will help.\r\n\r\nI tried a quick hack in igb_uio.c to recognize Intel 82599 VF device but it requires a more in-depth work to map proper register sets and make sure register access are correct.\r\n\r\nNote, I'm using the VF device itself in the MTCP .conf file (since I don't see dpdk0, etc).  When SetInterfaceInfo() does the getifaddrs() it finds the VF device (since it is up and has an IP assigned) - but it's MAC is zeroes.   The rte_eth_macaddr_get() returns the correct MAC so when I detect MAC of zeroes after getifaddrs() loop, I override it with MAC from rte_eth_macaddr_get() - hard coded for one device for now.  That solves the source MAC address problem.\r\n\r\nIf my config/arp.conf table is empty, MTCP tries to send an ARP request to discover destination MAC.  I get ARP request timeouts and I don't see anything going on the wire so it never makes it past the VF device.  If I add a static MAC entry into config/arp.conf then it fills the src/dst MACs correctly but then gets stuck in infinite send SYN loop as that traffic also never makes it past the VF device.  So something else in the MTCP/DPDK interaction isn't happy about use of the VF device.\r\n\r\nInteresting side note.  When VF device is still owned by ixgbe/ixgbevf, it shows a correctly assigned MAC (getting that to work was a whole other little nightmare).  When using DPDK's setup.sh to bind the VF device to DPDK (to igb_uio), the MAC gets reset to zeroes and there is no direct (cmdline) way to change it.  I haven't looked deep into DPDK APIs to see if there is a programmatic method of changing MAC of the bound device (VF or PF).\r\n\r\nAlso, there is no way to unbind VF from igb_uio AND re-bind to ixgbe/ixgbevf due to the method employed in the script since VF devices show up somewhat differently in the /sys tree.  After option 29 in DPDK setup.sh, that VF device shows up as \"other\" (orphaned).  The only way to get it back to be bound with ixgbe/ixgbevf is to rmmod igb_uio.ko module - after rmmod, the VF device auto-magically gets bound back to ixgbe/ixgbevf.\r\n\r\nMaybe all that helps somehow to resolve some issues.\r\n"}}