diff options
author | Anca Jeanina FLOAREA <anca.floarea@freescale.com> | 2013-08-02 11:56:08 (GMT) |
---|---|---|
committer | Rivera Jose-B46482 <Jose.G.Rivera@freescale.com> | 2013-08-14 22:51:03 (GMT) |
commit | f6ec6d368cb9d8a3cb4e73a47ddb4438c1ff20db (patch) | |
tree | 6588ee1c091ceaea85090d4282e30275710514ca /include/linux | |
parent | 10fc25ba7530e123bee4eefc466c07aa5a629961 (diff) | |
download | linux-fsl-qoriq-f6ec6d368cb9d8a3cb4e73a47ddb4438c1ff20db.tar.xz |
dpa_offload: Add support in DPA Stats for miss statistics
Added support in DPA Stats to retrieve the statistics for
the miss-entry of either a Classification Node or a
Classification Table. The user can request statistics for
miss-entry by providing the key set to NULL. The Classification
counter API was changed in order to allow the user to
provide NULL instead of a valid key.
Signed-off-by: Anca Jeanina FLOAREA <anca.floarea@freescale.com>
Change-Id: Idf1324414f25e45dae908df01e0dc008db0fd083
Reviewed-on: http://git.am.freescale.net:8181/3740
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Zanoschi Aurelian-B43522 <Aurelian.Zanoschi@freescale.com>
Reviewed-by: Rivera Jose-B46482 <Jose.G.Rivera@freescale.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/fsl_dpa_stats.h | 67 |
1 files changed, 46 insertions, 21 deletions
diff --git a/include/linux/fsl_dpa_stats.h b/include/linux/fsl_dpa_stats.h index ba11791..b8fe850 100644 --- a/include/linux/fsl_dpa_stats.h +++ b/include/linux/fsl_dpa_stats.h @@ -396,8 +396,11 @@ struct dpa_stats_cnt_classif_tbl { /* Table descriptor */ int td; - /* Key to identify a specific entry */ - struct dpa_offload_lookup_key key; + /* + * Pointer to a key that identifies a specific entry or NULL in order + * to obtain statistics for miss entry + */ + struct dpa_offload_lookup_key *key; /* * Single or multiple selection of Classifier Table counters @@ -429,8 +432,11 @@ struct dpa_stats_cnt_classif_node { /* The type of FMAN Classification Node */ enum dpa_stats_classif_node_type ccnode_type; - /* Key to identify a specific entry */ - struct dpa_offload_lookup_key key; + /* + * Pointer to a key that identifies a specific entry or NULL in order + * to obtain statistics for miss entry + */ + struct dpa_offload_lookup_key *key; /* * Single or multiple selection of Classifier @@ -576,11 +582,17 @@ enum dpa_stats_classif_key_type { /* DPA Stats Classification counter - pair of keys */ struct dpa_offload_lookup_key_pair { - /* Key to identify the first entry */ - struct dpa_offload_lookup_key first_key; + /* + * Pointer to a key that identifies the first entry or NULL in order + * to identify the miss entry of the first table + */ + struct dpa_offload_lookup_key *first_key; - /* Key to identify the entry connected to the first entry */ - struct dpa_offload_lookup_key second_key; + /* + * Pointer to a key that identifies the entry connected to the first + * entry first entry or NULL in order to identify the miss entry + */ + struct dpa_offload_lookup_key *second_key; }; /* DPA Stats Classifier Table class counter parameters */ @@ -601,18 +613,28 @@ struct dpa_stats_cls_cnt_classif_tbl { */ /* - * Array of keys to identify specific entries. A key can be - * 'invalidated' by providing the 'byte' and 'mask' pointers - * set to NULL. + * Pointer to an array of keys, where each element of the array + * can either be a key that identifies a specific entry or NULL + * in order to obtain the statistics for the miss entry. A key + * can be'invalidated' by providing the 'byte' pointer set + * to NULL. */ - struct dpa_offload_lookup_key *keys; + struct dpa_offload_lookup_key **keys; /* * Array of 'pair-keys' to identify specific entries. A key pair * can be 'invalidated' by providing the 'byte' and 'mask' * pointers of the first key set to NULL */ - struct dpa_offload_lookup_key_pair *pairs; + + /* + * Pointer to an array of ‘pair-keys’, where each element of the + * array can either be a ‘pair-key’ that identifies a specific + * entry or NULL in in order to obtain the statistics for the + * miss entry. A key pair can be 'invalidated' by providing the + * 'byte' pointer of the first key set to NULL. + */ + struct dpa_offload_lookup_key_pair **pairs; }; /* @@ -636,7 +658,7 @@ struct dpa_stats_cls_cnt_classif_node { enum dpa_stats_classif_node_type ccnode_type; /* Array of keys to identify specific entries */ - struct dpa_offload_lookup_key *keys; + struct dpa_offload_lookup_key **keys; /* * Single or multiple selection of Classifier counters @@ -739,17 +761,20 @@ struct dpa_stats_cls_member_params { union { /* - * Key to set or update in case the byte and mask pointers are - * not NULL, or class member to invalidate otherwise + * Pointer to a key to set or update in case the byte pointer is + * not NULL, or class member to invalidate otherwise. The + * pointer can be NULL, in which case it represents the miss + * entry. */ - struct dpa_offload_lookup_key key; + struct dpa_offload_lookup_key *key; /* - * Key to set or update in case the byte and mask pointers of - * the first key are not NULL, or class member to invalidate - * otherwise + * Pointer to a 'pair-key' to set or update in case the byte + * pointer of the first key is not NULL, or class member to + * invalidate otherwise. The pointer can be NULL, in which case + * it represents the miss entry. */ - struct dpa_offload_lookup_key_pair pair; + struct dpa_offload_lookup_key_pair *pair; /* * Security association identifier to set or update or class |