net/softnic: add link object
[dpdk.git] / drivers / net / softnic / rte_eth_softnic_internals.h
index 002b25f..36dc247 100644 (file)
@@ -51,6 +51,24 @@ struct softnic_swq {
 
 TAILQ_HEAD(softnic_swq_list, softnic_swq);
 
+/**
+ * LINK
+ */
+struct softnic_link_params {
+       const char *dev_name;
+       uint16_t port_id; /**< Valid only when *dev_name* is NULL. */
+};
+
+struct softnic_link {
+       TAILQ_ENTRY(softnic_link) node;
+       char name[NAME_SIZE];
+       uint16_t port_id;
+       uint32_t n_rxq;
+       uint32_t n_txq;
+};
+
+TAILQ_HEAD(softnic_link_list, softnic_link);
+
 /**
  * Traffic Management (TM) Internals
  */
@@ -176,6 +194,7 @@ struct pmd_internals {
        } soft;
 
        struct softnic_swq_list swq_list;
+       struct softnic_link_list link_list;
 };
 
 /**
@@ -196,6 +215,24 @@ softnic_swq_create(struct pmd_internals *p,
        const char *name,
        struct softnic_swq_params *params);
 
+/**
+ * LINK
+ */
+int
+softnic_link_init(struct pmd_internals *p);
+
+void
+softnic_link_free(struct pmd_internals *p);
+
+struct softnic_link *
+softnic_link_find(struct pmd_internals *p,
+       const char *name);
+
+struct softnic_link *
+softnic_link_create(struct pmd_internals *p,
+       const char *name,
+       struct softnic_link_params *params);
+
 /**
  * Traffic Management (TM) Operation
  */