FOREACH_PORT(pi, ports) {
port = &ports[pi];
/* Check if there is a port which is not started */
- if (port->port_status != RTE_PORT_STARTED)
+ if ((port->port_status != RTE_PORT_STARTED) &&
+ (port->slave_flag == 0))
return 0;
}
FOREACH_PORT(pi, ports) {
port = &ports[pi];
- if (port->port_status != RTE_PORT_STOPPED)
+ if ((port->port_status != RTE_PORT_STOPPED) &&
+ (port->slave_flag == 0))
return 0;
}
}
}
+void set_port_slave_flag(portid_t slave_pid)
+{
+ struct rte_port *port;
+
+ port = &ports[slave_pid];
+ port->slave_flag = 1;
+}
+
+void clear_port_slave_flag(portid_t slave_pid)
+{
+ struct rte_port *port;
+
+ port = &ports[slave_pid];
+ port->slave_flag = 0;
+}
+
const uint16_t vlan_tags[] = {
0, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15,