examples/ip_pipeline: rework flow action CLI

All commands merged into one: cmd_action_parsed.

modified bulk command:
action flow bulk
File line format:
flow <flow ID>
meter 0 <cir> <pir> <cbs> <pbs> meter 1 <cir> <pir> <cbs> <pbs> meter 2
<cir> <pir> <cbs> <pbs> meter 3 <cir> <pir> <cbs> <pbs>
policer 0 <action> <action> <action> policer 1 <action> <action>
<action> policer 2 <action> <action> <action> policer 3 <action>
<action> <action>
port <port ID>

Signed-off-by: Marcin Kerlin <marcinx.kerlin@intel.com>
Signed-off-by: Piotr Azarewicz <piotrx.t.azarewicz@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
This commit is contained in:
Piotr Azarewicz 2016-06-08 12:35:23 +02:00 committed by Thomas Monjalon
parent 93771a569d
commit 816a3db652
5 changed files with 773 additions and 1070 deletions

View File

@ -0,0 +1,68 @@
; BSD LICENSE
;
; Copyright(c) 2016 Intel Corporation. All rights reserved.
; All rights reserved.
;
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions
; are met:
;
; * Redistributions of source code must retain the above copyright
; notice, this list of conditions and the following disclaimer.
; * Redistributions in binary form must reproduce the above copyright
; notice, this list of conditions and the following disclaimer in
; the documentation and/or other materials provided with the
; distribution.
; * Neither the name of Intel Corporation nor the names of its
; contributors may be used to endorse or promote products derived
; from this software without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
; ________________
; RXQ0.0 --->| |---> TXQ0.0
; | |
; RXQ1.0 --->| |---> TXQ1.0
; | Flow |
; RXQ2.0 --->| Actions |---> TXQ2.0
; | |
; RXQ3.0 --->| |---> TXQ3.0
; |________________|
;
;
; Input packet: Ethernet/IPv4
;
; Packet buffer layout:
; # Field Name Offset (Bytes) Size (Bytes)
; 0 Mbuf 0 128
; 1 Headroom 128 128
; 2 Ethernet header 256 14
; 3 IPv4 header 270 20
[EAL]
log_level = 0
[PIPELINE0]
type = MASTER
core = 0
[PIPELINE1]
type = FLOW_ACTIONS
core = 1
pktq_in = RXQ0.0 RXQ1.0 RXQ2.0 RXQ3.0
pktq_out = TXQ0.0 TXQ1.0 TXQ2.0 TXQ3.0
n_flows = 65536
n_meters_per_flow = 4
flow_id_offset = 286; ipdaddr
ip_hdr_offset = 270
color_offset = 128

View File

