diff options
author | 2016-05-31 07:33:29 -0700 | |
---|---|---|
committer | 2016-07-12 15:12:58 +0000 | |
commit | 4ac74c9599c73510900c18ff4c86ca390993adac (patch) | |
tree | e02baf9178ddad4f1cf810f04c33af1c2fd33f42 /vpp | |
parent | 41da02d96ba145a1778335391b8af7bbd1b4d6e6 (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.c | 12 | ||||
-rw-r--r-- | vpp/vpp-api/vpe.api | 24 |
2 files changed, 36 insertions, 0 deletions
diff --git a/vpp/vpp-api/api.c b/vpp/vpp-api/api.c index 4d4c71c6..9acda745 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 63ca8477..ffc25752 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; |