Lines Matching refs:peer

166 		mi = body->peer + i;
291 struct ieee802_1x_kay_peer *peer;
293 dl_list_for_each(peer, peers, struct ieee802_1x_kay_peer, list) {
294 if (os_memcmp(peer->mi, mi, MI_LEN) == 0)
295 return peer;
343 struct ieee802_1x_kay_peer *peer;
345 peer = get_peer_mi(&participant->live_peers, mi);
346 if (peer)
347 return peer;
391 struct ieee802_1x_kay_peer *peer;
393 dl_list_for_each(peer, &participant->live_peers,
395 if (os_memcmp(&peer->sci, sci, sizeof(peer->sci)) == 0)
396 return peer;
399 dl_list_for_each(peer, &participant->potential_peers,
401 if (os_memcmp(&peer->sci, sci, sizeof(peer->sci)) == 0)
402 return peer;
519 struct ieee802_1x_kay_peer *peer;
523 peer = os_zalloc(sizeof(*peer));
524 if (peer == NULL) {
529 os_memcpy(peer->mi, mi, MI_LEN);
530 peer->mn = mn;
531 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
532 peer->sak_used = FALSE;
533 os_memcpy(&peer->sci, &participant->current_peer_sci,
534 sizeof(peer->sci));
535 dl_list_add(&participant->live_peers, &peer->list);
539 rxsc = ieee802_1x_kay_init_receive_sc(&peer->sci, sc_ch);
546 wpa_printf(MSG_DEBUG, "KaY: Live peer created");
547 wpa_hexdump(MSG_DEBUG, "\tMI: ", peer->mi, sizeof(peer->mi));
548 wpa_printf(MSG_DEBUG, "\tMN: %d", peer->mn);
549 wpa_hexdump(MSG_DEBUG, "\tSCI Addr: ", peer->sci.addr, ETH_ALEN);
550 wpa_printf(MSG_DEBUG, "\tPort: %d", peer->sci.port);
552 return peer;
563 struct ieee802_1x_kay_peer *peer;
565 peer = os_zalloc(sizeof(*peer));
566 if (peer == NULL) {
571 os_memcpy(peer->mi, mi, MI_LEN);
572 peer->mn = mn;
573 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
574 peer->sak_used = FALSE;
576 dl_list_add(&participant->potential_peers, &peer->list);
578 wpa_printf(MSG_DEBUG, "KaY: potential peer created");
579 wpa_hexdump(MSG_DEBUG, "\tMI: ", peer->mi, sizeof(peer->mi));
580 wpa_printf(MSG_DEBUG, "\tMN: %d", peer->mn);
581 wpa_hexdump(MSG_DEBUG, "\tSCI Addr: ", peer->sci.addr, ETH_ALEN);
582 wpa_printf(MSG_DEBUG, "\tPort: %d", peer->sci.port);
584 return peer;
595 struct ieee802_1x_kay_peer *peer;
599 dl_list_for_each(peer, &participant->potential_peers,
601 if (os_memcmp(peer->mi, mi, MI_LEN) == 0)
605 os_memcpy(&peer->sci, &participant->current_peer_sci,
606 sizeof(peer->sci));
607 peer->mn = mn;
608 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
610 wpa_printf(MSG_DEBUG, "KaY: move potential peer to live peer");
611 wpa_hexdump(MSG_DEBUG, "\tMI: ", peer->mi, sizeof(peer->mi));
612 wpa_printf(MSG_DEBUG, "\tMN: %d", peer->mn);
613 wpa_hexdump(MSG_DEBUG, "\tSCI Addr: ", peer->sci.addr, ETH_ALEN);
614 wpa_printf(MSG_DEBUG, "\tPort: %d", peer->sci.port);
616 dl_list_del(&peer->list);
617 dl_list_add_tail(&participant->live_peers, &peer->list);
621 rxsc = ieee802_1x_kay_init_receive_sc(&peer->sci, sc_ch);
628 return peer;
710 struct ieee802_1x_kay_peer *peer;
716 "KaY: peer's version(%d) greater than mka current version(%d)",
730 /* If the peer's MI is my MI, I will choose new MI */
743 /* handler peer */
744 peer = ieee802_1x_kay_get_peer(participant, body->actor_mi);
745 if (!peer) {
748 * is active attacker or a valid peer whose MI is be changed?
750 peer = ieee802_1x_kay_get_peer_sci(participant,
752 if (peer) {
755 dl_list_del(&peer->list);
756 os_free(peer);
759 peer = ieee802_1x_kay_create_potential_peer(
762 if (!peer)
765 peer->macsec_desired = body->macsec_desired;
766 peer->macsec_capbility = body->macsec_capbility;
767 peer->is_key_server = (Boolean) body->key_server;
768 peer->key_server_priority = body->priority;
769 } else if (peer->mn < be_to_host32(body->actor_mn)) {
770 peer->mn = be_to_host32(body->actor_mn);
771 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
772 peer->macsec_desired = body->macsec_desired;
773 peer->macsec_capbility = body->macsec_capbility;
774 peer->is_key_server = (Boolean) body->key_server;
775 peer->key_server_priority = body->priority;
777 wpa_printf(MSG_WARNING, "KaY: The peer MN have received");
804 struct ieee802_1x_kay_peer *peer;
806 dl_list_for_each(peer, &participant->live_peers,
823 struct ieee802_1x_kay_peer *peer;
833 dl_list_for_each(peer, &participant->live_peers,
837 os_memcpy(body_peer->mi, peer->mi, MI_LEN);
838 body_peer->mn = host_to_be32(peer->mn);
865 struct ieee802_1x_kay_peer *peer;
867 dl_list_for_each(peer, &participant->potential_peers,
884 struct ieee802_1x_kay_peer *peer;
894 dl_list_for_each(peer, &participant->potential_peers,
898 os_memcpy(body_peer->mi, peer->mi, MI_LEN);
899 body_peer->mn = host_to_be32(peer->mn);
985 struct ieee802_1x_kay_peer *peer;
1018 peer = ieee802_1x_kay_get_peer(participant, peer_mi);
1019 if (NULL != peer) {
1020 peer->mn = peer_mn;
1021 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
1242 struct ieee802_1x_kay_peer *peer;
1255 peer = ieee802_1x_kay_get_live_peer(participant,
1257 if (!peer) {
1258 wpa_printf(MSG_WARNING, "KaY: the peer is not my live peer");
1274 /* TODO: what action should I take when peer does not support MACsec */
1280 /* TODO: when the plain tx or rx of peer is true, should I change
1284 wpa_printf(MSG_WARNING, "KaY: peer's plain rx are TRUE");
1287 wpa_printf(MSG_WARNING, "KaY: peer's plain tx are TRUE");
1309 peer->sak_used = TRUE;
1311 if (body->ltx && peer->is_key_server) {
1336 /* check all live peer have used the sak for receiving sa */
1338 dl_list_for_each(peer, &participant->live_peers,
1340 if (!peer->sak_used) {
1351 /* if i'm key server, and detects peer member pn exhaustion, rekey.*/
1521 struct ieee802_1x_kay_peer *peer;
1557 peer = ieee802_1x_kay_get_live_peer(participant,
1559 if (!peer) {
1565 &peer->sci, sizeof(struct ieee802_1x_mka_sci)) != 0) {
1857 /* live peer list parameter set */
1865 /* potential peer list parameter set */
1949 struct ieee802_1x_kay_peer *peer;
1955 * must have one live peer
1957 * or potential peer is empty
1966 * the live peer list contains at least one peer and
1968 * or the Key server's potential peer is empty
1994 dl_list_for_each(peer, &participant->live_peers,
1996 ctx_len += sizeof(peer->mi);
2013 dl_list_for_each(peer, &participant->live_peers,
2015 os_memcpy(context + ctx_offset, peer->mi, sizeof(peer->mi));
2016 ctx_offset += sizeof(peer->mi);
2066 dl_list_for_each(peer, &participant->live_peers,
2068 peer->sak_used = FALSE;
2091 struct ieee802_1x_kay_peer *peer;
2105 dl_list_for_each(peer, &participant->live_peers,
2107 if (!peer->is_key_server)
2111 key_server = peer;
2115 if (peer->key_server_priority <
2117 key_server = peer;
2118 } else if (peer->key_server_priority ==
2121 if (peer->sci.addr[i] <
2123 key_server = peer;
2128 /* elect the key server between me and the above elected peer */
2204 struct ieee802_1x_kay_peer *peer;
2224 dl_list_for_each(peer, &participant->live_peers,
2226 if (!peer->macsec_desired)
2229 if (peer->macsec_capbility == MACSEC_CAP_NOT_IMPLEMENTED)
2232 less_capability = (less_capability < peer->macsec_capbility) ?
2233 less_capability : peer->macsec_capbility;
2354 struct ieee802_1x_kay_peer *peer, *pre_peer;
2390 dl_list_for_each_safe(peer, pre_peer, &participant->live_peers,
2392 if (now > peer->expire) {
2393 wpa_printf(MSG_DEBUG, "KaY: Live peer removed");
2394 wpa_hexdump(MSG_DEBUG, "\tMI: ", peer->mi,
2395 sizeof(peer->mi));
2396 wpa_printf(MSG_DEBUG, "\tMN: %d", peer->mn);
2400 if (os_memcmp(&rxsc->sci, &peer->sci,
2407 dl_list_del(&peer->list);
2408 os_free(peer);
2445 dl_list_for_each_safe(peer, pre_peer, &participant->potential_peers,
2447 if (now > peer->expire) {
2448 wpa_printf(MSG_DEBUG, "KaY: Potential peer removed");
2449 wpa_hexdump(MSG_DEBUG, "\tMI: ", peer->mi,
2450 sizeof(peer->mi));
2451 wpa_printf(MSG_DEBUG, "\tMN: %d", peer->mn);
2452 dl_list_del(&peer->list);
2453 os_free(peer);
2935 "KaY: peer's algorithm agility not supported for me");
3004 /* check i am in the peer's peer list */
3007 /* accept the peer as live peer */
3408 struct ieee802_1x_kay_peer *peer;
3427 /* remove live peer */
3429 peer = dl_list_entry(participant->live_peers.next,
3431 dl_list_del(&peer->list);
3432 os_free(peer);
3435 /* remove potential peer */
3437 peer = dl_list_entry(participant->potential_peers.next,
3439 dl_list_del(&peer->list);
3440 os_free(peer);