mfc_attr
rta = nl_add_rtattr(nlmsg, rta, RTA_TABLE, &mfc_attr->table, sizeof(mfc_attr->table));
rta = nl_add_rtattr(nlmsg, rta, RTA_SRC, &mfc_attr->origin, sizeof(mfc_attr->origin));
rta = nl_add_rtattr(nlmsg, rta, RTA_DST, &mfc_attr->group, sizeof(mfc_attr->group));
if (mfc_attr->ifindex)
rta = nl_add_rtattr(nlmsg, rta, RTA_IIF, &mfc_attr->ifindex, sizeof(mfc_attr->ifindex));
if (mfc_attr->proxy)
struct mfc_attr mfc_attr = {
err = nl_sendmsg_mfc(_metadata, self, RTM_NEWROUTE, &mfc_attr);
err = nl_sendmsg_mfc(_metadata, self, RTM_DELROUTE, &mfc_attr);
struct mfc_attr mfc_attr = {
err = nl_sendmsg_mfc(_metadata, self, RTM_NEWROUTE, &mfc_attr);
err = nl_sendmsg_mfc(_metadata, self, RTM_DELROUTE, &mfc_attr);
struct mfc_attr mfc_attr = {
mfc_attr.ifindex = 0;
err = nl_sendmsg_mfc(_metadata, self, RTM_NEWROUTE, &mfc_attr);
mfc_attr.ifindex = self->veth_ifindex;
err = nl_sendmsg_mfc(_metadata, self, RTM_NEWROUTE, &mfc_attr);
struct mfc_attr mfc_attr = {
err = nl_sendmsg_mfc(_metadata, self, RTM_NEWROUTE, &mfc_attr);
err = nl_sendmsg_mfc(_metadata, self, RTM_DELROUTE, &mfc_attr);
struct mfc_attr mfc_attr = {
mfc_attr.table = table_id;
err = nl_sendmsg_mfc(_metadata, self, RTM_NEWROUTE, &mfc_attr);
__u16 nlmsg_type, struct mfc_attr *mfc_attr)