• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/wpa/src/drivers/

Lines Matching defs:drv

36 	struct macsec_drv_data *drv;
133 static int init_genl_ctx(struct macsec_drv_data *drv)
135 struct macsec_genl_ctx *ctx = &drv->ctx;
156 ctx->cb_arg.drv = drv;
170 static int try_commit(struct macsec_drv_data *drv)
174 if (!drv->sk)
177 if (!drv->link)
180 if (drv->controlled_port_enabled_set) {
185 drv->ifname, drv->controlled_port_enabled);
189 rtnl_link_set_name(change, drv->ifname);
191 if (drv->controlled_port_enabled)
196 err = rtnl_link_change(drv->sk, change, change, 0);
202 drv->controlled_port_enabled_set = FALSE;
205 if (drv->protect_frames_set) {
208 drv->ifname, drv->protect_frames);
209 rtnl_link_macsec_set_protect(drv->link, drv->protect_frames);
212 if (drv->encrypt_set) {
214 drv->ifname, drv->encrypt);
215 rtnl_link_macsec_set_encrypt(drv->link, drv->encrypt);
218 if (drv->replay_protect_set) {
221 drv->ifname, drv->replay_protect,
222 drv->replay_window);
223 rtnl_link_macsec_set_replay_protect(drv->link,
224 drv->replay_protect);
225 if (drv->replay_protect)
226 rtnl_link_macsec_set_window(drv->link,
227 drv->replay_window);
230 if (drv->encoding_sa_set) {
233 drv->ifname, drv->encoding_sa);
234 rtnl_link_macsec_set_encoding_sa(drv->link, drv->encoding_sa);
237 err = rtnl_link_add(drv->sk, drv->link, 0);
241 drv->protect_frames_set = FALSE;
242 drv->encrypt_set = FALSE;
243 drv->replay_protect_set = FALSE;
251 struct macsec_drv_data *drv = priv;
253 driver_wired_deinit_common(&drv->common);
254 os_free(drv);
291 struct macsec_drv_data *drv;
296 drv = os_zalloc(sizeof(*drv));
297 if (!drv)
300 if (driver_wired_init_common(&drv->common, ifname, ctx) < 0) {
301 os_free(drv);
305 return drv;
311 struct macsec_drv_data *drv = priv;
316 drv->sk = nl_socket_alloc();
317 if (!drv->sk)
320 err = nl_connect(drv->sk, NETLINK_ROUTE);
328 err = rtnl_link_alloc_cache(drv->sk, AF_UNSPEC, &drv->link_cache);
335 drv->parent_ifi = rtnl_link_name2i(drv->link_cache, drv->common.ifname);
336 if (drv->parent_ifi == 0) {
339 drv->common.ifname);
343 drv->common.ifname, drv->parent_ifi);
345 err = init_genl_ctx(drv);
352 nl_cache_free(drv->link_cache);
353 drv->link_cache = NULL;
355 nl_socket_free(drv->sk);
356 drv->sk = NULL;
363 struct macsec_drv_data *drv = priv;
367 if (drv->sk)
368 nl_socket_free(drv->sk);
369 drv->sk = NULL;
371 if (drv->link_cache)
372 nl_cache_free(drv->link_cache);
373 drv->link_cache = NULL;
375 if (drv->ctx.sk)
376 nl_socket_free(drv->ctx.sk);
401 struct macsec_drv_data *drv = priv;
405 drv->protect_frames_set = TRUE;
406 drv->protect_frames = enabled;
408 return try_commit(drv);
421 struct macsec_drv_data *drv = priv;
425 drv->encrypt_set = TRUE;
426 drv->encrypt = enabled;
428 return try_commit(drv);
443 struct macsec_drv_data *drv = priv;
448 drv->replay_protect_set = TRUE;
449 drv->replay_protect = enabled;
451 drv->replay_window = window;
453 return try_commit(drv);
479 struct macsec_drv_data *drv = priv;
483 drv->controlled_port_enabled = enabled;
484 drv->controlled_port_enabled_set = TRUE;
486 return try_commit(drv);
518 if (ret_hdr->nlmsg_type != arg->drv->ctx.macsec_genl_id)
632 static int do_dump(struct macsec_drv_data *drv, u8 txsa, u64 rxsci, u8 rxsa,
635 struct macsec_genl_ctx *ctx = &drv->ctx;
639 ctx->cb_arg.ifindex = drv->ifi;
681 struct macsec_drv_data *drv = priv;
686 err = do_dump(drv, 0xff, mka_sci_u64(&sa->sc->sci), sa->an,
703 struct macsec_drv_data *drv = priv;
704 struct macsec_genl_ctx *ctx = &drv->ctx;
711 drv->ifname, sa->an, sa->next_pn);
713 msg = msg_prepare(MACSEC_CMD_UPD_RXSA, ctx, drv->ifi);
747 struct macsec_drv_data *drv = priv;
752 err = do_dump(drv, sa->an, UNUSED_SCI, 0xff, &sa->next_pn);
767 struct macsec_drv_data *drv = priv;
768 struct macsec_genl_ctx *ctx = &drv->ctx;
775 msg = msg_prepare(MACSEC_CMD_UPD_TXSA, ctx, drv->ifi);
819 struct macsec_drv_data *drv = priv;
820 struct macsec_genl_ctx *ctx = &drv->ctx;
826 drv->ifname, SCI2STR(sc->sci.addr, sc->sci.port),
829 msg = msg_prepare(MACSEC_CMD_ADD_RXSC, ctx, drv->ifi);
857 struct macsec_drv_data *drv = priv;
858 struct macsec_genl_ctx *ctx = &drv->ctx;
863 drv->ifname, SCI2STR(sc->sci.addr, sc->sci.port));
865 msg = msg_prepare(MACSEC_CMD_DEL_RXSC, ctx, drv->ifi);
893 struct macsec_drv_data *drv = priv;
894 struct macsec_genl_ctx *ctx = &drv->ctx;
902 drv->ifname, sa->an,
911 msg = msg_prepare(MACSEC_CMD_ADD_RXSA, ctx, drv->ifi);
952 struct macsec_drv_data *drv = priv;
953 struct macsec_genl_ctx *ctx = &drv->ctx;
959 SCISTR, drv->ifname, sa->an,
962 msg = msg_prepare(MACSEC_CMD_DEL_RXSA, ctx, drv->ifi);
1033 struct macsec_drv_data *drv = priv;
1034 struct macsec_genl_ctx *ctx = &drv->ctx;
1037 SCISTR, drv->ifname, sa->an,
1040 return set_active_rx_sa(ctx, drv->ifi, mka_sci_u64(&sa->sc->sci),
1053 struct macsec_drv_data *drv = priv;
1054 struct macsec_genl_ctx *ctx = &drv->ctx;
1057 SCISTR, drv->ifname, sa->an,
1060 return set_active_rx_sa(ctx, drv->ifi, mka_sci_u64(&sa->sc->sci),
1095 struct macsec_drv_data *drv = priv;
1103 drv->common.ifname, SCI2STR(sc->sci.addr, sc->sci.port),
1106 if (!drv->sk) {
1117 rtnl_link_set_link(link, drv->parent_ifi);
1122 drv->created_link = TRUE;
1124 err = rtnl_link_add(drv->sk, link, NLM_F_CREATE);
1128 drv->created_link = FALSE;
1138 nl_cache_refill(drv->sk, drv->link_cache);
1139 link = lookup_sc(drv->link_cache, drv->parent_ifi, sci);
1145 drv->ifi = rtnl_link_get_ifindex(link);
1149 drv->common.ifname, drv->ifi, ifname);
1150 os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
1153 drv->link = rtnl_link_macsec_alloc();
1154 if (!drv->link) {
1159 rtnl_link_set_name(drv->link, drv->ifname);
1163 return try_commit(drv);
1175 struct macsec_drv_data *drv = priv;
1179 drv->ifname, SCI2STR(sc->sci.addr, sc->sci.port));
1181 if (!drv->sk)
1184 if (!drv->created_link) {
1185 rtnl_link_put(drv->link);
1186 drv->link = NULL;
1192 err = rtnl_link_delete(drv->sk, drv->link);
1195 rtnl_link_put(drv->link);
1196 drv->link = NULL;
1210 struct macsec_drv_data *drv = priv;
1211 struct macsec_genl_ctx *ctx = &drv->ctx;
1218 drv->ifname, sa->an,
1227 msg = msg_prepare(MACSEC_CMD_ADD_TXSA, ctx, drv->ifi);
1265 struct macsec_drv_data *drv = priv;
1266 struct macsec_genl_ctx *ctx = &drv->ctx;
1272 SCISTR, drv->ifname, sa->an,
1275 msg = msg_prepare(MACSEC_CMD_DEL_TXSA, ctx, drv->ifi);
1341 struct macsec_drv_data *drv = priv;
1342 struct macsec_genl_ctx *ctx = &drv->ctx;
1346 SCISTR, drv->ifname, sa->an,
1349 ret = set_active_tx_sa(ctx, drv->ifi, sa->an, TRUE);
1355 drv->encoding_sa_set = TRUE;
1356 drv->encoding_sa = sa->an;
1358 return try_commit(drv);
1370 struct macsec_drv_data *drv = priv;
1371 struct macsec_genl_ctx *ctx = &drv->ctx;
1374 SCISTR, drv->ifname, sa->an,
1377 return set_active_tx_sa(ctx, drv->ifi, sa->an, FALSE);
1383 struct macsec_drv_data *drv = priv;
1395 drv->common.ifname, drv->ifi,
1396 drv->ifname, drv->parent_ifi);
1465 static int macsec_drv_init_sockets(struct macsec_drv_data *drv, u8 *own_addr)
1471 drv->common.sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_PAE));
1472 if (drv->common.sock < 0) {
1478 if (eloop_register_read_sock(drv->common.sock, macsec_drv_handle_read,
1479 drv->common.ctx, NULL)) {
1485 os_strlcpy(ifr.ifr_name, drv->common.ifname, sizeof(ifr.ifr_name));
1486 if (ioctl(drv->common.sock, SIOCGIFINDEX, &ifr) != 0) {
1498 if (bind(drv->common.sock, (struct sockaddr *) &addr, sizeof(addr)) < 0)
1505 if (wired_multicast_membership(drv->common.sock, ifr.ifr_ifindex,
1513 os_strlcpy(ifr.ifr_name, drv->common.ifname, sizeof(ifr.ifr_name));
1514 if (ioctl(drv->common.sock, SIOCGIFHWADDR, &ifr) != 0) {
1537 struct macsec_drv_data *drv;
1539 drv = os_zalloc(sizeof(struct macsec_drv_data));
1540 if (drv == NULL) {
1546 drv->common.ctx = hapd;
1547 os_strlcpy(drv->common.ifname, params->ifname,
1548 sizeof(drv->common.ifname));
1549 drv->use_pae_group_addr = params->use_pae_group_addr;
1551 if (macsec_drv_init_sockets(drv, params->own_addr)) {
1552 os_free(drv);
1556 return drv;
1562 struct macsec_drv_data *drv = priv;
1564 if (drv->common.sock >= 0) {
1565 eloop_unregister_read_sock(drv->common.sock);
1566 close(drv->common.sock);
1569 os_free(drv);
1577 struct macsec_drv_data *drv = priv;
1592 os_memcpy(hdr->dest, drv->use_pae_group_addr ? pae_group_addr : addr,
1600 res = send(drv->common.sock, (u8 *) hdr, len, 0);