vppapigen: update markdown documentation 00/24600/2
authorPaul Vinciguerra <pvinci@vinciconsulting.com>
Tue, 28 Jan 2020 18:00:05 +0000 (13:00 -0500)
committerOle Trøan <otroan@employees.org>
Thu, 30 Jan 2020 11:06:18 +0000 (11:06 +0000)
- Add newly added typedefs.
- Update string examples.

Change-Id: I1e7ee7cbf5901ba97302472521bf1f42a14765ea
Type: docs
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
src/tools/vppapigen/VPPAPI.md

index 9f6ef65..df211d8 100644 (file)
@@ -5,7 +5,7 @@ The VPP API language is used to define a RPC interface between VPP and its
 control plane. The API messages supports shared memory transport and
 Unix domain sockets (SOCK_STREAM).
 
 control plane. The API messages supports shared memory transport and
 Unix domain sockets (SOCK_STREAM).
 
-The wire format is essentially that of a packed C struct.
+The wire format is essentially that of a network formatted (big-endian) packed C struct.
 
 The VPP API compiler is located in *src/tools/vppapigen* and can currently
 compile to JSON or C (used by the VPP binary itself).
 
 The VPP API compiler is located in *src/tools/vppapigen* and can currently
 compile to JSON or C (used by the VPP binary itself).
@@ -61,10 +61,11 @@ define show_version_reply
 {
   u32 context;
   i32 retval;
 {
   u32 context;
   i32 retval;
-  string program [limit = 32];
-  string version [limit = 32];
-  string build_date [limit = 32];
-  string build_directory [limit = 256];
+  string program [32];
+  string version [32];
+  string build_date [32];
+  /* The final field can be a variable length argument */
+  string build_directory [];
 };
 
 ```
 };
 
 ```
@@ -140,7 +141,7 @@ typedef u8 ip6_address[16];
 ```
 
 Where the above defines two new types *vl_api_ip4_address_t* and
 ```
 
 Where the above defines two new types *vl_api_ip4_address_t* and
-*vl_api_ip6_address_t*. These are aliases for the underlaying
+*vl_api_ip6_address_t*. These are aliases for the underlying
 u8 array.
 
 In the other form, it is used to specify an abstract data type.
 u8 array.
 
 In the other form, it is used to specify an abstract data type.
@@ -270,7 +271,7 @@ receive sw_interface_event messages whenever interface states changes.
 ### Scalar Value Types
 
 .api type|size|C type|Python type
 ### Scalar Value Types
 
 .api type|size|C type|Python type
----------|----|------------------
+---------|----|------|-----------
 i8       |   1|i8    |int
 u8       |   1|u8    |int
 i16      |   2|i16   |int
 i8       |   1|i8    |int
 u8       |   1|u8    |int
 i16      |   2|i16   |int
@@ -294,6 +295,8 @@ vl_api_ip6_address_t|16|vl_api_ip6_address_t|`<class 'ipaddress.IPv6Address'>`
 vl_api_prefix_t|21|vl_api_prefix_t|`<class 'ipaddress.IPv4Network'> or <class 'ipaddress.IPv6Network'>`
 vl_api_ip4_prefix_t|5|vl_api_ip4_prefix_t|`<class 'ipaddress.IPv4Network'>`
 vl_api_ip6_prefix_t|17|vl_api_ip6_prefix_t|`<class 'ipaddress.IPv6Network'>`
 vl_api_prefix_t|21|vl_api_prefix_t|`<class 'ipaddress.IPv4Network'> or <class 'ipaddress.IPv6Network'>`
 vl_api_ip4_prefix_t|5|vl_api_ip4_prefix_t|`<class 'ipaddress.IPv4Network'>`
 vl_api_ip6_prefix_t|17|vl_api_ip6_prefix_t|`<class 'ipaddress.IPv6Network'>`
+vl_api_ip4_address_with_prefix_t|5|vl_api_ip4_address_with_prefix_t|`<class 'ipaddress.IPv4Interface'>`
+vl_api_ip6_address_with_prefix_t|17|vl_api_ip6_address_with_prefix_t|`<class 'ipaddress.IPv6Interface'>`
 
 #### vnet/ethernet/ethernet_types.api
 .api type|size|C type|Python type
 
 #### vnet/ethernet/ethernet_types.api
 .api type|size|C type|Python type