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:
parent
93771a569d
commit
816a3db652
68
examples/ip_pipeline/config/action.cfg
Normal file
68
examples/ip_pipeline/config/action.cfg
Normal 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
|
119
examples/ip_pipeline/config/action.sh
Normal file
119
examples/ip_pipeline/config/action.sh
Normal 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
|
8
examples/ip_pipeline/config/action.txt
Normal file
8
examples/ip_pipeline/config/action.txt
Normal 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
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user