{"action":"created","issue":{"url":"https://api.github.com/repos/kohler/click/issues/186","labels_url":"https://api.github.com/repos/kohler/click/issues/186/labels{/name}","comments_url":"https://api.github.com/repos/kohler/click/issues/186/comments","events_url":"https://api.github.com/repos/kohler/click/issues/186/events","html_url":"https://github.com/kohler/click/issues/186","id":63503729,"number":186,"title":"Running maz-nat in userspace","user":{"login":"muradkablan","id":11242924,"avatar_url":"https://avatars.githubusercontent.com/u/11242924?v=3","gravatar_id":"","url":"https://api.github.com/users/muradkablan","html_url":"https://github.com/muradkablan","followers_url":"https://api.github.com/users/muradkablan/followers","following_url":"https://api.github.com/users/muradkablan/following{/other_user}","gists_url":"https://api.github.com/users/muradkablan/gists{/gist_id}","starred_url":"https://api.github.com/users/muradkablan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/muradkablan/subscriptions","organizations_url":"https://api.github.com/users/muradkablan/orgs","repos_url":"https://api.github.com/users/muradkablan/repos","events_url":"https://api.github.com/users/muradkablan/events{/privacy}","received_events_url":"https://api.github.com/users/muradkablan/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-03-22T07:44:09Z","updated_at":"2015-03-24T09:16:15Z","closed_at":"2015-03-24T07:31:08Z","body":"Hi Eddie,\r\nI need to run maz-nat in userspace and I'm having a problem with TCP. Yes, I know kernel space gives much much better performance. But we are in the process of integrating Click with another project and we must run Click in userspce. \r\n\r\nUsing the same configuration file in Click repo, I could use it in kernelspace with full link BW. When I switched to userspace, I had to modify the configuration file by changing ToHost element to ToHost(tap0) since the first one only works in linuxmode. With theses changes, I can only test iperf in UDP between two end hosts and of course click running maz-nat in a machine resides in the middle.\r\n\r\nNow, the only way I could make the two end hosts reach each other with tcp is by disabling ARP in the interfaces in the machine running click. When ARP is off, Click seems to respond to arp queries.  I wrote a simple tcp client/server program and was able to connect them and send some packets between them (through click-nat of course).\r\n\r\nThe main problem is when I want to run tcp iperf. When the connection is established between the two ends, Click shows this error \"CheckIPHeader@37: IP header check failed: bad IP length\".\r\nAfter the test is done. Both ends report BW with 70Kbit. Which is about one packet. \r\nLooking at Wireshark at the machine running NAT, it seems that Client keep retransmitting a packet over and over. \r\n\r\nI am guessing the problem is related to ARP since it is the only thing changed in config file and also the tcp handshake since click shows the error above.\r\n  \r\nAny suggestions?\r\n\r\nThanks alot\r\n\r\nMurad"},"comment":{"url":"https://api.github.com/repos/kohler/click/issues/comments/85414322","html_url":"https://github.com/kohler/click/issues/186#issuecomment-85414322","issue_url":"https://api.github.com/repos/kohler/click/issues/186","id":85414322,"user":{"login":"ahenning","id":6873323,"avatar_url":"https://avatars.githubusercontent.com/u/6873323?v=3","gravatar_id":"","url":"https://api.github.com/users/ahenning","html_url":"https://github.com/ahenning","followers_url":"https://api.github.com/users/ahenning/followers","following_url":"https://api.github.com/users/ahenning/following{/other_user}","gists_url":"https://api.github.com/users/ahenning/gists{/gist_id}","starred_url":"https://api.github.com/users/ahenning/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahenning/subscriptions","organizations_url":"https://api.github.com/users/ahenning/orgs","repos_url":"https://api.github.com/users/ahenning/repos","events_url":"https://api.github.com/users/ahenning/events{/privacy}","received_events_url":"https://api.github.com/users/ahenning/received_events","type":"User","site_admin":false},"created_at":"2015-03-24T09:16:15Z","updated_at":"2015-03-24T09:16:15Z","body":"Great, pleasure."}}