From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0062.outbound.protection.outlook.com [104.47.41.62]) by dpdk.org (Postfix) with ESMTP id 97384568D for ; Sat, 3 Sep 2016 17:29:53 +0200 (CEST) Received: from BN3PR0301CA0023.namprd03.prod.outlook.com (10.160.180.161) by CY4PR03MB2440.namprd03.prod.outlook.com (10.168.163.142) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.599.9; Sat, 3 Sep 2016 15:29:51 +0000 Received: from BL2FFO11FD010.protection.gbl (2a01:111:f400:7c09::195) by BN3PR0301CA0023.outlook.office365.com (2a01:111:e400:4000::33) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.609.9 via Frontend Transport; Sat, 3 Sep 2016 15:29:52 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD010.mail.protection.outlook.com (10.173.161.16) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.587.6 via Frontend Transport; Sat, 3 Sep 2016 15:29:51 +0000 Received: from [127.0.0.1] ([10.214.201.1]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u83FTg7A006015; Sat, 3 Sep 2016 08:29:47 -0700 To: Maxime Coquelin , References: <1472315186-28090-1-git-send-email-pankaj.chauhan@nxp.com> <1472315186-28090-3-git-send-email-pankaj.chauhan@nxp.com> <86a9016e-af22-35d9-cbcd-40d2ccc71490@redhat.com> CC: , , , From: Pankaj Chauhan Message-ID: <2389c298-4836-f7be-52cd-8303e8b544a5@nxp.com> Date: Sat, 3 Sep 2016 20:59:41 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <86a9016e-af22-35d9-cbcd-40d2ccc71490@redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131173901919869107; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(339900001)(189002)(377454003)(53474002)(24454002)(199003)(8666005)(230700001)(81156014)(8676002)(19580405001)(19580395003)(586003)(81166006)(86362001)(85426001)(65956001)(65806001)(2906002)(47776003)(50466002)(23746002)(83506001)(8936002)(87936001)(189998001)(68736007)(4326007)(77096005)(36756003)(5660300001)(65826007)(7246003)(7126002)(104016004)(2950100001)(97736004)(4001350100001)(64126003)(120886001)(105606002)(92566002)(106466001)(356003)(31686004)(50986999)(33646002)(5001770100001)(305945005)(76176999)(7846002)(31696002)(54356999)(626004)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB2440; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD010; 1:ypFp6NDnd4KItKtzOGW5kKAEN6sKtWZQdfMwvfT4RVHEgjQCpyhst2pZaN7o/Arq6JowBgd82RinU43ONl8cCnvlHGBsvixhwKyFNz+gGcPZEU4cSae58I54O40SShARrObNTCqNXUZM3KNoCKV6jrnD5z23akyLq2gFDThl+b8tG2Jz3TY/PbO7QMRqjW5/dcyxzTlSOxpe6PZmuFAZYPN1fuRkcxoCw1vPJk4JhHMhtvaUcRrty1JCxNJT63wxpSEWW0d7Uf8USYwg+jg/VEIDH2ef1REQjcrDukQ8/MvH81BMxZhYqARWg9YiRUwse4t3Zb9Y8iiEObnaOIGXEH+/vxmriZi8pwpvra0qg1yVeniFiFu0w+dF9/DQgblWuDtoOCaEcjf9r6nmiosDcbUFR1FCrGYXlh/cXxUAIxOBfRdkZJeTTLElTcFPmcP+OXcqnmvVwZ+j3eVjxM6GKrXRbi0vCiNkYLKSOUe0HV2DyaGretytNxHIEhBQX6sVeLK+bqYLkrl/SRBqZEfVwNppo6caWxi2rZBpn6cIE586OemUBF9A4X5V7T/8dmX4+fvs9c7A25ENjlFQM3InCtLLthnZbxRlHwNrG2IIHy13rb2TLoEqb1hn+WUS7Xie X-MS-Office365-Filtering-Correlation-Id: f1e10c47-927e-43bc-58b3-08d3d40f2633 X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2440; 2:PSiJvKTac9VJaqnG/DJczKUHRGfYavoCXrnK/R1VxDj4sfGBKQLjI3WmFTJJ2qHL6QoadxwVZaQ85btMVCPmzhR6QrpxqVxztBu+OeY8NRUnhfFtAsgBbUiHO0tBur3TPTpC046PdswLShX7XaCsJKVcKB5O08lcpZsrXjfLNsjoURLnSrCRBnBJZGmDa+fD; 3:jOpZMHRfHcJD3yhn+Fty0GTiY6WTq4VscvFE0WUYnw9KbFHphwmayQbBXVw1k1hHYjw2DEdhEIBShiq/T4eiWTBfmnOrgxe/IU0qfSW+SakPzlNgi2o8I4yYJfGFzAFob5TKu/vJdh6roPx7Yg8yEcjbEsyUfRkkvE00BsodHJEUFM3OOb1YNI0EhNlt4OVdqK4TO3E+zrRF6sVPlK44/vFiy3n6IllUz5BXgmu82jY=; 25:Y4KDUijraT+qoCs+yn4XG9MAhNN+ZYrLO00bN68lXSft2Wr5jWa7/UX4BZN43C0v+VPWSwEByv8OfG8olbd4YeuR2clAZ5d50++q2OazwBYvsyNpsrLYgP1RTq8+D1YO4LimIuiEPRtvWAb2n3zUBts7mikKRaSABhVQpegkpwrXHL2PE4h+av5EAIc4KdZvc7bU03o+o1ztcG5K2Qsep2KS/rNezOk166gPvMlEqQajf/XaPbN91E1A8tE8kLls3Nc9vQ3lXRBfOFXguqP44W+Gl3OkFy9VAy/Zr9PQNdkfPKzhNkvcaMgicg/9uohvYycURMCaAEGy7LaCq69PK3gP47ON56IIm3lTfgRoII78uVxQU8MzDIsRMKQlEzhcBXp3qzUken4aO9AObYdr/O+IJPIzzrRo+PDT/DMIHrU= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR03MB2440; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2440; 31:kvxDrM6L1JtEzLZRns8TjwAjDJow5h+oZMQAfFbbzBI31Teyp4yrnkCUMGYc3HT6zaqtNrH1jAfV9XmRwPGrGIEUFeSsvvvs3u32v176p5YGLHN4d3uxYVYlJ/odqT1GBKapLVMSuy6dEUX0zHYsVXLyyJ/IWtudTMOaKqbsx8DHqjTGKxGuyzasxYfBsLW8+P/+z7JX7YbQmv8lC/yMJBwJ7GPPe9ou1TiZSla+s38=; 4:OU/qocgL8D711uOLuldgJbzGVXApZCsXEwKVhR0wFEQNAc3jJWBD/+bkoqeTel1UxTNQjV1OWuzMCvYIUf0Axa7keoykoq1tcQ+dHThogaG55DT4fcD7SL5d8qXlhQP/yQ/E//4InnEzc+mnHUb66jGIQx5oExZte6+52G+3NKfT96XCBUfDs9ww7wRfKWRwAIiR9YbT6UKzyPyLggAjkTZ0MqfJTR3mJyK9s3K5Uxbd1k1m88kTwtT4eYyuB1pth90zwHHPn8PyNbDIEi7vMMam5LvcXbE7iRzlem4ZyQJRcGFyv+AnI/65dhD8A7pMcKCzZ+XHoTKB9u+gfKFxdt5MQf54YTNHtyv2SNe/au4+p13/AikXR2XeyHmdZTSaUtS7mqJt+OjezuZhOxYEi1o5sXAbHNUM/wXh6oKUfnaw3GOsFZdcWWDI34WU7phNOeskrEf5eFZ2Up8Q5Nkc/X7E/U9sCaxJGGLzgmGw+12mLVXd9MedVx8ERiWP4DcLYxp/VeDZrk7aUNNn9BpElkU8hVBtb1YuyQAvSjwWIqg= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13015025)(13017025)(13023025)(13024025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:CY4PR03MB2440; BCL:0; PCL:0; RULEID:(400006); SRVR:CY4PR03MB2440; X-Forefront-PRVS: 00540983E2 X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; CY4PR03MB2440; 23:Ygbv7XrU47nqX1fgwqi0tTAc4kT7mpSGk0s1k?= =?Windows-1252?Q?dPr8bkSBzjdZyKLIuXpty1HuUTGS9U0Rbrbq07DdNRgjZuThqQy8g3ar?= =?Windows-1252?Q?Xp6dSB3YHoZJeCDY1fR3onb+6y5RZchjwbg8klEmKEBrvx/FeZ9O8/h7?= =?Windows-1252?Q?FMyGzfHIajX7MKSgCaMbAMGsL/dEw+eUDcLuWQ0ylkcBGCOnLIxn/b0t?= =?Windows-1252?Q?XVjxchNyu5z5l8gxdwUFMXD+8ZzgbNxb38GIlQSsSH6Dm5jErFVDx6EB?= =?Windows-1252?Q?8DJ88nxqSFLQbavG7mALbQZIXjSe9aZrbtllQTpQc56MMXE9TMU8D6V/?= =?Windows-1252?Q?OmRXqC9RL9SBG60203qnfhyQc60e27OAp7XV+jRXzuECSzilj589TZ2O?= =?Windows-1252?Q?9BiKiL/o1fCnZPC16tXYepVJFJcr9wcQovnADhACQnLppLXFuytus7Tj?= =?Windows-1252?Q?Q9M5cpToMVdaBxifKH060HTQJlgtypwZt/cZNrR79ptcWv2zcF7TIGCe?= =?Windows-1252?Q?CVdO+sX4kwg+n49jWlZNpBfmggyWmkQmcoim0kFgXPQLMcirW7wUYuxB?= =?Windows-1252?Q?9HGpeip+SVxN41RlWD4TONVuZp/QFD2rb2blCsW+3TIg8eFUP25ETHSA?= =?Windows-1252?Q?0LLjrJvpqOYBTrmBu0xrgWax80SSK5BuvpAqcryTjBWVnl4Uw+91EhTr?= =?Windows-1252?Q?aZznFBmbfKYjAac39tw69VnVNWZUIWd1haJEknOvffNnZSdMa7SnwQAu?= =?Windows-1252?Q?NaEGMoLKUFTsUY+OvAWOIyj9zrcc6reMD/MAFhcWpLV+jDSaNWQjzg0t?= =?Windows-1252?Q?k3NP8EFqL8uXxv/hW9ZT1pXRhV/DMHGOkH/Aj3Kev6AGzDmVafY1xm1F?= =?Windows-1252?Q?twBPQ10BIfbLshNpoZSu/bBmW9DR7n6yt0w/gmSBQKAZeIpOe64XsIcO?= =?Windows-1252?Q?UrU3b/msN/Zdh1b6EKC1O/BMtmvvivhxqTyEhrAHhs1T3I3EHeS3MSl+?= =?Windows-1252?Q?gynrjWul57AnjShA2fL5sQgMnKkfH3lj7J9peuTp6CClhX3gpiGCrluU?= =?Windows-1252?Q?fgfaD9IHlI+8RUY7gCjrnLmvWbEMUU+q0dWDw8To1YadqKbw9tw0DXIV?= =?Windows-1252?Q?2FS9K4u8HhaZphKZV5yUUv8rtZYwiMRGgfiqMNXxsWmmXIicCIJA/TyR?= =?Windows-1252?Q?GmisRXjWj2HqSHTJgqd5J6GBASPpL0ckQlaMX6e45rosJyj6FCgy5uBh?= =?Windows-1252?Q?TxhTExbMSkCXk37UXvT9Ph7sjyoG+01Ei7D44LJGTrjmCLxx1CsniNM0?= =?Windows-1252?Q?g4jw/yN3ZZnUO+vFlIwFPUjX+Xn2tjZYnvnwd27NBn2j2XIKjZGlGQA/?= =?Windows-1252?Q?dTKk0zusMlk8AaLvA/1ncJWpQH4Q1w54/f5EfNeXMg4eKk8lONIjhBFJ?= =?Windows-1252?Q?S/kSFhorS3veTO7nh8GeZZbcLwQ8RTl90zrN99IJ4KsHK7NjNDyNOYwL?= =?Windows-1252?Q?qDBViGNVvMWM6LTVlHoNGYMrVdpSyjM80x5ykmoNo2LZw3R3Q=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2440; 6:VsY/Xu+yn/czubQdQJOVX28IViSK/xOpd56AMEH2Zv4X/y2HLI0T/JnreTCbDhv8o/8mqv8iF2Rd4Hq/GFUvV0etGd6URgcs1EupPNeFMkLDc6SBcTWd5a5hf4fFH10wn1fOpNftrAJd9IEqJgRi+WLdNSJ6LJwp86Fsg/8ruMtoYHhaAxRJcnPacAOHAtn2sy1/KmG7KsMGXvT4z+4sbFkChDterbXosX9lSvBt7MowK4WYNIP/sXHjX6MtluGhBsH+u0S9vdjrMrTCanXRH49fVV3hihGLtAMOAw9oZS0=; 5:bW7npokAkTyU/kN/oleDDsJu/vWo/0XSp9zrgkcBqXd8mUMzA5wWUgR3r/Fawg+Zgq9UqXGp9TTF6N7UoJl2XRSw7cKsO2ZpnJY+16nDqllQ+nDVP3jADP+HNYZvapZSiDPZQMOa3bDfJMIEehXIvNnO1+95cWYL7yLKMcJCsAU=; 24:noueW1eV1HgeoFm8SQlWzw9TjLtOvrfLGAQT0vhYZmw3S8qM+aFzPLO/p2bFY4BkejBRUg6k3ikLy0IKilYVkvtKYPkFaWP6znsPc3ybZbY=; 7:PLxvp0hzauu5OpUOtBrxqpAK+cT4gOJ5+RInCkeRzH5CyF6NZv1POmiTEsAgVCHOoVCX1bVlOYbYmysZquXpC1fk8Syl3snu6nU0xiimXurfMDfqeMPi2PkQTm3rnxeH1pYse7P69ntt6AaGF4KgWADDrhctSux/KImlPx9v6pj9of7s6lbMoc0/y67O7w8yZJgYpGP5CMk9B0uk+/K/LlZ4xKWbg/9MDqcugGzb+AAIdS86Z7A43Rn8SFCJkWYt SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2016 15:29:51.7997 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB2440 Subject: Re: [dpdk-dev] [RFC][PATCH 2/3] examples/vhost: Add vswitch command line options X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Sep 2016 15:29:54 -0000 On 9/2/2016 8:14 PM, Maxime Coquelin wrote: > > > On 08/27/2016 06:26 PM, Pankaj Chauhan wrote: >> Add command line options for selecting switch implementation >> and maximum ports for the vswitch.following are two new command >> line options: >> >> --switch [char string, Selects the switch imlementation] >> --max-ports [int, selects maximum number of ports to support] >> >> For example: >> >> $ ./vhost-switch -c 3 -n 2 --socket-mem 1024 --huge-dir /hugetlbfs -- -p >> 0x1 --dev-basename sock1 --switch "vmdq" --max-ports 3 >> >> Signed-off-by: Pankaj Chauhan >> --- >> examples/vhost/main.c | 43 +++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 43 insertions(+) >> >> diff --git a/examples/vhost/main.c b/examples/vhost/main.c >> index 92a9823..59cddb8 100644 >> --- a/examples/vhost/main.c >> +++ b/examples/vhost/main.c >> @@ -142,6 +142,10 @@ static uint32_t burst_rx_retry_num = >> BURST_RX_RETRIES; >> /* Character device basename. Can be set by user. */ >> static char dev_basename[MAX_BASENAME_SZ] = "vhost-net"; >> >> +/* vswitch device name and maximum number of ports */ >> +static char switch_dev[MAX_BASENAME_SZ] = "vmdq"; >> +static uint32_t switch_max_ports = MAX_DEVICES; >> + >> /* empty vmdq configuration structure. Filled in programatically */ >> static struct rte_eth_conf vmdq_conf_default = { >> .rxmode = { >> @@ -408,6 +412,22 @@ us_vhost_parse_basename(const char *q_arg) >> } >> >> /* >> + * Set switch device name. >> + */ >> +static int >> +us_vhost_parse_switch_name(const char *q_arg) >> +{ >> + /* parse number string */ >> + >> + if (strnlen(q_arg, MAX_BASENAME_SZ) > MAX_BASENAME_SZ) >> + return -1; >> + else >> + snprintf((char*)&switch_dev, MAX_BASENAME_SZ, "%s", q_arg); > why casting? yes not required, will remove it. >> + >> + return 0; >> +} >> + >> +/* >> * Parse the portmask provided at run time. >> */ >> static int >> @@ -501,6 +521,8 @@ us_vhost_parse_args(int argc, char **argv) >> {"tx-csum", required_argument, NULL, 0}, >> {"tso", required_argument, NULL, 0}, >> {"client", no_argument, &client_mode, 1}, >> + {"switch", required_argument, NULL, 0}, >> + {"max-ports", required_argument, NULL, 0}, >> {NULL, 0, 0, 0}, >> }; >> >> @@ -655,6 +677,27 @@ us_vhost_parse_args(int argc, char **argv) >> } >> } >> >> + /* Set vswitch_driver name */ >> + if (!strncmp(long_option[option_index].name, "switch", >> MAX_LONG_OPT_SZ)) { >> + if (us_vhost_parse_switch_name(optarg) == -1) { >> + RTE_LOG(INFO, VHOST_CONFIG, "Invalid argument for >> character switch dev (Max %d characters)\n", MAX_BASENAME_SZ); > ERR may be morez appropriate. I didn't get the comment, can you please help me understand. > And the message may be a little too long. I will shorten it, thanks. > >> + us_vhost_usage(prgname); >> + return -1; >> + } >> + } >> + >> + /* Specify Max ports in vswitch. */ >> + if (!strncmp(long_option[option_index].name, "max-ports", >> MAX_LONG_OPT_SZ)) { >> + ret = parse_num_opt(optarg, INT32_MAX); >> + if (ret == -1) { >> + RTE_LOG(INFO, VHOST_CONFIG, "Invalid argument for >> switch max ports [0-N]\n"); >> + us_vhost_usage(prgname); >> + return -1; >> + } else { >> + switch_max_ports = ret; >> + } > The else is not needed as the 'if' returns. Agreed, will fix it. >> + } >> + >> break; >> >> /* Invalid option - print options. */ >> >