anchor.diff:  | type           | string      | ''multi_burst''
   | pps            | int         | rate in packets per second 
   | pkts_per_burst | int         | packets in a single burst
  -| ibg            | double      | inter burst gap. delay between bursts
  +| ibg            | double      | ['usec'] inter burst gap. delay between bursts in usec
   | count          | int         | number of bursts. ''0'' means loop forever, ''1'' will fall back to single burst
   |=================
   
  +===== Object type 'vm' anchor:vm_obj[]
  +Describes the VM instructions to be used with this stream
  +
  +.Object type 'vm'
  +[options="header",cols="1,1,3"]
  +|=================
  +| Field       | Type        | Description
  +|=================
  +
  +===== Object type 'rx_stats' anchor:rx_stats_obj[]
  +Describes rx stats for the stream
  +
  +.Object type 'rx_stats'
  +[options="header",cols="1,1,3"]
  +|=================
  +| Field            | Type        | Description
  +| enabled          | boolean     | is rx_stats enabled for this stream
  +| rx_stream_id     | int         | 
  +| seq_enabled      | boolean     | should write 32 bit sequence
  +| latency_enabled  | boolean     | should write 32 bit latency
  +|=================
  +
  +[source,bash]
  +----
  +
  +'Request':
  +
  +{
  +    "id": 1,
  +    "jsonrpc": "2.0",
  +    "method": "add_stream",
  +    "params": {
  +        "port_id": 1,
  +	"stream_id": 502
  +        "stream": {
  +            "enabled": true,
  +            "isg": 4.3,
  +            "mode": {
  +                "pps": 3,
  +                "total_pkts": 5000,
  +                "type": "single_burst"
  +            },
  +            "next_stream_id": -1,
  +            "packet": {
  +                "binary": [
  +                    4,
  +                    1,
  +                    255
  +                ],
  +                "meta": ""
  +            },
  +            "rx_stats": {
  +                "enabled": false
  +            },
  +            "self_start": true,
  +        }
  +    }
  +}
  +
  +'Response':
  +
  +{
  +    "id": 1,
  +    "jsonrpc": "2.0",
  +    "result": "ACK"
  +}
  +
  +
  +----
  +
  +
  +=== Remove Stream
  +* *Name* - 'remove_stream'
  +* *Description* - Removes a stream from a port
  +* *Paramters*
  +** *port_id* - port assosicated with the stream.
  +** *stream_id* - stream to remove
  +
  +* *Result* - ACK in case of success
  +
  +[source,bash]
  +----
  +
  +'Request':
  +
  +{
  +    "id": 1
  +    "jsonrpc": "2.0",
  +    "method": "remove_stream",
  +    "params": {
  +        "port_id": 1,
  +        "stream_id": 502
  +    }
  +}
  +
  +
  +'Response':
  +
  +{
  +    "id": 1
  +    "jsonrpc": "2.0",
  +    "result": "ACK"
  +}
  +
  +----
  +
  +=== Get Stream ID List
  +* *Name* - 'get_stream_list'
  +* *Description* - fetch all the assoicated streams for a port
  +* *Paramters*
  +** *port_id* - port to query for registered streams
  +
  +* *Result* - array of 'stream_id'
  +
  +[source,bash]
  +----
  +
  +'Request':
  +
  +{
  +    "id": 1,
  +    "jsonrpc": "2.0",
  +    "method": "get_stream_list",
  +    "params": {
  +        "port_id": 1
  +    }
  +}
  +
  +'Response':
  +
  +{
  +    "id": 1,
  +    "jsonrpc": "2.0",
  +    "result": [
  +        502,
  +        18
  +    ]
  +}
  +
  +
  +----
  
positive.code: The TRex RPC Server
  ===================
  :author: imarom
  :email: <imarom@cisco.com>
  :revnumber: 1.70-0.0
  :quotes.++:
  
negative.code: [options="header",cols="1,1,3"]
  |=================
  | Field       | Type    | Description 
  | enabled     | boolean | is this stream enabled
  | self_start  | boolean | is this stream triggered by starting injection or triggered by another stream
  | isg         | double  | ['usec'] inter stream gap - delay time in usec until the stream is started
  | next_stream | int     | next stream to start after this stream. -1 means stop after this stream
  | packet      | object  | object of type xref:packet_obj['packet']
  | mode        | object  | object of type xref:mode_obj['mode']
  