static struct tapi_attr default_port[] = {
	[PORTS] = {
		.type = TAPI_TYPE_PORTS,
		.name = "ports",
		.description = "foobar",
		.set = tapi_set_ports,
		.get = tapi_get_ports,
	},
};

static const struct nla_policy tapi_policy[] = {
	[TAPI_ATTR_ID] = { .type = NLA_U32 },
	[TAPI_ATTR_PORT] = { .type = NLA_U32 },
	[TAPI_ATTR_ENDPOINT] = { .type = NLA_U32 },
	[TAPI_ATTR_STREAM] = { .type = NLA_U32 }
};

static const struct nla_policy tapi_port_policy[] = {
	[TAPI_PORT_ID] = { .type = NLA_U32 },
};

static const struct nla_policy tapi_endpoint_policy[] = {
	[TAPI_ENDPOINT_ID] = { .type = NLA_U32 },
};

static const struct nla_policy tapi_stream_policy[] = {
	[TAPI_STREAM_ID] = { .type = NLA_U32 },
};

static struct genl_family tapi_nl_family = {
	.id = GENL_ID_GENERATE,
	.name = "tapi",
	.hdrsize = 0,
	.version = 1,
	.maxattr = ARRAY_SIZE(tapi_policy),
};



static struct genl_ops tapi_nl_ops[] = {
	TAPI_NL_OP(TAPI_CMD_LIST, list_attr),

};

static int __init tapi_nl_init(void)
{
	ret = genl_unregister_family(&tapi_nl_family);
	if (ret)
		return ret;

	genl_register_ops(&tapi_nl_family, tapi_nl_ops);

	return 0;
}
module_init(tapi_nl_init);

static void __exit tapi_nl_exit(void)
{
	genl_unregister_family(&tapi_nl_family);
}