@ -0,0 +1,119 @@
#
# run ./config/action.sh
#
p 1 action flow 0 meter 0 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 0 policer 0 g G y Y r R
p 1 action flow 0 meter 1 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 0 policer 1 g G y Y r R
p 1 action flow 0 meter 2 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 0 policer 2 g G y Y r R
p 1 action flow 0 meter 3 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 0 policer 3 g G y Y r R
p 1 action flow 0 port 0
p 1 action flow 1 meter 0 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 1 policer 0 g G y Y r R
p 1 action flow 1 meter 1 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 1 policer 1 g G y Y r R
p 1 action flow 1 meter 2 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 1 policer 2 g G y Y r R
p 1 action flow 1 meter 3 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 1 policer 3 g G y Y r R
p 1 action flow 1 port 1
p 1 action flow 2 meter 0 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 2 policer 0 g G y Y r R
p 1 action flow 2 meter 1 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 2 policer 1 g G y Y r R
p 1 action flow 2 meter 2 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 2 policer 2 g G y Y r R
p 1 action flow 2 meter 3 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 2 policer 3 g G y Y r R
p 1 action flow 2 port 2
p 1 action flow 3 meter 0 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 3 policer 0 g G y Y r R
p 1 action flow 3 meter 1 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 3 policer 1 g G y Y r R
p 1 action flow 3 meter 2 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 3 policer 2 g G y Y r R
p 1 action flow 3 meter 3 trtcm 1250000000 1250000000 1000000 1000000
p 1 action flow 3 policer 3 g G y Y r R
p 1 action flow 3 port 3
#p 1 action flow bulk ./config/action.txt
#p 1 action flow ls
p 1 action flow 0 stats
p 1 action flow 1 stats
p 1 action flow 2 stats
p 1 action flow 3 stats
p 1 action dscp 0 class 0 color G
p 1 action dscp 1 class 1 color G
p 1 action dscp 2 class 2 color G
p 1 action dscp 3 class 3 color G
p 1 action dscp 4 class 0 color G
p 1 action dscp 5 class 1 color G
p 1 action dscp 6 class 2 color G
p 1 action dscp 7 class 3 color G
p 1 action dscp 8 class 0 color G
p 1 action dscp 9 class 1 color G
p 1 action dscp 10 class 2 color G
p 1 action dscp 11 class 3 color G
p 1 action dscp 12 class 0 color G
p 1 action dscp 13 class 1 color G
p 1 action dscp 14 class 2 color G
p 1 action dscp 15 class 3 color G
p 1 action dscp 16 class 0 color G
p 1 action dscp 17 class 1 color G
p 1 action dscp 18 class 2 color G
p 1 action dscp 19 class 3 color G
p 1 action dscp 20 class 0 color G
p 1 action dscp 21 class 1 color G
p 1 action dscp 22 class 2 color G
p 1 action dscp 23 class 3 color G
p 1 action dscp 24 class 0 color G
p 1 action dscp 25 class 1 color G
p 1 action dscp 26 class 2 color G
p 1 action dscp 27 class 3 color G
p 1 action dscp 27 class 0 color G
p 1 action dscp 29 class 1 color G
p 1 action dscp 30 class 2 color G
p 1 action dscp 31 class 3 color G
p 1 action dscp 32 class 0 color G
p 1 action dscp 33 class 1 color G
p 1 action dscp 34 class 2 color G
p 1 action dscp 35 class 3 color G
p 1 action dscp 36 class 0 color G
p 1 action dscp 37 class 1 color G
p 1 action dscp 38 class 2 color G
p 1 action dscp 39 class 3 color G
p 1 action dscp 40 class 0 color G
p 1 action dscp 41 class 1 color G
p 1 action dscp 42 class 2 color G
p 1 action dscp 43 class 3 color G
p 1 action dscp 44 class 0 color G
p 1 action dscp 45 class 1 color G
p 1 action dscp 46 class 2 color G
p 1 action dscp 47 class 3 color G
p 1 action dscp 48 class 0 color G
p 1 action dscp 49 class 1 color G
p 1 action dscp 50 class 2 color G
p 1 action dscp 51 class 3 color G
p 1 action dscp 52 class 0 color G
p 1 action dscp 53 class 1 color G
p 1 action dscp 54 class 2 color G
p 1 action dscp 55 class 3 color G
p 1 action dscp 56 class 0 color G
p 1 action dscp 57 class 1 color G
p 1 action dscp 58 class 2 color G
p 1 action dscp 59 class 3 color G
p 1 action dscp 60 class 0 color G
p 1 action dscp 61 class 1 color G
p 1 action dscp 62 class 2 color G
p 1 action dscp 63 class 3 color G
p 1 action dscp ls

View File

@ -0,0 +1,8 @@
#
# p <pipelineid> action flow bulk ./config/action.txt
#
flow 0 meter 0 trtcm 1250000000 1250000000 1000000 1000000 policer 0 g G y Y r R meter 1 trtcm 1250000000 1250000000 1000000 1000000 policer 1 g G y Y r R meter 2 trtcm 1250000000 1250000000 1000000 1000000 policer 2 g G y Y r R meter 3 trtcm 1250000000 1250000000 1000000 1000000 policer 3 g G y Y r R port 0
flow 1 meter 0 trtcm 1250000000 1250000000 1000000 1000000 policer 0 g G y Y r R meter 1 trtcm 1250000000 1250000000 1000000 1000000 policer 1 g G y Y r R meter 2 trtcm 1250000000 1250000000 1000000 1000000 policer 2 g G y Y r R meter 3 trtcm 1250000000 1250000000 1000000 1000000 policer 3 g G y Y r R port 1
flow 2 meter 0 trtcm 1250000000 1250000000 1000000 1000000 policer 0 g G y Y r R meter 1 trtcm 1250000000 1250000000 1000000 1000000 policer 1 g G y Y r R meter 2 trtcm 1250000000 1250000000 1000000 1000000 policer 2 g G y Y r R meter 3 trtcm 1250000000 1250000000 1000000 1000000 policer 3 g G y Y r R port 2
flow 3 meter 0 trtcm 1250000000 1250000000 1000000 1000000 policer 0 g G y Y r R meter 1 trtcm 1250000000 1250000000 1000000 1000000 policer 1 g G y Y r R meter 2 trtcm 1250000000 1250000000 1000000 1000000 policer 2 g G y Y r R meter 3 trtcm 1250000000 1250000000 1000000 1000000 policer 3 g G y Y r R port 3

File diff suppressed because it is too large Load Diff

View File

@ -73,6 +73,17 @@ app_pipeline_fa_flow_policer_stats_read(struct app_params *app,
int clear,
struct pipeline_fa_policer_stats *stats);
#ifndef APP_PIPELINE_FA_MAX_RECORDS_IN_FILE
#define APP_PIPELINE_FA_MAX_RECORDS_IN_FILE 65536
#endif
int
app_pipeline_fa_load_file(char *filename,
uint32_t *flow_ids,
struct pipeline_fa_flow_params *p,
uint32_t *n_flows,
uint32_t *line);
extern struct pipeline_type pipeline_flow_actions;
#endif