From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0081.outbound.protection.outlook.com [104.47.37.81]) by dpdk.org (Postfix) with ESMTP id 0B846354D for ; Wed, 28 Mar 2018 16:28:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=UJ2Va+sn7Uzsq1mhyoEg34YPoPmBFiJ0vd0XAOPnBIM=; b=P/3T6wJIQsP9YYDXrIpRsXdokj6h5hgY1BZp5CiP3E2oCByNsCjhAfu8vnmm36zCPjzaE+kOp8R8TMqoBGYQfaZfCoqvjQC9Q32+Eoj8BdWkvIuDoVnef57U6igZ3vkXdE0SgUyfJWNUh+eiRpkrGgd6RT5Rq6Fixp5ov6qAhJk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Anoob.Joseph@cavium.com; Received: from hyd1ajoseph-dt.caveonetworks.com (115.113.156.2) by CO2PR0701MB1063.namprd07.prod.outlook.com (10.160.8.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Wed, 28 Mar 2018 14:28:18 +0000 To: Akhil Goyal , Radu Nicolau Cc: Declan Doherty , Jerin Jacob , Narayana Prasad , dev@dpdk.org References: <1521784251-14820-1-git-send-email-anoob.joseph@caviumnetworks.com> From: Anoob Joseph Message-ID: <186665b3-c687-33af-d61f-bfcd28ccd76e@caviumnetworks.com> Date: Wed, 28 Mar 2018 19:58:02 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <1521784251-14820-1-git-send-email-anoob.joseph@caviumnetworks.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [115.113.156.2] X-ClientProxiedBy: PN1PR01CA0075.INDPRD01.PROD.OUTLOOK.COM (10.174.144.143) To CO2PR0701MB1063.namprd07.prod.outlook.com (10.160.8.142) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5ff3b1b8-d688-4398-4967-08d594b827c6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:CO2PR0701MB1063; X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB1063; 3:SAbpimPYxtq0765hPRQd/b4WpWTCXPxz3aoRxyaV10fQkNifjxfCan90RcLJ7Ne8uv/LaDcxDt4aljAglpT0rdpZYG1uiu7eOJsilV87CeOcONUK79faykEc7TjgFq31BS7g30JjOtfbr7m64WDFaYeJWSJ5P8AoVP8S4/buRae1ashghZcwSYFQixyZa4l52TTj+Eg+RFUxHRTi3/ZBVFCVgduAOD5JkkGws4xRxGfnvU0xrlX+m5mxrdnWdSrV; 25:xVpUWp9fXd9UKQM7dPb6wJ8oY5yv6ih31vGpIRmG10A1IOgJXdsf71MmmxyfK/w/9BHbNz7bbdpzdgOcDvOi32Qmv1Uldi2mmBiOC4ekgfE1HrF3cEYSOUHcI4qGWgw2Fv4ALRhvPdZBAcfeiETZ22afi5d1rXxuPrcU8qstRgQeU1T2/OJfDJnzT7Efc14mGmTZ9mEFsTecqJuX12Q99dOjaxgkiI5BeedHFIkDGbG4WQ8us5EofJbz9uLrKvp0Cbhk8WwN95wxkAYDBL1+oz2COUxr1lDEnaMBGlsPDOekYyz7Jr8EpjqUlVwR61TEVqYOuG2hmIkiA7dMQ/nEJw==; 31:hEFfBy5eepgC67awyNhjk5Si96WBSwcMyjP9piwSYqIaTtI6qsdjZDDy/mvmDrhZfontLxrC0LPisTuqjGhZyqg0uC0950O7vXAOY5wCgD1f4C4xEXSQVa4N+dC7KEdi1QoPK84tZXoFJr0l//PS7XGjTdtLUyXrjx+hoa/fyfLourOL77D7s5pBdI9kSD4KipYZZcGODkmNM8hh+XMDO7KGnsk+KfKl7Xn84avZwEI= X-MS-TrafficTypeDiagnostic: CO2PR0701MB1063: X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB1063; 20:iX8nFOZOs5FPOiN733cZ+mHyP/kZ6zBcr5fIrKgFDhkEWJjyCffyPZsLrunh4XGQmeP9gMI419jMFNV0ZhwY051wFOFTyws0Msxj3LbtHZ+MhzVjlbU9NDbnzFFfWP8Z3vvxnZ4w4dp6XzyT/yRYUvbxuyAXGuYFPQWpuRUBTkldGcAVV65D2KeNTEw5pxUIMI4c/Bp4oGvJEpp2a6EqPgIQbKuHGR07iCIOoEj/5xK70RkwGHmdTPAmD3x1YiJkwQQ2xWTwJVBWoUbCjkif8fQd6ygVrx15g8h001bwCe6pOj8Myk5zZ9J7PbZ9bIfbUpRbgqjv//lMYdugaG3fUO0q+L2FQOxXZil40WJ5H6HmZHS7gzD/8JlkZVb72LxTxF3K2tkRXkeXMYp1GN3jeSMqRZjDnnGLYNtl5D+Vgs/dsArnp2O4mtymHblaqXoWxqxTDbI5qtQ+bXiQbzulbUd7rHqnLroc1tJ/5CbwGvgBKibw4L0IrFIw63ISMVWrt9E2AVc+RinTogyEf8QNRbB5I2yiDZrO1r2eEuB7DCHLbAwedxXs+So9jWSBd8bojysmevlBpRPzEJ+9F4qCl63Zt3moeINZI2ue4wT6kAc=; 4:D1frdzlZKtolyOfzcIxatWvBueJyzedB8pdhytl6q+rqtdlO/sYsKER9/YAf0vgXQHWEu9UnTpjp6VOKbdy7NZuMtDUlhMkjErFllgsqCyus2inHA4MELostIpLxufdqe2FXnzrT2brEIUqzNsV+gonQ2Dy0CKPVz7w5uVV0pQfqIS2b3Bdsj0RucT6zqbSB02Ylf/tzh0hE7E668F+gCbB05TUTs7L7WgwUD/VJJ8qnAwKcjLK1S8L7Gq0KYIJ/tw/qgkl/99JZYnr0YXQB1A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(3231221)(944501327)(52105095)(6041310)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CO2PR0701MB1063; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0701MB1063; X-Forefront-PRVS: 06259BA5A2 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(39380400002)(39860400002)(376002)(366004)(396003)(199004)(189003)(316002)(66066001)(53416004)(305945005)(81156014)(6486002)(8676002)(6116002)(6512007)(67846002)(52146003)(31696002)(23676004)(97736004)(2486003)(65826007)(81166006)(52116002)(5660300001)(53546011)(486005)(476003)(65806001)(7736002)(65956001)(8656006)(386003)(486005)(72206003)(105586002)(2906002)(68736007)(6506007)(6246003)(8936002)(76176011)(58126008)(230700001)(106356001)(47776003)(36756003)(446003)(3846002)(186003)(478600001)(50466002)(2616005)(53936002)(31686004)(956004)(55236004)(16526019)(64126003)(25786009)(4326008)(229853002)(6666003)(110136005)(26005)(54906003)(42882007)(69596002)(11346002); DIR:OUT; SFP:1101; SCL:1; SRVR:CO2PR0701MB1063; H:hyd1ajoseph-dt.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDTzJQUjA3MDFNQjEwNjM7MjM6TUVlKy9QV2JyVUVWK0FvcjUzNzVYMklF?= =?utf-8?B?T2F3Q014MlZyaTBGS1BqbU5NQUVsR3NheDIrWkNjRndBL0JXU0lsVEg4R0ZD?= =?utf-8?B?ZUxQTHJ2WEkySHBQK0tlVFdPQlRHMlRhNTNmVXl4Ukl6cmsyU25TZTRBNWtF?= =?utf-8?B?d1hZL2I2alp1VkxrT3RlVVN6aFhEL1J5VFY5dDhCSVhVeEV1U3dwOGdwNHVQ?= =?utf-8?B?SVV3KzUvbTNiK3BLdFkwdGJ3ZzNVUnFuTDBXbklvZ2ZUejE3ZWJhd3VZZnRJ?= =?utf-8?B?cXAwL2RVV3JJZzZJLzAzTVBLNmc2OFBsNWlNaFhJbURqQzhxUHVoMWx6NStk?= =?utf-8?B?ZFpoN3djMHh0cGd3Nkh3S05PdTNPTVBram1uM0oyUFhiS0JZMHZTY083ZWRu?= =?utf-8?B?dTNwblRRY216MFFZeDlmdDNheXRnY21vcEE5M1ExNmloYUd1UVRFc2IzWmdo?= =?utf-8?B?Vm1DenBsNlp0TWFPNmEzb29ya1g2Q2FuZ2JIZ0xuY0w3cmU3QS9hMHJ6NlVG?= =?utf-8?B?UG93WDRoZHZLNHE0VlBiRDRHWEw1UmFXdk9qV1VMcG5rQUM0WU9XOWk5STZ4?= =?utf-8?B?RXI0YW5UTlE2cDZCOFkrdit3NTlaZmpKWEEwSXJvUkcvVVZubHF3U0lmdXdH?= =?utf-8?B?NVhLcktWcEZRNkd1YnR3U2xlalhYb2Q0K2dSVVZ4V3pZKzBqelg2cHVGL3Bn?= =?utf-8?B?QjZWTnpLak83QkIxd2wxdzZiWGQ4bUExKzUxTi9SWkZYejgvaExEL2djZk1j?= =?utf-8?B?TzZ2bGlrZ2svdld1blVZS2M3a094UVdnSkQ4VTNxYWFuTnlJaWJKMGVhWnNS?= =?utf-8?B?U3JLSDNNZElla1NsY0Q0QWlsd1FOY0xXTmtUOGlmbmlsKzQ4bDh0STU2NWxQ?= =?utf-8?B?aGkwUy9ydG9PejIvOTU1eFFWQ0V1RkJpM3F6U2ZGejdtRHBEdkxyVFYrL2tL?= =?utf-8?B?MGVleksyNTdRUnFiNFdjRDZRWEFvV0l4VUNBaC9CSVprV1RPL2FuL3FabGdN?= =?utf-8?B?Q0piMHhUNkJzSGhpMHNsa1lJQTNJNDJ1NVpmSnRrRWlpUGlkc2J6djlkdlNn?= =?utf-8?B?dmdQSTFQelNsN0tOajVrVTltaURBdG9EeGFJUGlOQUozblRRdkNyS1BNWjFt?= =?utf-8?B?eUQzMzhtcy9wSEJ2UU9OWTg3RzVPdDMyWmVqSmFkcEhBNGhkMEg0a0xzOXh3?= =?utf-8?B?VEZuRTA1VjFWeGZjTHdDTUxWRjVuM2hjZDJ0dXdQekxNc2JPZkVobWFrTDRo?= =?utf-8?B?Y0Y3V3duVFZOQjgzbzVuek91U2tmSGFxNjlrU0h5VlU4TW9xaDFndnNrcGkx?= =?utf-8?B?dWh3dHpSaHl4QXJDNnpmQlFSTGs5TXF1S2ZjRVcyOTVzWmdhdmphYmlENjNy?= =?utf-8?B?bU5ZcE1Gb09KRFM1Y3RLanUwUHZWMzBMa2FJbWE5ZHlodnRLRmxWU0w4VndJ?= =?utf-8?B?RjlVMjFCaCtYVkt2Nno4eDFWWjczeC96dDJsZDZTYXMzN090UEVoelNDaStN?= =?utf-8?B?MFJpc3YvUmxNMmV4Ykd3MHlvT1dCdDhodHBBdndMSndRNzc4NmJjaHpzYUtp?= =?utf-8?B?Y1E0RHVUazlpQkk2QUpJRjc4cm9GdkVaMUR0aFo1ZGZ6eG5Zb2hIVUlMOE9V?= =?utf-8?B?K0ZmQ3RoRWFwYnRGVEZ3M2p2L1lsbFFBS2Q3alUyTTdieGVvL2dJY0dQQnJ2?= =?utf-8?B?cVBGMW5PVlpGMDQxRHo3cENUbWNrTWRUODJVaUdhQzllajdocVB0WjRROG43?= =?utf-8?B?N3l6UkNWa09BSlhwNWViY25LYXNZZnFINkFBWHkwbzlSQkRWMkJkdElOZ0lX?= =?utf-8?B?SklDaFcyV0FxYWF1cndwOEpZbytmOTc4UnJwK0cvSm9Hd0lsUWxyWi8vbmhB?= =?utf-8?B?L3F6S3orOHQzaWoyVHNMeG8rcFNwSE8xbkhwMzN6VFU2MGx2NTVXS0haMUxk?= =?utf-8?B?OWpYZ3FGNC9YcTZTNTZFTWFQbHFZMEwyR1FLL3lvSmVDVkxzazN1c21uWFFq?= =?utf-8?B?WEU2L1c0TWNldVNuZGdZc0ppV3ZOQTZHc0xvU3JOWlJ5bWxadFZMYUh3YlV0?= =?utf-8?B?RjRzRzBnUXh5dkFVZk9lTjJQaCtXUEY1WmYzaElyVFZCU05YQ1NWMFVJM0p4?= =?utf-8?B?d0Qrdz09?= X-Microsoft-Antispam-Message-Info: 6+WLn1mGQwSuNbxAE12/PTfN5cCZ6eMWuSOG1o+RlJJqKTA58HHbYwtIr9gBHoX4YKP8+lzhZ2uR6GA4IBojYRYOBEO3on5zbwQwZzI0LO/Dq4YWjakl/xXcMTijQLe2EXKcBw4FyS615WvgkU1SCk5aqJWIUCqtQML5sDnUwLKNNpDSPUh93RPo7innK+5R X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB1063; 6:NPYrmRj5OVdn6YZEZLGu1hkh2Qqig3kXqA0TmrfOzgC9zr78Su1Mro+Vz0S2AF8gZNxgHUeFrqSHTK0AsiBk4Sl9DDl3tupEsmPqKXMtqzqaIQRfNfLvf/G+gS1h9CwfGH0Sj7wRPKfpKGLmSh8euf+drwGDRtPlUqG01Bulnx00RkoN5rA6br2kyqy0XYFKW9QNje/f5P3Z5lz5AISOjgpzz56ZSspTQPCMxBKbmCtjQmtYYHcZCWrIfvpyryY9ZzrXf/KtXR6ZJB0OwaIPEaQT7w+4L+18VXN1frdgouKY9GWl42MGX8wleMX8n4JjHz/ftUdmZLMPHmfpngyYN06xCE0LxwomTB2AjMxPtO9zN3Uu12dISWpDe17jxFKH+c4yy/QqCjolstYvqfnP7fVbs9RFAMwAaStp+1F5lWGWmWVo20/7vz2EX400DzespXiwguM9+zTJHSr1ZNI+3w==; 5:I3fSSkt0cG8wl19UPBuzdR1gRZRWC2gp1K854WNibET9EvU95OKxZLKeKZjYxAUVbPBtMQ5fRY7MJ26n0OHobRHzz8JSYfSBZyflAfWaEB7EEjMYWhuPGwmmF876fMNu00bxvGMZ+IPBwkHZFncw/zorAY42kdQ/aNyb3mrazpg=; 24:mIo6Tx3hdfc7RKQ04d+pwiCA89UveAf+fr1qW77zKniLv8Rk88dQua4kq44m6DyeVWu8dVGD+krBhF1aUxrCBRgAxNnKZXL68E2uUBuGz0k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB1063; 7:+BYAqQM95TdG3ZFZ6GAifeIUIc8zPUPmjFJuMuP7Jj5p2PW8Omd6B3POeKjQ9PtDSMm5dJWOYiP7n5Zy2cI3PrSAAM2COUPo/QhFzycND44d2J0P48XAydjg8vjoUiI+WuTSeFpibN6d0PbaIxlPuHfUaek0Q6VqPc6n9nPLM+lL+VJO+woH0eTwk3SdcEzDY9KkRyJ6wcXHY8AXbtMcAeCVvjgyryAZEjF1RjfIl6zEip5Q1xb9VKDWsKvE1Dph X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Mar 2018 14:28:18.5461 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5ff3b1b8-d688-4398-4967-08d594b827c6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0701MB1063 Subject: Re: [dpdk-dev] [PATCH] examples/ipsec-secgw: remove redundant string compare X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Mar 2018 14:28:24 -0000 Hi Akhil, Radu, Did you get time to review the patch? Thanks, Anoob On 23/03/18 11:20, Anoob Joseph wrote: > Removing redundant strncmp in parsing long arguments. The getopt library > provides means to identify long options using the "val" field of > structure option. The existing code gets 0 as "val" for all long > arguments and then uses strncmp to figure out which long option was > being referred to. Fixing this. > > In addition, the macros and enums used for long arguments have been > renamed and repositioned adhering to the general convention followed in > various other apps, like l3fwd. > > Signed-off-by: Anoob Joseph > --- > examples/ipsec-secgw/ipsec-secgw.c | 104 +++++++++++++++++++------------------ > 1 file changed, 54 insertions(+), 50 deletions(-) > > diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c > index 5726fd3..b833686 100644 > --- a/examples/ipsec-secgw/ipsec-secgw.c > +++ b/examples/ipsec-secgw/ipsec-secgw.c > @@ -59,10 +59,6 @@ > #define CDEV_MP_CACHE_SZ 64 > #define MAX_QUEUE_PAIRS 1 > > -#define OPTION_CONFIG "config" > -#define OPTION_SINGLE_SA "single-sa" > -#define OPTION_CRYPTODEV_MASK "cryptodev_mask" > - > #define BURST_TX_DRAIN_US 100 /* TX drain every ~100us */ > > #define NB_SOCKETS 4 > @@ -125,6 +121,29 @@ struct ethaddr_info ethaddr_tbl[RTE_MAX_ETHPORTS] = { > { 0, ETHADDR(0x00, 0x16, 0x3e, 0x49, 0x9e, 0xdd) } > }; > > +#define CMD_LINE_OPT_CONFIG "config" > +#define CMD_LINE_OPT_SINGLE_SA "single-sa" > +#define CMD_LINE_OPT_CRYPTODEV_MASK "cryptodev_mask" > + > +enum { > + /* long options mapped to a short option */ > + > + /* first long only option value must be >= 256, so that we won't > + * conflict with short options > + */ > + CMD_LINE_OPT_MIN_NUM = 256, > + CMD_LINE_OPT_CONFIG_NUM, > + CMD_LINE_OPT_SINGLE_SA_NUM, > + CMD_LINE_OPT_CRYPTODEV_MASK_NUM, > +}; > + > +static const struct option lgopts[] = { > + {CMD_LINE_OPT_CONFIG, 1, 0, CMD_LINE_OPT_CONFIG_NUM}, > + {CMD_LINE_OPT_SINGLE_SA, 1, 0, CMD_LINE_OPT_SINGLE_SA_NUM}, > + {CMD_LINE_OPT_CRYPTODEV_MASK, 1, 0, CMD_LINE_OPT_CRYPTODEV_MASK_NUM}, > + {NULL, 0, 0, 0} > +}; > + > /* mask of enabled ports */ > static uint32_t enabled_port_mask; > static uint64_t enabled_cryptodev_mask = UINT64_MAX; > @@ -928,13 +947,13 @@ static void > print_usage(const char *prgname) > { > printf("%s [EAL options] -- -p PORTMASK -P -u PORTMASK" > - " --"OPTION_CONFIG" (port,queue,lcore)[,(port,queue,lcore]" > + " --"CMD_LINE_OPT_CONFIG" (port,queue,lcore)[,(port,queue,lcore]" > " --single-sa SAIDX -f CONFIG_FILE\n" > " -p PORTMASK: hexadecimal bitmask of ports to configure\n" > " -P : enable promiscuous mode\n" > " -u PORTMASK: hexadecimal bitmask of unprotected ports\n" > " -j FRAMESIZE: jumbo frame maximum size\n" > - " --"OPTION_CONFIG": (port,queue,lcore): " > + " --"CMD_LINE_OPT_CONFIG": (port,queue,lcore): " > "rx queues configuration\n" > " --single-sa SAIDX: use single SA index for outbound, " > "bypassing the SP\n" > @@ -1030,42 +1049,6 @@ parse_config(const char *q_arg) > return 0; > } > > -#define __STRNCMP(name, opt) (!strncmp(name, opt, sizeof(opt))) > -static int32_t > -parse_args_long_options(struct option *lgopts, int32_t option_index) > -{ > - int32_t ret = -1; > - const char *optname = lgopts[option_index].name; > - > - if (__STRNCMP(optname, OPTION_CONFIG)) { > - ret = parse_config(optarg); > - if (ret) > - printf("invalid config\n"); > - } > - > - if (__STRNCMP(optname, OPTION_SINGLE_SA)) { > - ret = parse_decimal(optarg); > - if (ret != -1) { > - single_sa = 1; > - single_sa_idx = ret; > - printf("Configured with single SA index %u\n", > - single_sa_idx); > - ret = 0; > - } > - } > - > - if (__STRNCMP(optname, OPTION_CRYPTODEV_MASK)) { > - ret = parse_portmask(optarg); > - if (ret != -1) { > - enabled_cryptodev_mask = ret; > - ret = 0; > - } > - } > - > - return ret; > -} > -#undef __STRNCMP > - > static int32_t > parse_args(int32_t argc, char **argv) > { > @@ -1073,12 +1056,6 @@ parse_args(int32_t argc, char **argv) > char **argvopt; > int32_t option_index; > char *prgname = argv[0]; > - static struct option lgopts[] = { > - {OPTION_CONFIG, 1, 0, 0}, > - {OPTION_SINGLE_SA, 1, 0, 0}, > - {OPTION_CRYPTODEV_MASK, 1, 0, 0}, > - {NULL, 0, 0, 0} > - }; > int32_t f_present = 0; > > argvopt = argv; > @@ -1139,12 +1116,39 @@ parse_args(int32_t argc, char **argv) > } > printf("Enabled jumbo frames size %u\n", frame_size); > break; > - case 0: > - if (parse_args_long_options(lgopts, option_index)) { > + case CMD_LINE_OPT_CONFIG_NUM: > + ret = parse_config(optarg); > + if (ret) { > + printf("Invalid config\n"); > print_usage(prgname); > return -1; > } > break; > + case CMD_LINE_OPT_SINGLE_SA_NUM: > + ret = parse_decimal(optarg); > + if (ret == -1) { > + printf("Invalid argument[sa_idx]\n"); > + print_usage(prgname); > + return -1; > + } > + > + /* else */ > + single_sa = 1; > + single_sa_idx = ret; > + printf("Configured with single SA index %u\n", > + single_sa_idx); > + break; > + case CMD_LINE_OPT_CRYPTODEV_MASK_NUM: > + ret = parse_portmask(optarg); > + if (ret == -1) { > + printf("Invalid argument[portmask]\n"); > + print_usage(prgname); > + return -1; > + } > + > + /* else */ > + enabled_cryptodev_mask = ret; > + break; > default: > print_usage(prgname); > return -1;