.max_supported_rx_frame_size = 9216,
.caps.secondary_interfaces = mvpp2_port.is_dsa != 0,
},
+ .args = VNET_DEV_ARGS ({
+ .id = MVPP2_PORT_ARG_DSA_ENABLED,
+ .type = VNET_DEV_ARG_TYPE_ENUM,
+ .name = "dsa_enable",
+ .desc = "DSA header parsing (on, off, auto)",
+ .default_val.enum_val = MVPP2_PORT_DSA_ENABLED_AUTO,
+ .enum_vals = VNET_DEV_ARG_ENUM_VALS(
+ { .val = MVPP2_PORT_DSA_ENABLED_OFF, .name = "off", },
+ { .val = MVPP2_PORT_DSA_ENABLED_ON, .name = "on", },
+ { .val = MVPP2_PORT_DSA_ENABLED_AUTO, .name = "auto", },
+ ),
+ }),
.ops = {
.init = mvpp2_port_init,
.deinit = mvpp2_port_deinit,
log_debug (port->dev, "");
+ foreach_vnet_dev_args (arg, port)
+ if (arg->id == MVPP2_PORT_ARG_DSA_ENABLED)
+ switch (vnet_dev_arg_get_enum (arg))
+ {
+ case MVPP2_PORT_DSA_ENABLED_ON:
+ mp->is_dsa = 1;
+ break;
+ case MVPP2_PORT_DSA_ENABLED_OFF:
+ mp->is_dsa = 0;
+ break;
+ case MVPP2_PORT_DSA_ENABLED_AUTO:
+ break;
+ default:
+ ASSERT (0);
+ break;
+ }
+
snprintf (match, sizeof (match), "ppio-%d:%d", md->pp_id, port->port_id);
struct pp2_ppio_params ppio_params = {
MV_DSA_TAG_TYPE_FORWARD = 3
} mv_dsa_tag_type_t;
+typedef enum
+{
+ MVPP2_PORT_DSA_ENABLED_OFF = 0,
+ MVPP2_PORT_DSA_ENABLED_ON = 1,
+ MVPP2_PORT_DSA_ENABLED_AUTO = 2,
+} mvpp2_port_dsa_enabled_t;
+
+typedef enum
+{
+ MVPP2_PORT_ARG_DSA_ENABLED,
+} mvpp2_port_args_t;
+
typedef enum
{
MVPP2_SEC_IF_ARG_DSA_SWITCH,