Lines Matching refs:vi
69 struct vlan_info *vi; in vlan_alloc() local
72 vi = link->l_info; in vlan_alloc()
73 free(vi->vi_egress_qos); in vlan_alloc()
74 memset(link->l_info, 0, sizeof(*vi)); in vlan_alloc()
76 if ((vi = calloc(1, sizeof(*vi))) == NULL) in vlan_alloc()
79 link->l_info = vi; in vlan_alloc()
89 struct vlan_info *vi; in vlan_parse() local
100 vi = link->l_info; in vlan_parse()
103 vi->vi_vlan_id = nla_get_u16(tb[IFLA_VLAN_ID]); in vlan_parse()
104 vi->vi_mask |= VLAN_HAS_ID; in vlan_parse()
108 vi->vi_protocol = nla_get_u16(tb[IFLA_VLAN_PROTOCOL]); in vlan_parse()
109 vi->vi_mask |= VLAN_HAS_PROTOCOL; in vlan_parse()
116 vi->vi_flags = flags.flags; in vlan_parse()
117 vi->vi_mask |= VLAN_HAS_FLAGS; in vlan_parse()
125 vi->vi_ingress_qos_mask = 0; in vlan_parse()
126 memset(vi->vi_ingress_qos, 0, sizeof(vi->vi_ingress_qos)); in vlan_parse()
147 vi->vi_ingress_qos_mask |= (1 << map->from); in vlan_parse()
148 vi->vi_ingress_qos[map->from] = map->to; in vlan_parse()
151 vi->vi_mask |= VLAN_HAS_INGRESS_QOS; in vlan_parse()
166 vi->vi_egress_size = (i + 32) & ~31; in vlan_parse()
167 vi->vi_egress_qos = calloc(vi->vi_egress_size, sizeof(*vi->vi_egress_qos)); in vlan_parse()
168 if (vi->vi_egress_qos == NULL) in vlan_parse()
175 vi->vi_egress_qos[i].vm_from = map->from; in vlan_parse()
176 vi->vi_egress_qos[i++].vm_to = map->to; in vlan_parse()
179 vi->vi_negress = i; in vlan_parse()
180 vi->vi_mask |= VLAN_HAS_EGRESS_QOS; in vlan_parse()
190 struct vlan_info *vi = link->l_info; in vlan_free() local
192 if (vi) { in vlan_free()
193 free(vi->vi_egress_qos); in vlan_free()
194 vi->vi_egress_qos = NULL; in vlan_free()
197 free(vi); in vlan_free()
203 struct vlan_info *vi = link->l_info; in vlan_dump_line() local
205 nl_dump(p, "vlan-id %d", vi->vi_vlan_id); in vlan_dump_line()
210 struct vlan_info *vi = link->l_info; in vlan_dump_details() local
215 rtnl_link_vlan_flags2str(vi->vi_flags, buf, sizeof(buf)); in vlan_dump_details()
216 nl_dump_line(p, " vlan-info id %d <%s>", vi->vi_vlan_id, buf); in vlan_dump_details()
218 if (vi->vi_mask & VLAN_HAS_PROTOCOL) in vlan_dump_details()
219 nl_dump_line(p, " vlan protocol <%d>", ntohs(vi->vi_protocol)); in vlan_dump_details()
223 if (vi->vi_mask & VLAN_HAS_INGRESS_QOS) { in vlan_dump_details()
227 if (vi->vi_ingress_qos_mask & (1 << i)) { in vlan_dump_details()
231 i, vi->vi_ingress_qos[i]); in vlan_dump_details()
243 if (vi->vi_mask & VLAN_HAS_EGRESS_QOS) { in vlan_dump_details()
246 for (i = 0, printed = 0; i < vi->vi_negress; i++) { in vlan_dump_details()
250 vi->vi_egress_qos[i].vm_from, in vlan_dump_details()
251 vi->vi_egress_qos[i].vm_to); in vlan_dump_details()
295 struct vlan_info *vi = link->l_info; in vlan_put_attrs() local
301 if (vi->vi_mask & VLAN_HAS_ID) in vlan_put_attrs()
302 NLA_PUT_U16(msg, IFLA_VLAN_ID, vi->vi_vlan_id); in vlan_put_attrs()
304 if (vi->vi_mask & VLAN_HAS_PROTOCOL) in vlan_put_attrs()
305 NLA_PUT_U16(msg, IFLA_VLAN_PROTOCOL, vi->vi_protocol); in vlan_put_attrs()
307 if (vi->vi_mask & VLAN_HAS_FLAGS) { in vlan_put_attrs()
309 .flags = vi->vi_flags, in vlan_put_attrs()
310 .mask = vi->vi_flags_mask, in vlan_put_attrs()
316 if (vi->vi_mask & VLAN_HAS_INGRESS_QOS) { in vlan_put_attrs()
325 if (vi->vi_ingress_qos_mask & (1 << i)) { in vlan_put_attrs()
327 map.to = vi->vi_ingress_qos[i]; in vlan_put_attrs()
336 if (vi->vi_mask & VLAN_HAS_EGRESS_QOS) { in vlan_put_attrs()
344 for (i = 0; i < vi->vi_negress; i++) { in vlan_put_attrs()
345 map.from = vi->vi_egress_qos[i].vm_from; in vlan_put_attrs()
346 map.to = vi->vi_egress_qos[i].vm_to; in vlan_put_attrs()
428 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_set_id() local
432 vi->vi_vlan_id = id; in rtnl_link_vlan_set_id()
433 vi->vi_mask |= VLAN_HAS_ID; in rtnl_link_vlan_set_id()
446 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_get_id() local
450 if (vi->vi_mask & VLAN_HAS_ID) in rtnl_link_vlan_get_id()
451 return vi->vi_vlan_id; in rtnl_link_vlan_get_id()
466 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_set_protocol() local
470 vi->vi_protocol = protocol; in rtnl_link_vlan_set_protocol()
471 vi->vi_mask |= VLAN_HAS_PROTOCOL; in rtnl_link_vlan_set_protocol()
485 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_get_protocol() local
489 if (vi->vi_mask & VLAN_HAS_PROTOCOL) in rtnl_link_vlan_get_protocol()
490 return vi->vi_protocol; in rtnl_link_vlan_get_protocol()
504 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_set_flags() local
508 vi->vi_flags_mask |= flags; in rtnl_link_vlan_set_flags()
509 vi->vi_flags |= flags; in rtnl_link_vlan_set_flags()
510 vi->vi_mask |= VLAN_HAS_FLAGS; in rtnl_link_vlan_set_flags()
524 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_unset_flags() local
528 vi->vi_flags_mask |= flags; in rtnl_link_vlan_unset_flags()
529 vi->vi_flags &= ~flags; in rtnl_link_vlan_unset_flags()
530 vi->vi_mask |= VLAN_HAS_FLAGS; in rtnl_link_vlan_unset_flags()
543 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_get_flags() local
547 return vi->vi_flags; in rtnl_link_vlan_get_flags()
560 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_set_ingress_map() local
567 vi->vi_ingress_qos_mask |= (1 << from); in rtnl_link_vlan_set_ingress_map()
568 vi->vi_ingress_qos[from] = to; in rtnl_link_vlan_set_ingress_map()
569 vi->vi_mask |= VLAN_HAS_INGRESS_QOS; in rtnl_link_vlan_set_ingress_map()
576 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_get_ingress_map() local
581 if (vi->vi_mask & VLAN_HAS_INGRESS_QOS) in rtnl_link_vlan_get_ingress_map()
582 return vi->vi_ingress_qos; in rtnl_link_vlan_get_ingress_map()
589 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_set_egress_map() local
597 if (vi->vi_negress >= vi->vi_egress_size) { in rtnl_link_vlan_set_egress_map()
598 uint32_t new_size = vi->vi_egress_size + 1 + vi->vi_egress_size / 2; in rtnl_link_vlan_set_egress_map()
602 if (new_size < vi->vi_egress_size) in rtnl_link_vlan_set_egress_map()
607 ptr = realloc(vi->vi_egress_qos, bytes); in rtnl_link_vlan_set_egress_map()
611 vi->vi_egress_qos = ptr; in rtnl_link_vlan_set_egress_map()
612 vi->vi_egress_size = new_size; in rtnl_link_vlan_set_egress_map()
615 vi->vi_egress_qos[vi->vi_negress].vm_from = from; in rtnl_link_vlan_set_egress_map()
616 vi->vi_egress_qos[vi->vi_negress].vm_to = to; in rtnl_link_vlan_set_egress_map()
617 vi->vi_negress++; in rtnl_link_vlan_set_egress_map()
618 vi->vi_mask |= VLAN_HAS_EGRESS_QOS; in rtnl_link_vlan_set_egress_map()
626 struct vlan_info *vi = link->l_info; in rtnl_link_vlan_get_egress_map() local
634 if (vi->vi_mask & VLAN_HAS_EGRESS_QOS) { in rtnl_link_vlan_get_egress_map()
635 *negress = vi->vi_negress; in rtnl_link_vlan_get_egress_map()
636 return vi->vi_egress_qos; in rtnl_link_vlan_get_egress_map()