- if (mask && sscanf(s, "arp(sip="IP_SCAN_FMT"/"IP_SCAN_FMT","
- "tip="IP_SCAN_FMT"/"IP_SCAN_FMT","
- "op=%i/%i,sha="ETH_ADDR_SCAN_FMT"/"ETH_ADDR_SCAN_FMT","
- "tha="ETH_ADDR_SCAN_FMT"/"ETH_ADDR_SCAN_FMT")%n",
- IP_SCAN_ARGS(&arp_sip), IP_SCAN_ARGS(&arp_sip_mask),
- IP_SCAN_ARGS(&arp_tip), IP_SCAN_ARGS(&arp_tip_mask),
- &arp_op, &arp_op_mask,
- ETH_ADDR_SCAN_ARGS(arp_sha),
- ETH_ADDR_SCAN_ARGS(arp_sha_mask),
- ETH_ADDR_SCAN_ARGS(arp_tha),
- ETH_ADDR_SCAN_ARGS(arp_tha_mask), &n) > 0 && n > 0) {
- struct ovs_key_arp arp_key;
- struct ovs_key_arp arp_mask;
-
- memset(&arp_key, 0, sizeof arp_key);
- arp_key.arp_sip = arp_sip;
- arp_key.arp_tip = arp_tip;
+ if (mask && ovs_scan(s, "arp(sip="IP_SCAN_FMT"/"IP_SCAN_FMT","
+ "tip="IP_SCAN_FMT"/"IP_SCAN_FMT","
+ "op=%"SCNi16"/%"SCNi16","
+ "sha="ETH_ADDR_SCAN_FMT"/"ETH_ADDR_SCAN_FMT","
+ "tha="ETH_ADDR_SCAN_FMT"/"ETH_ADDR_SCAN_FMT")%n",
+ IP_SCAN_ARGS(&arp_key.arp_sip),
+ IP_SCAN_ARGS(&arp_mask.arp_sip),
+ IP_SCAN_ARGS(&arp_key.arp_tip),
+ IP_SCAN_ARGS(&arp_mask.arp_tip),
+ &arp_op, &arp_op_mask,
+ ETH_ADDR_SCAN_ARGS(arp_key.arp_sha),
+ ETH_ADDR_SCAN_ARGS(arp_mask.arp_sha),
+ ETH_ADDR_SCAN_ARGS(arp_key.arp_tha),
+ ETH_ADDR_SCAN_ARGS(arp_mask.arp_tha), &n)) {