mvpp2_cls.h 983 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * RSS and Classifier definitions for Marvell PPv2 Network Controller
  3. *
  4. * Copyright (C) 2014 Marvell
  5. *
  6. * Marcin Wojtas <mw@semihalf.com>
  7. *
  8. * This file is licensed under the terms of the GNU General Public
  9. * License version 2. This program is licensed "as is" without any
  10. * warranty of any kind, whether express or implied.
  11. */
  12. #ifndef _MVPP2_CLS_H_
  13. #define _MVPP2_CLS_H_
  14. /* Classifier constants */
  15. #define MVPP2_CLS_FLOWS_TBL_SIZE 512
  16. #define MVPP2_CLS_FLOWS_TBL_DATA_WORDS 3
  17. #define MVPP2_CLS_LKP_TBL_SIZE 64
  18. #define MVPP2_CLS_RX_QUEUES 256
  19. /* RSS constants */
  20. #define MVPP22_RSS_TABLE_ENTRIES 32
  21. struct mvpp2_cls_flow_entry {
  22. u32 index;
  23. u32 data[MVPP2_CLS_FLOWS_TBL_DATA_WORDS];
  24. };
  25. struct mvpp2_cls_lookup_entry {
  26. u32 lkpid;
  27. u32 way;
  28. u32 data;
  29. };
  30. void mvpp22_init_rss(struct mvpp2_port *port);
  31. void mvpp2_cls_init(struct mvpp2 *priv);
  32. void mvpp2_cls_port_config(struct mvpp2_port *port);
  33. void mvpp2_cls_oversize_rxq_set(struct mvpp2_port *port);
  34. #endif