git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
replace no-return attributes
[dpdk.git]
/
examples
/
flow_classify
/
flow_classify.c
diff --git
a/examples/flow_classify/flow_classify.c
b/examples/flow_classify/flow_classify.c
index
d0e537e
..
433e64d
100644
(file)
--- a/
examples/flow_classify/flow_classify.c
+++ b/
examples/flow_classify/flow_classify.c
@@
-61,8
+61,7
@@
const char cb_port_delim[] = ":";
static const struct rte_eth_conf port_conf_default = {
.rxmode = {
static const struct rte_eth_conf port_conf_default = {
.rxmode = {
- .max_rx_pkt_len = ETHER_MAX_LEN,
- .ignore_offload_bitfield = 1,
+ .max_rx_pkt_len = RTE_ETHER_MAX_LEN,
},
};
},
};
@@
-99,8
+98,8
@@
static struct rte_acl_field_def ipv4_defs[NUM_FIELDS_IPV4] = {
.size = sizeof(uint8_t),
.field_index = PROTO_FIELD_IPV4,
.input_index = PROTO_INPUT_IPV4,
.size = sizeof(uint8_t),
.field_index = PROTO_FIELD_IPV4,
.input_index = PROTO_INPUT_IPV4,
- .offset = sizeof(struct ether_hdr) +
- offsetof(struct ipv4_hdr, next_proto_id),
+ .offset = sizeof(struct
rte_
ether_hdr) +
+ offsetof(struct
rte_
ipv4_hdr, next_proto_id),
},
/* next input field (IPv4 source address) - 4 consecutive bytes. */
{
},
/* next input field (IPv4 source address) - 4 consecutive bytes. */
{
@@
-109,8
+108,8
@@
static struct rte_acl_field_def ipv4_defs[NUM_FIELDS_IPV4] = {
.size = sizeof(uint32_t),
.field_index = SRC_FIELD_IPV4,
.input_index = SRC_INPUT_IPV4,
.size = sizeof(uint32_t),
.field_index = SRC_FIELD_IPV4,
.input_index = SRC_INPUT_IPV4,
- .offset = sizeof(struct ether_hdr) +
- offsetof(struct ipv4_hdr, src_addr),
+ .offset = sizeof(struct
rte_
ether_hdr) +
+ offsetof(struct
rte_
ipv4_hdr, src_addr),
},
/* next input field (IPv4 destination address) - 4 consecutive bytes. */
{
},
/* next input field (IPv4 destination address) - 4 consecutive bytes. */
{
@@
-119,8
+118,8
@@
static struct rte_acl_field_def ipv4_defs[NUM_FIELDS_IPV4] = {
.size = sizeof(uint32_t),
.field_index = DST_FIELD_IPV4,
.input_index = DST_INPUT_IPV4,
.size = sizeof(uint32_t),
.field_index = DST_FIELD_IPV4,
.input_index = DST_INPUT_IPV4,
- .offset = sizeof(struct ether_hdr) +
- offsetof(struct ipv4_hdr, dst_addr),
+ .offset = sizeof(struct
rte_
ether_hdr) +
+ offsetof(struct
rte_
ipv4_hdr, dst_addr),
},
/*
* Next 2 fields (src & dst ports) form 4 consecutive bytes.
},
/*
* Next 2 fields (src & dst ports) form 4 consecutive bytes.
@@
-132,9
+131,9
@@
static struct rte_acl_field_def ipv4_defs[NUM_FIELDS_IPV4] = {
.size = sizeof(uint16_t),
.field_index = SRCP_FIELD_IPV4,
.input_index = SRCP_DESTP_INPUT_IPV4,
.size = sizeof(uint16_t),
.field_index = SRCP_FIELD_IPV4,
.input_index = SRCP_DESTP_INPUT_IPV4,
- .offset = sizeof(struct ether_hdr) +
- sizeof(struct ipv4_hdr) +
- offsetof(struct tcp_hdr, src_port),
+ .offset = sizeof(struct
rte_
ether_hdr) +
+ sizeof(struct
rte_
ipv4_hdr) +
+ offsetof(struct
rte_
tcp_hdr, src_port),
},
{
/* rte_flow uses a bit mask for protocol ports */
},
{
/* rte_flow uses a bit mask for protocol ports */
@@
-142,9
+141,9
@@
static struct rte_acl_field_def ipv4_defs[NUM_FIELDS_IPV4] = {
.size = sizeof(uint16_t),
.field_index = DSTP_FIELD_IPV4,
.input_index = SRCP_DESTP_INPUT_IPV4,
.size = sizeof(uint16_t),
.field_index = DSTP_FIELD_IPV4,
.input_index = SRCP_DESTP_INPUT_IPV4,
- .offset = sizeof(struct ether_hdr) +
- sizeof(struct ipv4_hdr) +
- offsetof(struct tcp_hdr, dst_port),
+ .offset = sizeof(struct
rte_
ether_hdr) +
+ sizeof(struct
rte_
ipv4_hdr) +
+ offsetof(struct
rte_
tcp_hdr, dst_port),
},
};
},
};
@@
-193,17
+192,23
@@
static inline int
port_init(uint8_t port, struct rte_mempool *mbuf_pool)
{
struct rte_eth_conf port_conf = port_conf_default;
port_init(uint8_t port, struct rte_mempool *mbuf_pool)
{
struct rte_eth_conf port_conf = port_conf_default;
- struct ether_addr addr;
+ struct
rte_
ether_addr addr;
const uint16_t rx_rings = 1, tx_rings = 1;
int retval;
uint16_t q;
struct rte_eth_dev_info dev_info;
struct rte_eth_txconf txconf;
const uint16_t rx_rings = 1, tx_rings = 1;
int retval;
uint16_t q;
struct rte_eth_dev_info dev_info;
struct rte_eth_txconf txconf;
- if (rte_eth_dev_is_valid_port(port))
+ if (
!
rte_eth_dev_is_valid_port(port))
return -1;
return -1;
- rte_eth_dev_info_get(port, &dev_info);
+ retval = rte_eth_dev_info_get(port, &dev_info);
+ if (retval != 0) {
+ printf("Error during getting device (port %u) info: %s\n",
+ port, strerror(-retval));
+ return retval;
+ }
+
if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
port_conf.txmode.offloads |=
DEV_TX_OFFLOAD_MBUF_FAST_FREE;
if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
port_conf.txmode.offloads |=
DEV_TX_OFFLOAD_MBUF_FAST_FREE;
@@
-222,7
+227,6
@@
port_init(uint8_t port, struct rte_mempool *mbuf_pool)
}
txconf = dev_info.default_txconf;
}
txconf = dev_info.default_txconf;
- txconf.txq_flags = ETH_TXQ_FLAGS_IGNORE;
txconf.offloads = port_conf.txmode.offloads;
/* Allocate and set up 1 TX queue per Ethernet port. */
for (q = 0; q < tx_rings; q++) {
txconf.offloads = port_conf.txmode.offloads;
/* Allocate and set up 1 TX queue per Ethernet port. */
for (q = 0; q < tx_rings; q++) {
@@
-238,7
+242,10
@@
port_init(uint8_t port, struct rte_mempool *mbuf_pool)
return retval;
/* Display the port MAC address. */
return retval;
/* Display the port MAC address. */
- rte_eth_macaddr_get(port, &addr);
+ retval = rte_eth_macaddr_get(port, &addr);
+ if (retval != 0)
+ return retval;
+
printf("Port %u MAC: %02" PRIx8 " %02" PRIx8 " %02" PRIx8
" %02" PRIx8 " %02" PRIx8 " %02" PRIx8 "\n",
port,
printf("Port %u MAC: %02" PRIx8 " %02" PRIx8 " %02" PRIx8
" %02" PRIx8 " %02" PRIx8 " %02" PRIx8 "\n",
port,
@@
-247,7
+254,9
@@
port_init(uint8_t port, struct rte_mempool *mbuf_pool)
addr.addr_bytes[4], addr.addr_bytes[5]);
/* Enable RX in promiscuous mode for the Ethernet device. */
addr.addr_bytes[4], addr.addr_bytes[5]);
/* Enable RX in promiscuous mode for the Ethernet device. */
- rte_eth_promiscuous_enable(port);
+ retval = rte_eth_promiscuous_enable(port);
+ if (retval != 0)
+ return retval;
return 0;
}
return 0;
}
@@
-256,7
+265,7
@@
port_init(uint8_t port, struct rte_mempool *mbuf_pool)
* The lcore main. This is the main thread that does the work, reading from
* an input port classifying the packets and writing to an output port.
*/
* The lcore main. This is the main thread that does the work, reading from
* an input port classifying the packets and writing to an output port.
*/
-static __
attribute__((noreturn))
void
+static __
rte_noreturn
void
lcore_main(struct flow_classifier *cls_app)
{
uint16_t port;
lcore_main(struct flow_classifier *cls_app)
{
uint16_t port;
@@
-381,7
+390,7
@@
parse_ipv4_net(char *in, uint32_t *addr, uint32_t *mask_len)
if (get_cb_field(&in, &m, 0, sizeof(uint32_t) * CHAR_BIT, 0))
return -EINVAL;
if (get_cb_field(&in, &m, 0, sizeof(uint32_t) * CHAR_BIT, 0))
return -EINVAL;
- addr[0] =
IPv
4(a, b, c, d);
+ addr[0] =
RTE_IPV
4(a, b, c, d);
mask_len[0] = m;
return 0;
}
mask_len[0] = m;
return 0;
}
@@
-752,7
+761,7
@@
int
main(int argc, char *argv[])
{
struct rte_mempool *mbuf_pool;
main(int argc, char *argv[])
{
struct rte_mempool *mbuf_pool;
- uint
8
_t nb_ports;
+ uint
16
_t nb_ports;
uint16_t portid;
int ret;
int socket_id;
uint16_t portid;
int ret;
int socket_id;
@@
-776,7
+785,7
@@
main(int argc, char *argv[])
rte_exit(EXIT_FAILURE, "Invalid flow_classify parameters\n");
/* Check that there is an even number of ports to send/receive on. */
rte_exit(EXIT_FAILURE, "Invalid flow_classify parameters\n");
/* Check that there is an even number of ports to send/receive on. */
- nb_ports = rte_eth_dev_count();
+ nb_ports = rte_eth_dev_count
_avail
();
if (nb_ports < 2 || (nb_ports & 1))
rte_exit(EXIT_FAILURE, "Error: number of ports must be even\n");
if (nb_ports < 2 || (nb_ports & 1))
rte_exit(EXIT_FAILURE, "Error: number of ports must be even\n");