On 12/21/2017 4:01 PM, Vipin Varghese wrote: > Added fixes for user TAP user MAC > 1) user format to RTE_PMD_REGISTER_PARAM_STRING > 2) TAP to the RTE_LOG in absence of dynamic RTE_LOG > 3) Boundary case for MAC string added > > --------------------------------------------------------------- > > Other Details: > 1) not to extract "string to mac" conversion to its own function > 2) set_mac_type does not take any pmd or device name > 3) Segault for boundary cases 'mac="01:01:01:01:01:01', not found > 4) Added user MAC format string
Hi Vipin, Patch version changes shouldn't be part of git commit. But it is good to put them after "---" in commit log. Can you please update the commit log? Also please add maintainer to the cc/to . > > Signed-off-by: Vipin Varghese <vipin.vargh...@intel.com> <...> > - strncpy(macTemp, value, 18); > - > - macByte = strtok(macTemp, ":"); > - while ((macByte != NULL) && > - (strspn(macByte, > "0123456789ABCDEFabcdef")) && > - (strspn((macByte + 1), > "0123456789ABCDEFabcdef")) && > - (strlen(macByte) == 2)) { > - user_mac[index] = strtoul(macByte, > NULL, 16); > - macByte = strtok(NULL, ":"); > + strncpy(mac_temp, value, 18); > + mac_temp[19] = "\0"; This cause a build error [1], should be used '\0': [1] ...drivers/net/tap/rte_eth_tap.c: In function ‘set_mac_type’: ...drivers/net/tap/rte_eth_tap.c:1467:18: error: assignment makes integer from pointer without a cast [-Werror=int-conversion] mac_temp[19] = "\0"; ^ <....> > - ETH_TAP_IFACE_ARG "=<string> " > - ETH_TAP_SPEED_ARG "=<int> " > - ETH_TAP_MAC_ARG "=" ETH_TAP_MAC_FIXED " " > - ETH_TAP_REMOTE_ARG "=<string>"); > + ETH_TAP_IFACE_ARG "=<string> " > + ETH_TAP_SPEED_ARG "=<int> " > + ETH_TAP_MAC_ARG "=" ETH_TAP_MAC_FIXED "|" ETH_TAP_USER_MAC_FMT " " > + ETH_TAP_REMOTE_ARG "=<string>"); This also build a build error [2] because of how ETH_TAP_USER_MAC_FMT defined [3]. [2] .../drivers/net/tap/rte_eth_tap.c: At top level: .../drivers/net/tap/rte_eth_tap.c:45:33: error: called object is not a function or function pointer #define ETH_TAP_IFACE_ARG "iface" ^ .../build/include/rte_dev.h:265:25: note: in definition of macro ‘RTE_PMD_REGISTER_PARAM_STRING’ __attribute__((used)) = str ^~~ .../drivers/net/tap/rte_eth_tap.c:1628:2: note: in expansion of macro ‘ETH_TAP_IFACE_ARG’ ETH_TAP_IFACE_ARG "=<string> " ^~~~~~~~~~~~~~~~~ .../drivers/net/tap/rte_eth_tap.c:1630:65: error: expected ‘,’ or ‘;’ before string constant ETH_TAP_MAC_ARG "=" ETH_TAP_MAC_FIXED "|" ETH_TAP_USER_MAC_FMT " " ^ .../build/include/rte_dev.h:265:25: note: in definition of macro ‘RTE_PMD_REGISTER_PARAM_STRING’ __attribute__((used)) = str ^~~ [3] #define ETH_TAP_USER_MAC_FMT ("xx:xx:xx:xx:xx:xx") parenthesis ...