Example #1
0
sw_error_t
cmd_show_fdb(a_uint32_t *arg_val)
{
    sw_error_t rtn;
    a_uint32_t cnt = 0;
    fal_fdb_op_t    *fdb_op    = (fal_fdb_op_t *)    (ioctl_buf + sizeof(sw_error_t) / 4);
    fal_fdb_entry_t *fdb_entry = (fal_fdb_entry_t *) (ioctl_buf + sizeof(sw_error_t) / 4 + sizeof(fal_fdb_op_t) / 4);

    aos_mem_zero(fdb_op,    sizeof (fal_fdb_op_t));
    aos_mem_zero(fdb_entry, sizeof (fal_fdb_entry_t));
    arg_val[0] = SW_API_FDB_EXTEND_FIRST;

    while (1)
    {
        arg_val[1] = (a_uint32_t) ioctl_buf;
        arg_val[2] = get_devid();
        arg_val[3] = (a_uint32_t) fdb_op;
        arg_val[4] = (a_uint32_t) fdb_entry;

        rtn = cmd_exec_api(arg_val);
        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
        {
            break;
        }
        arg_val[0] = SW_API_FDB_EXTEND_NEXT;
        cnt++;
    }

    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
        cmd_print_error(rtn);
    else
        dprintf("\ntotal %d entries\n", cnt);

    return SW_OK;
}
Example #2
0
sw_error_t
cmd_show_fdb(a_uint32_t *arg_val)
{
    sw_error_t rtn;
    a_uint32_t cnt = 0;
    fal_fdb_entry_t *fdb_entry = (fal_fdb_entry_t *) (ioctl_buf + 2);

    memset(fdb_entry, 0, sizeof (fal_fdb_entry_t));
    arg_val[0] = SW_API_FDB_ITERATE;
    *(ioctl_buf + 1) = 0;

    while (1)
    {
        arg_val[1] = (a_uint32_t) ioctl_buf;
        arg_val[2] = get_devid();
        arg_val[3] = (a_uint32_t) (ioctl_buf + 1);
        arg_val[4] = (a_uint32_t) fdb_entry;

        rtn = cmd_exec_api(arg_val);
        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
        {
            break;
        }
        cnt++;
    }

    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
        cmd_print_error(rtn);
    else
        dprintf("\ntotal %d entries\n", cnt);

    return SW_OK;
}
Example #3
0
sw_error_t
cmd_show_napt(a_uint32_t *arg_val)
{
    sw_error_t rtn;
    a_uint32_t cnt = 0;
    fal_napt_entry_t *napt_entry = (fal_napt_entry_t *) (ioctl_buf + sizeof(sw_error_t) / 4);

    aos_mem_zero(napt_entry, sizeof (fal_napt_entry_t));
    napt_entry->entry_id = FAL_NEXT_ENTRY_FIRST_ID;
    arg_val[0] = SW_API_NAPT_NEXT;

    while (1)
    {
        arg_val[1] = (a_uint32_t) ioctl_buf;
        arg_val[2] = get_devid();
        arg_val[3] = 0;
        arg_val[4] = (a_uint32_t) napt_entry;

        rtn = cmd_exec_api(arg_val);
        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
        {
            break;
        }
        cnt++;
    }

    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
        cmd_print_error(rtn);
    else
        dprintf("\ntotal %d entries\n", cnt);

    return SW_OK;
}
Example #4
0
sw_error_t
cmd_show_resv_fdb(a_uint32_t *arg_val)
{
    sw_error_t rtn;
    a_uint32_t cnt = 0;
    a_uint32_t  *iterator  = ioctl_buf + 1;
    fal_fdb_entry_t *entry = (fal_fdb_entry_t *) (ioctl_buf + 2);

    *iterator = 0;
    while (1)
    {
        arg_val[0] = SW_API_FDB_RESV_ITERATE;
        arg_val[1] = (a_uint32_t) ioctl_buf;
        arg_val[2] = get_devid();
        arg_val[3] = (a_uint32_t) iterator;
        arg_val[4] = (a_uint32_t) entry;

        rtn = cmd_exec_api(arg_val);
        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
        {
            break;
        }
        cnt++;
        dprintf("\n");
    }

    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
        cmd_print_error(rtn);
    else
        dprintf("\ntotal %d entries\n", cnt);

    return SW_OK;
}
Example #5
0
sw_error_t
cmd_show_vlan(a_uint32_t *arg_val)
{
    sw_error_t rtn;
    a_uint32_t rtn_size = 1 ,tmp_vid = 0, cnt = 0;
    fal_vlan_t *vlan_entry = (fal_vlan_t *) (ioctl_buf + rtn_size);

    while (1)
    {
        arg_val[0] = SW_API_VLAN_NEXT;
        arg_val[1] = (a_uint32_t) ioctl_buf;
        arg_val[2] = get_devid();
        arg_val[3] = tmp_vid;
        arg_val[4] = (a_uint32_t) vlan_entry;

        rtn = cmd_exec_api(arg_val);
        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
        {
            break;
        }

        tmp_vid = vlan_entry->vid;
        cnt++;
    }

    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
        cmd_print_error(rtn);
    else
        dprintf("\ntotal %d entries\n", cnt);

    return SW_OK;
}
Example #6
0
static int
cmd_exec(a_uint32_t *arg_val, int cmd_index, int cmd_index_sub)
{
    a_uint32_t api_id = arg_val[0];
    sw_error_t rtn;

    if( api_id < SW_API_MAX )
    {
        rtn = cmd_exec_api(arg_val);

    }
    else if ((api_id > SW_API_MAX ) && (api_id < SW_CMD_MAX))
    {
        if (GCMD_SUB_FUNC(cmd_index, cmd_index_sub))
            rtn = GCMD_SUB_FUNC(cmd_index, cmd_index_sub)(arg_val);
    }
    else
    {
        rtn = SW_BAD_PARAM;
    }

    if(rtn != SW_OK)
        cmd_print_error(rtn);
    else
        dprintf("\noperate done.\n\n");

    return 0;
}
Example #7
0
sw_error_t
cmd_show_fdb(a_uint32_t *arg_val)
{
    if (ssdk_cfg.init_cfg.chip_type == CHIP_ISIS) {
	    sw_error_t rtn;
	    a_uint32_t cnt = 0;
	    fal_fdb_op_t    *fdb_op    = (fal_fdb_op_t *)    (ioctl_buf + sizeof(sw_error_t) / 4);
	    fal_fdb_entry_t *fdb_entry = (fal_fdb_entry_t *) (ioctl_buf + sizeof(sw_error_t) / 4 + sizeof(fal_fdb_op_t) / 4);

	    aos_mem_zero(fdb_op,    sizeof (fal_fdb_op_t));
	    aos_mem_zero(fdb_entry, sizeof (fal_fdb_entry_t));
	    arg_val[0] = SW_API_FDB_EXTEND_FIRST;

	    while (1)
	    {
	        arg_val[1] = (a_uint32_t) ioctl_buf;
	        arg_val[2] = get_devid();
	        arg_val[3] = (a_uint32_t) fdb_op;
	        arg_val[4] = (a_uint32_t) fdb_entry;

	        rtn = cmd_exec_api(arg_val);
	        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
	        {
	            break;
	        }
	        arg_val[0] = SW_API_FDB_EXTEND_NEXT;
	        cnt++;
	    }

	    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
	        cmd_print_error(rtn);
	    else
	        dprintf("\ntotal %d entries\n", cnt);
    }else if ((ssdk_cfg.init_cfg.chip_type == CHIP_ISISC) ||
		(ssdk_cfg.init_cfg.chip_type == CHIP_DESS)) {
	    sw_error_t rtn;
	    a_uint32_t cnt = 0;
	    fal_fdb_op_t    *fdb_op    = (fal_fdb_op_t *)    (ioctl_buf + sizeof(sw_error_t) / 4);
	    fal_fdb_entry_t *fdb_entry = (fal_fdb_entry_t *) (ioctl_buf + sizeof(sw_error_t) / 4 + sizeof(fal_fdb_op_t) / 4);

	    aos_mem_zero(fdb_op,    sizeof (fal_fdb_op_t));
	    aos_mem_zero(fdb_entry, sizeof (fal_fdb_entry_t));
	    arg_val[0] = SW_API_FDB_EXTEND_FIRST;

	    while (1)
	    {
	        arg_val[1] = (a_uint32_t) ioctl_buf;
	        arg_val[2] = get_devid();
	        arg_val[3] = (a_uint32_t) fdb_op;
	        arg_val[4] = (a_uint32_t) fdb_entry;

	        rtn = cmd_exec_api(arg_val);
	        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
	        {
	            break;
	        }
	        arg_val[0] = SW_API_FDB_EXTEND_NEXT;
	        cnt++;
	    }

	    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
	        cmd_print_error(rtn);
	    else
	        dprintf("\ntotal %d entries\n", cnt);
    }else if (ssdk_cfg.init_cfg.chip_type == CHIP_SHIVA) {
	    sw_error_t rtn;
	    a_uint32_t cnt = 0;
	    fal_fdb_entry_t *fdb_entry = (fal_fdb_entry_t *) (ioctl_buf + 2);

	    memset(fdb_entry, 0, sizeof (fal_fdb_entry_t));
	    arg_val[0] = SW_API_FDB_ITERATE;
	    *(ioctl_buf + 1) = 0;

	    while (1)
	    {
	        arg_val[1] = (a_uint32_t) ioctl_buf;
	        arg_val[2] = get_devid();
	        arg_val[3] = (a_uint32_t) (ioctl_buf + 1);
	        arg_val[4] = (a_uint32_t) fdb_entry;

	        rtn = cmd_exec_api(arg_val);
	        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
	        {
	            break;
	        }
	        cnt++;
	    }

	    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
	        cmd_print_error(rtn);
	    else
	        dprintf("\ntotal %d entries\n", cnt);
    }else {
	    sw_error_t rtn;
	    a_uint32_t rtn_size = 1, cnt = 0;
	    fal_fdb_entry_t *fdb_entry = (fal_fdb_entry_t *) (ioctl_buf + rtn_size);

	    memset(fdb_entry, 0, sizeof (fal_fdb_entry_t));
	    arg_val[0] = SW_API_FDB_FIRST;

	    while (1)
	    {
	        arg_val[1] = (a_uint32_t) ioctl_buf;
	        arg_val[2] = get_devid();
	        arg_val[3] = (a_uint32_t) fdb_entry;

	        rtn = cmd_exec_api(arg_val);
	        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
	        {
	            break;
	        }
	        arg_val[0] = SW_API_FDB_NEXT;
	        cnt++;
	    }

	    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
	        cmd_print_error(rtn);
	    else
	        dprintf("\ntotal %d entries\n", cnt);
    }

    return SW_OK;
}
Example #8
0
sw_error_t
cmd_show_vlan(a_uint32_t *arg_val)
{
    if (ssdk_cfg.init_cfg.chip_type == CHIP_ISIS) {
	    sw_error_t rtn;
	    a_uint32_t rtn_size = 1 ,tmp_vid = FAL_NEXT_ENTRY_FIRST_ID, cnt = 0;
	    fal_vlan_t *vlan_entry = (fal_vlan_t *) (ioctl_buf + rtn_size);

	    while (1)
	    {
	        arg_val[0] = SW_API_VLAN_NEXT;
	        arg_val[1] = (a_uint32_t) ioctl_buf;
	        arg_val[2] = get_devid();
	        arg_val[3] = tmp_vid;
	        arg_val[4] = (a_uint32_t) vlan_entry;

	        rtn = cmd_exec_api(arg_val);
	        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
	        {
	            break;
	        }

	        tmp_vid = vlan_entry->vid;
	        cnt++;
	    }

	    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
	        cmd_print_error(rtn);
	    else
	        dprintf("\ntotal %d entries\n", cnt);
    }else if ((ssdk_cfg.init_cfg.chip_type == CHIP_ISISC) ||
		(ssdk_cfg.init_cfg.chip_type == CHIP_DESS)) {
	    sw_error_t rtn;
	    a_uint32_t rtn_size = 1 ,tmp_vid = FAL_NEXT_ENTRY_FIRST_ID, cnt = 0;
	    fal_vlan_t *vlan_entry = (fal_vlan_t *) (ioctl_buf + rtn_size);

	    while (1)
	    {
	        arg_val[0] = SW_API_VLAN_NEXT;
	        arg_val[1] = (a_uint32_t) ioctl_buf;
	        arg_val[2] = get_devid();
	        arg_val[3] = tmp_vid;
	        arg_val[4] = (a_uint32_t) vlan_entry;

	        rtn = cmd_exec_api(arg_val);
	        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
	        {
	            break;
	        }

	        tmp_vid = vlan_entry->vid;
	        cnt++;
	    }

	    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
	        cmd_print_error(rtn);
	    else
	        dprintf("\ntotal %d entries\n", cnt);
    } else {
	    sw_error_t rtn;
	    a_uint32_t rtn_size = 1 ,tmp_vid = 0, cnt = 0;
	    fal_vlan_t *vlan_entry = (fal_vlan_t *) (ioctl_buf + rtn_size);

	    while (1)
	    {
	        arg_val[0] = SW_API_VLAN_NEXT;
	        arg_val[1] = (a_uint32_t) ioctl_buf;
	        arg_val[2] = get_devid();
	        arg_val[3] = tmp_vid;
	        arg_val[4] = (a_uint32_t) vlan_entry;

	        rtn = cmd_exec_api(arg_val);
	        if ((SW_OK != rtn)  || (SW_OK != (sw_error_t) (*ioctl_buf)))
	        {
	            break;
	        }

	        tmp_vid = vlan_entry->vid;
	        cnt++;
	    }

	    if((rtn != SW_OK) && (rtn != SW_NO_MORE))
	        cmd_print_error(rtn);
	    else
	        dprintf("\ntotal %d entries\n", cnt);
	}

    return SW_OK;
}