aboutsummaryrefslogtreecommitdiffstats
path: root/vpp
diff options
context:
space:
mode:
authorMatus Fabian <matfabia@cisco.com>2016-05-31 07:33:29 -0700
committerDamjan Marion <dmarion.lists@gmail.com>2016-07-12 15:12:58 +0000
commit4ac74c9599c73510900c18ff4c86ca390993adac (patch)
treee02baf9178ddad4f1cf810f04c33af1c2fd33f42 /vpp
parent41da02d96ba145a1778335391b8af7bbd1b4d6e6 (diff)
policer action
JIRA: VPP-90 Policer allows you to specify the action to be taken on a packet: conform-action (green color) exceed-action (yellow color) violate-action (red color) Action to take on packets: drop - drops the packet transmit - transmits the packet, the packet is not altered mark-and-transmit <DSCP> - sets the DSCP value and transmits the packet Change-Id: I59c037e55e7e2a9fc9b9752e92426f3977f5587b Signed-off-by: Matus Fabian <matfabia@cisco.com>
Diffstat (limited to 'vpp')
-rw-r--r--vpp/vpp-api/api.c12
-rw-r--r--vpp/vpp-api/vpe.api24
2 files changed, 36 insertions, 0 deletions
diff --git a/vpp/vpp-api/api.c b/vpp/vpp-api/api.c
index 4d4c71c621c..9acda74547b 100644
--- a/vpp/vpp-api/api.c
+++ b/vpp/vpp-api/api.c
@@ -6328,6 +6328,12 @@ vl_api_policer_add_del_t_handler
cfg.rb.kbps.eir_kbps = mp->eir;
cfg.rb.kbps.cb_bytes = mp->cb;
cfg.rb.kbps.eb_bytes = mp->eb;
+ cfg.conform_action.action_type = mp->conform_action_type;
+ cfg.conform_action.dscp = mp->conform_dscp;
+ cfg.exceed_action.action_type = mp->exceed_action_type;
+ cfg.exceed_action.dscp = mp->exceed_dscp;
+ cfg.violate_action.action_type = mp->violate_action_type;
+ cfg.violate_action.dscp = mp->violate_dscp;
error = policer_add_del(vm, name, &cfg, mp->is_add);
@@ -6357,6 +6363,12 @@ send_policer_details (u8 *name,
mp->rate_type = config->rate_type;
mp->round_type = config->rnd_type;
mp->type = config->rfc;
+ mp->conform_action_type = config->conform_action.action_type;
+ mp->conform_dscp = config->conform_action.dscp;
+ mp->exceed_action_type = config->exceed_action.action_type;
+ mp->exceed_dscp = config->exceed_action.dscp;
+ mp->violate_action_type = config->violate_action.action_type;
+ mp->violate_dscp = config->violate_action.dscp;
mp->single_rate = templ->single_rate ? 1 : 0;
mp->color_aware = templ->color_aware ? 1 : 0;
mp->scale = htonl(templ->scale);
diff --git a/vpp/vpp-api/vpe.api b/vpp/vpp-api/vpe.api
index 63ca8477646..ffc2575223f 100644
--- a/vpp/vpp-api/vpe.api
+++ b/vpp/vpp-api/vpe.api
@@ -3619,6 +3619,12 @@ define af_packet_delete_reply {
@param rate_type - rate type
@param round_type - rounding type
@param type - policer algorithm
+ @param conform_action_type - conform action type
+ @param conform_dscp - DSCP for conform mar-and-transmit action
+ @param exceed_action_type - exceed action type
+ @param exceed_dscp - DSCP for exceed mar-and-transmit action
+ @param violate_action_type - violate action type
+ @param violate_dscp - DSCP for violate mar-and-transmit action
*/
define policer_add_del {
u32 client_index;
@@ -3633,6 +3639,12 @@ define policer_add_del {
u8 rate_type;
u8 round_type;
u8 type;
+ u8 conform_action_type;
+ u8 conform_dscp;
+ u8 exceed_action_type;
+ u8 exceed_dscp;
+ u8 violate_action_type;
+ u8 violate_dscp;
};
/** \brief Add/del policer response
@@ -3668,6 +3680,12 @@ define policer_dump {
@param rate_type - rate type
@param round_type - rounding type
@param type - policer algorithm
+ @param conform_action_type - conform action type
+ @param conform_dscp - DSCP for conform mar-and-transmit action
+ @param exceed_action_type - exceed action type
+ @param exceed_dscp - DSCP for exceed mar-and-transmit action
+ @param violate_action_type - violate action type
+ @param violate_dscp - DSCP for violate mar-and-transmit action
@param single_rate - 1 = single rate policer, 0 = two rate policer
@param color_aware - for hierarchical policing
@param scale - power-of-2 shift amount for lower rates
@@ -3690,6 +3708,12 @@ manual_java define policer_details {
u8 rate_type;
u8 round_type;
u8 type;
+ u8 conform_action_type;
+ u8 conform_dscp;
+ u8 exceed_action_type;
+ u8 exceed_dscp;
+ u8 violate_action_type;
+ u8 violate_dscp;
u8 single_rate;
u8 color_aware;
u32 scale;