tapv2: CLI and binary API fixes 25/10925/2
authorSteven <sluong@cisco.com>
Thu, 1 Mar 2018 17:36:01 +0000 (09:36 -0800)
committerDamjan Marion <dmarion.lists@gmail.com>
Fri, 2 Mar 2018 09:08:01 +0000 (09:08 +0000)
commit9e6356962a0cbb84f7ea9056b954d65aaa231a61
tree457cf3c693fa15dad7cd7e11aaaf66e586560812
parent204591d1bd754f6086edcf8b27a95beab929a78f
tapv2: CLI and binary API fixes

1. When interface create encouners an error (see test below),
the same id cannot be used again.
This is due to hash_set is called too early in the function. After the
hash entry is set, there are different errors may cause the interface
create to be aborted. But we didn't remove the hash entry when error is
encountered. The fix is to move the hash_set call near the end which has
no more "goto error"

DBGvpp# create tap id 1 rx-ring-size 1021 tx-ring-size 1021
create tap id 1 rx-ring-size 1021 tx-ring-size 1021
create tap: ring size must be power of 2
DBGvpp# create tap id 1 rx-ring-size 1024 tx-ring-size 1024
create tap id 1 rx-ring-size 1024 tx-ring-size 1024
create tap: interface already exists
DBGvpp#

2. multiple issues exist with api_format.c with the below command

binary-api tap_create_v2 id 4 hw-addr 90:e2:ba:76:cf:2f rx-ring-size 1024 tx-ring-size 1024

- hw_addr is not taken due to the test for random mac is inverted
- id is an integer, not a string
- integer values were not converted to network format

Change-Id: I5a669d702a80ad158517df46f0ab089e4d0d692e
Signed-off-by: Steven <sluong@cisco.com>
src/vat/api_format.c
src/vnet/devices/tap/tap.c
src/vnet/devices/tap/tapv2_api.c
src/vpp/api/custom_dump.c