Home | History | Annotate | Download | only in pae

Lines Matching refs:peer

154 		wpa_printf(MSG_DEBUG, "*** Live Peer List ***");
157 wpa_printf(MSG_DEBUG, "*** Potential Live Peer List ***");
162 mi = body->peer + i;
287 struct ieee802_1x_kay_peer *peer;
289 dl_list_for_each(peer, peers, struct ieee802_1x_kay_peer, list) {
290 if (os_memcmp(peer->mi, mi, MI_LEN) == 0)
291 return peer;
349 struct ieee802_1x_kay_peer *peer;
351 peer = ieee802_1x_kay_get_live_peer(participant, mi);
352 if (peer)
353 return peer;
407 struct ieee802_1x_kay_peer *peer;
409 dl_list_for_each(peer, &participant->live_peers,
411 if (sci_equal(&peer->sci, sci))
412 return peer;
415 dl_list_for_each(peer, &participant->potential_peers,
417 if (sci_equal(&peer->sci, sci))
418 return peer;
540 static void ieee802_1x_kay_dump_peer(struct ieee802_1x_kay_peer *peer)
542 wpa_hexdump(MSG_DEBUG, "\tMI: ", peer->mi, sizeof(peer->mi));
543 wpa_printf(MSG_DEBUG, "\tMN: %d", peer->mn);
544 wpa_hexdump(MSG_DEBUG, "\tSCI Addr: ", peer->sci.addr, ETH_ALEN);
545 wpa_printf(MSG_DEBUG, "\tPort: %d", peer->sci.port);
552 struct ieee802_1x_kay_peer *peer;
554 peer = os_zalloc(sizeof(*peer));
555 if (!peer) {
560 os_memcpy(peer->mi, mi, MI_LEN);
561 peer->mn = mn;
562 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
563 peer->sak_used = FALSE;
565 return peer;
576 struct ieee802_1x_kay_peer *peer;
579 peer = ieee802_1x_kay_create_peer(mi, mn);
580 if (!peer)
583 os_memcpy(&peer->sci, &participant->current_peer_sci,
584 sizeof(peer->sci));
586 rxsc = ieee802_1x_kay_init_receive_sc(&peer->sci);
588 os_free(peer);
592 dl_list_add(&participant->live_peers, &peer->list);
596 wpa_printf(MSG_DEBUG, "KaY: Live peer created");
597 ieee802_1x_kay_dump_peer(peer);
599 return peer;
610 struct ieee802_1x_kay_peer *peer;
612 peer = ieee802_1x_kay_create_peer(mi, mn);
613 if (!peer)
616 dl_list_add(&participant->potential_peers, &peer->list);
618 wpa_printf(MSG_DEBUG, "KaY: potential peer created");
619 ieee802_1x_kay_dump_peer(peer);
621 return peer;
632 struct ieee802_1x_kay_peer *peer;
635 peer = ieee802_1x_kay_get_potential_peer(participant, mi);
636 if (!peer)
643 os_memcpy(&peer->sci, &participant->current_peer_sci,
644 sizeof(peer->sci));
645 peer->mn = mn;
646 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
648 wpa_printf(MSG_DEBUG, "KaY: move potential peer to live peer");
649 ieee802_1x_kay_dump_peer(peer);
651 dl_list_del(&peer->list);
652 dl_list_add_tail(&participant->live_peers, &peer->list);
657 return peer;
750 struct ieee802_1x_kay_peer *peer;
756 "KaY: peer's version(%d) greater than mka current version(%d)",
766 wpa_printf(MSG_DEBUG, "Peer is not included in my CA");
770 /* If the peer's MI is my MI, I will choose new MI */
782 /* handler peer */
783 peer = ieee802_1x_kay_get_peer(participant, body->actor_mi);
784 if (!peer) {
787 * is active attacker or a valid peer whose MI is be changed?
789 peer = ieee802_1x_kay_get_peer_sci(participant,
791 if (peer) {
794 dl_list_del(&peer->list);
795 os_free(peer);
798 peer = ieee802_1x_kay_create_potential_peer(
801 if (!peer)
804 peer->macsec_desired = body->macsec_desired;
805 peer->macsec_capability = body->macsec_capability;
806 peer->is_key_server = (Boolean) body->key_server;
807 peer->key_server_priority = body->priority;
808 } else if (peer->mn < be_to_host32(body->actor_mn)) {
809 peer->mn = be_to_host32(body->actor_mn);
810 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
811 peer->macsec_desired = body->macsec_desired;
812 peer->macsec_capability = body->macsec_capability;
813 peer->is_key_server = (Boolean) body->key_server;
814 peer->key_server_priority = body->priority;
816 wpa_printf(MSG_WARNING, "KaY: The peer MN have received");
843 struct ieee802_1x_kay_peer *peer;
845 dl_list_for_each(peer, &participant->live_peers,
862 struct ieee802_1x_kay_peer *peer;
872 dl_list_for_each(peer, &participant->live_peers,
876 os_memcpy(body_peer->mi, peer->mi, MI_LEN);
877 body_peer->mn = host_to_be32(peer->mn);
903 struct ieee802_1x_kay_peer *peer;
905 dl_list_for_each(peer, &participant->potential_peers,
922 struct ieee802_1x_kay_peer *peer;
932 dl_list_for_each(peer, &participant->potential_peers,
936 os_memcpy(body_peer->mi, peer->mi, MI_LEN);
937 body_peer->mn = host_to_be32(peer->mn);
969 "KaY: MKA Peer Packet Body Length (%zu bytes) is less than the Parameter Set Header Length (%zu bytes) + the Parameter Set Body Length (%zu bytes) + %d bytes of ICV",
982 "KaY: MKA Peer Packet Body Length (%zu bytes) should be a multiple of 16 octets",
1015 struct ieee802_1x_kay_peer *peer;
1027 "KaY: MKA Peer Packet Body Length (%zu bytes) should be a multiple of 16 octets",
1052 peer = ieee802_1x_kay_get_peer(participant, peer_mi->mi);
1053 if (peer) {
1054 peer->mn = peer_mn;
1055 peer->expire = time(NULL) + MKA_LIFE_TIME / 1000;
1082 "KaY: MKA Peer Packet Body Length (%zu bytes) should be a multiple of 16 octets",
1258 struct ieee802_1x_kay_peer *peer;
1272 peer = ieee802_1x_kay_get_live_peer(participant,
1274 if (!peer) {
1275 wpa_printf(MSG_WARNING, "KaY: the peer is not my live peer");
1291 /* TODO: what action should I take when peer does not support MACsec */
1293 wpa_printf(MSG_WARNING, "KaY: Peer does not support MACsec");
1297 /* TODO: when the plain tx or rx of peer is true, should I change
1301 wpa_printf(MSG_WARNING, "KaY: peer's plain rx are TRUE");
1304 wpa_printf(MSG_WARNING, "KaY: peer's plain tx are TRUE");
1326 peer->sak_used = TRUE;
1328 if (body->ltx && peer->is_key_server) {
1353 /* check all live peer have used the sak for receiving sa */
1355 dl_list_for_each(peer, &participant->live_peers,
1357 if (!peer->sak_used) {
1368 /* if i'm key server, and detects peer member pn exhaustion, rekey.*/
1373 wpa_printf(MSG_WARNING, "KaY: Peer LPN exhaustion");
1511 struct ieee802_1x_kay_peer *peer;
1546 peer = ieee802_1x_kay_get_live_peer(participant,
1548 if (!peer) {
1553 if (!sci_equal(&kay->key_server_sci, &peer->sci)) {
1832 /* live peer list parameter set */
1840 /* potential peer list parameter set */
1932 struct ieee802_1x_kay_peer *peer;
1941 * must have one live peer
1943 * or potential peer is empty
1952 * the live peer list contains at least one peer and
1954 * or the Key server's potential peer is empty
1974 dl_list_for_each(peer, &participant->live_peers,
1976 ctx_len += sizeof(peer->mi);
1988 dl_list_for_each(peer, &participant->live_peers,
1990 os_memcpy(context + ctx_offset, peer->mi, sizeof(peer->mi));
1991 ctx_offset += sizeof(peer->mi);
2041 dl_list_for_each(peer, &participant->live_peers,
2043 peer->sak_used = FALSE;
2061 static int compare_priorities(const struct ieee802_1x_kay_peer *peer,
2064 if (peer->key_server_priority < other->key_server_priority)
2066 if (other->key_server_priority < peer->key_server_priority)
2069 return os_memcmp(peer->sci.addr, other->sci.addr, ETH_ALEN);
2080 struct ieee802_1x_kay_peer *peer;
2093 dl_list_for_each(peer, &participant->live_peers,
2095 if (!peer->is_key_server)
2099 key_server = peer;
2103 if (compare_priorities(peer, key_server) < 0)
2104 key_server = peer;
2107 /* elect the key server between me and the above elected peer */
2172 struct ieee802_1x_kay_peer *peer;
2192 dl_list_for_each(peer, &participant->live_peers,
2194 if (!peer->macsec_desired)
2197 if (peer->macsec_capability == MACSEC_CAP_NOT_IMPLEMENTED)
2200 less_capability = (less_capability < peer->macsec_capability) ?
2201 less_capability : peer->macsec_capability;
2332 struct ieee802_1x_kay_peer *peer, *pre_peer;
2357 dl_list_for_each_safe(peer, pre_peer, &participant->live_peers,
2359 if (now > peer->expire) {
2360 wpa_printf(MSG_DEBUG, "KaY: Live peer removed");
2361 wpa_hexdump(MSG_DEBUG, "\tMI: ", peer->mi,
2362 sizeof(peer->mi));
2363 wpa_printf(MSG_DEBUG, "\tMN: %d", peer->mn);
2367 if (sci_equal(&rxsc->sci, &peer->sci)) {
2372 dl_list_del(&peer->list);
2373 os_free(peer);
2415 dl_list_for_each_safe(peer, pre_peer, &participant->potential_peers,
2417 if (now > peer->expire) {
2418 wpa_printf(MSG_DEBUG, "KaY: Potential peer removed");
2419 wpa_hexdump(MSG_DEBUG, "\tMI: ", peer->mi,
2420 sizeof(peer->mi));
2421 wpa_printf(MSG_DEBUG, "\tMN: %d", peer->mn);
2422 dl_list_del(&peer->list);
2423 os_free(peer);
2909 "KaY: peer's algorithm agility not supported for me");
2975 /* check i am in the peer's peer list */
2979 /* accept the peer as live peer */
3019 "KaY: MKA Peer Packet Body Length (%zu bytes) is less than the Parameter Set Header Length (%zu bytes) + the Parameter Set Body Length (%zu bytes) + %d bytes of ICV",
3371 * The peer(s) can take a long time to come up, because we
3373 * some peer appears.
3396 struct ieee802_1x_kay_peer *peer;
3416 /* remove live peer */
3418 peer = dl_list_entry(participant->live_peers.next,
3420 dl_list_del(&peer->list);
3421 os_free(peer);
3424 /* remove potential peer */
3426 peer = dl_list_entry(participant->potential_peers.next,
3428 dl_list_del(&peer->list);
3429 os_free(peer);