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 */
742 /* handler peer */
743 peer = ieee802_1x_kay_get_peer(participant, body->actor_mi);
744 if (!peer) {
747 * is active attacker or a valid peer whose MI is be changed?
749 peer = ieee802_1x_kay_get_peer_sci(participant,
751 if (peer) {
754 dl_list_del(&peer->list);
755 os_free(peer);
758 peer = ieee802_1x_kay_create_potential_peer(
761 if (!peer)
764 peer->macsec_desired = body->macsec_desired;
765 peer->macsec_capbility = body->macsec_capbility;
766 peer->is_key_server = (Boolean) body->key_server;
767 peer->key_server_priority = body->priority;
768 } else if (peer->mn < be_to_host32(body->actor_mn)) {
769 peer->mn = be_to_host32(body->actor_mn);
770 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
771 peer->macsec_desired = body->macsec_desired;
772 peer->macsec_capbility = body->macsec_capbility;
773 peer->is_key_server = (Boolean) body->key_server;
774 peer->key_server_priority = body->priority;
776 wpa_printf(MSG_WARNING, "KaY: The peer MN have received");
803 struct ieee802_1x_kay_peer *peer;
805 dl_list_for_each(peer, &participant->live_peers,
822 struct ieee802_1x_kay_peer *peer;
832 dl_list_for_each(peer, &participant->live_peers,
836 os_memcpy(body_peer->mi, peer->mi, MI_LEN);
837 body_peer->mn = host_to_be32(peer->mn);
864 struct ieee802_1x_kay_peer *peer;
866 dl_list_for_each(peer, &participant->potential_peers,
883 struct ieee802_1x_kay_peer *peer;
893 dl_list_for_each(peer, &participant->potential_peers,
897 os_memcpy(body_peer->mi, peer->mi, MI_LEN);
898 body_peer->mn = host_to_be32(peer->mn);
984 struct ieee802_1x_kay_peer *peer;
1015 peer = ieee802_1x_kay_get_peer(participant, peer_mi);
1016 if (NULL != peer) {
1017 peer->mn = peer_mn;
1018 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
1237 struct ieee802_1x_kay_peer *peer;
1250 peer = ieee802_1x_kay_get_live_peer(participant,
1252 if (!peer) {
1253 wpa_printf(MSG_WARNING, "KaY: the peer is not my live peer");
1269 /* TODO: what action should I take when peer does not support MACsec */
1275 /* TODO: when the plain tx or rx of peer is true, should I change
1279 wpa_printf(MSG_WARNING, "KaY: peer's plain rx are TRUE");
1282 wpa_printf(MSG_WARNING, "KaY: peer's plain tx are TRUE");
1304 peer->sak_used = TRUE;
1306 if (body->ltx && peer->is_key_server) {
1331 /* check all live peer have used the sak for receiving sa */
1333 dl_list_for_each(peer, &participant->live_peers,
1335 if (!peer->sak_used) {
1346 /* if i'm key server, and detects peer member pn exhaustion, rekey.*/
1516 struct ieee802_1x_kay_peer *peer;
1552 peer = ieee802_1x_kay_get_live_peer(participant,
1554 if (!peer) {
1560 &peer->sci, sizeof(struct ieee802_1x_mka_sci)) != 0) {
1852 /* live peer list parameter set */
1860 /* potential peer list parameter set */
1944 struct ieee802_1x_kay_peer *peer;
1950 * must have one live peer
1952 * or potential peer is empty
1961 * the live peer list contains at least one peer and
1963 * or the Key server's potential peer is empty
1989 dl_list_for_each(peer, &participant->live_peers,
1991 ctx_len += sizeof(peer->mi);
2003 dl_list_for_each(peer, &participant->live_peers,
2005 os_memcpy(context + ctx_offset, peer->mi, sizeof(peer->mi));
2006 ctx_offset += sizeof(peer->mi);
2056 dl_list_for_each(peer, &participant->live_peers,
2058 peer->sak_used = FALSE;
2081 struct ieee802_1x_kay_peer *peer;
2095 dl_list_for_each(peer, &participant->live_peers,
2097 if (!peer->is_key_server)
2101 key_server = peer;
2105 if (peer->key_server_priority <
2107 key_server = peer;
2108 } else if (peer->key_server_priority ==
2111 if (peer->sci.addr[i] <
2113 key_server = peer;
2118 /* elect the key server between me and the above elected peer */
2194 struct ieee802_1x_kay_peer *peer;
2214 dl_list_for_each(peer, &participant->live_peers,
2216 if (!peer->macsec_desired)
2219 if (peer->macsec_capbility == MACSEC_CAP_NOT_IMPLEMENTED)
2222 less_capability = (less_capability < peer->macsec_capbility) ?
2223 less_capability : peer->macsec_capbility;
2344 struct ieee802_1x_kay_peer *peer, *pre_peer;
2380 dl_list_for_each_safe(peer, pre_peer, &participant->live_peers,
2382 if (now > peer->expire) {
2383 wpa_printf(MSG_DEBUG, "KaY: Live peer removed");
2384 wpa_hexdump(MSG_DEBUG, "\tMI: ", peer->mi,
2385 sizeof(peer->mi));
2386 wpa_printf(MSG_DEBUG, "\tMN: %d", peer->mn);
2390 if (os_memcmp(&rxsc->sci, &peer->sci,
2397 dl_list_del(&peer->list);
2398 os_free(peer);
2435 dl_list_for_each_safe(peer, pre_peer, &participant->potential_peers,
2437 if (now > peer->expire) {
2438 wpa_printf(MSG_DEBUG, "KaY: Potential peer removed");
2439 wpa_hexdump(MSG_DEBUG, "\tMI: ", peer->mi,
2440 sizeof(peer->mi));
2441 wpa_printf(MSG_DEBUG, "\tMN: %d", peer->mn);
2442 dl_list_del(&peer->list);
2443 os_free(peer);
2925 "KaY: peer's algorithm agility not supported for me");
2994 /* check i am in the peer's peer list */
2997 /* accept the peer as live peer */
3394 struct ieee802_1x_kay_peer *peer;
3413 /* remove live peer */
3415 peer = dl_list_entry(participant->live_peers.next,
3417 dl_list_del(&peer->list);
3418 os_free(peer);
3421 /* remove potential peer */
3423 peer = dl_list_entry(participant->potential_peers.next,
3425 dl_list_del(&peer->list);
3426 os_free(peer);