Lines Matching refs:addr
219 if (jsk->addr.src_name && skcb->addr.dst_name) { in j1939_sk_match_dst()
220 if (jsk->addr.src_name != skcb->addr.dst_name) in j1939_sk_match_dst()
228 if (j1939_address_is_unicast(skcb->addr.da)) { in j1939_sk_match_dst()
229 if (jsk->addr.sa != skcb->addr.da) in j1939_sk_match_dst()
244 if (jsk->addr.dst_name && skcb->addr.src_name) { in j1939_sk_match_dst()
245 if (jsk->addr.dst_name != skcb->addr.src_name) in j1939_sk_match_dst()
248 if (jsk->addr.da != skcb->addr.sa) in j1939_sk_match_dst()
255 jsk->pgn_rx_filter != skcb->addr.pgn) in j1939_sk_match_dst()
278 if ((skcb->addr.pgn & f->pgn_mask) != f->pgn) in j1939_sk_match_filter()
280 if ((skcb->addr.sa & f->addr_mask) != f->addr) in j1939_sk_match_filter()
282 if ((skcb->addr.src_name & f->name_mask) != f->name) in j1939_sk_match_filter()
409 jsk->addr.sa = J1939_NO_ADDR; in j1939_sk_init()
410 jsk->addr.da = J1939_NO_ADDR; in j1939_sk_init()
411 jsk->addr.pgn = J1939_NO_PGN; in j1939_sk_init()
426 static int j1939_sk_sanity_check(struct sockaddr_can *addr, int len) in j1939_sk_sanity_check() argument
428 if (!addr) in j1939_sk_sanity_check()
432 if (addr->can_family != AF_CAN) in j1939_sk_sanity_check()
434 if (!addr->can_ifindex) in j1939_sk_sanity_check()
436 if (j1939_pgn_is_valid(addr->can_addr.j1939.pgn) && in j1939_sk_sanity_check()
437 !j1939_pgn_is_clean_pdu(addr->can_addr.j1939.pgn)) in j1939_sk_sanity_check()
445 struct sockaddr_can *addr = (struct sockaddr_can *)uaddr; in j1939_sk_bind() local
452 ret = j1939_sk_sanity_check(addr, len); in j1939_sk_bind()
467 if (jsk->ifindex != addr->can_ifindex) { in j1939_sk_bind()
474 j1939_local_ecu_put(priv, jsk->addr.src_name, jsk->addr.sa); in j1939_sk_bind()
479 ndev = dev_get_by_index(net, addr->can_ifindex); in j1939_sk_bind()
505 jsk->ifindex = addr->can_ifindex; in j1939_sk_bind()
515 if (j1939_pgn_is_valid(addr->can_addr.j1939.pgn)) in j1939_sk_bind()
516 jsk->pgn_rx_filter = addr->can_addr.j1939.pgn; in j1939_sk_bind()
517 jsk->addr.src_name = addr->can_addr.j1939.name; in j1939_sk_bind()
518 jsk->addr.sa = addr->can_addr.j1939.addr; in j1939_sk_bind()
521 ret = j1939_local_ecu_get(priv, jsk->addr.src_name, jsk->addr.sa); in j1939_sk_bind()
538 struct sockaddr_can *addr = (struct sockaddr_can *)uaddr; in j1939_sk_connect() local
542 ret = j1939_sk_sanity_check(addr, len); in j1939_sk_connect()
555 if (jsk->ifindex != addr->can_ifindex) { in j1939_sk_connect()
560 if (!addr->can_addr.j1939.name && in j1939_sk_connect()
561 addr->can_addr.j1939.addr == J1939_NO_ADDR && in j1939_sk_connect()
568 jsk->addr.dst_name = addr->can_addr.j1939.name; in j1939_sk_connect()
569 jsk->addr.da = addr->can_addr.j1939.addr; in j1939_sk_connect()
571 if (j1939_pgn_is_valid(addr->can_addr.j1939.pgn)) in j1939_sk_connect()
572 jsk->addr.pgn = addr->can_addr.j1939.pgn; in j1939_sk_connect()
582 static void j1939_sk_sock2sockaddr_can(struct sockaddr_can *addr, in j1939_sk_sock2sockaddr_can() argument
588 memset(addr, 0, J1939_MIN_NAMELEN); in j1939_sk_sock2sockaddr_can()
590 addr->can_family = AF_CAN; in j1939_sk_sock2sockaddr_can()
591 addr->can_ifindex = jsk->ifindex; in j1939_sk_sock2sockaddr_can()
592 addr->can_addr.j1939.pgn = jsk->addr.pgn; in j1939_sk_sock2sockaddr_can()
594 addr->can_addr.j1939.name = jsk->addr.dst_name; in j1939_sk_sock2sockaddr_can()
595 addr->can_addr.j1939.addr = jsk->addr.da; in j1939_sk_sock2sockaddr_can()
597 addr->can_addr.j1939.name = jsk->addr.src_name; in j1939_sk_sock2sockaddr_can()
598 addr->can_addr.j1939.addr = jsk->addr.sa; in j1939_sk_sock2sockaddr_can()
605 struct sockaddr_can *addr = (struct sockaddr_can *)uaddr; in j1939_sk_getname() local
617 j1939_sk_sock2sockaddr_can(addr, jsk, peer); in j1939_sk_getname()
648 j1939_local_ecu_put(priv, jsk->addr.src_name, in j1939_sk_release()
649 jsk->addr.sa); in j1939_sk_release()
715 f->addr &= f->addr_mask; in j1939_sk_setsockopt()
840 if (j1939_address_is_valid(skcb->addr.da)) in j1939_sk_recvmsg()
842 sizeof(skcb->addr.da), &skcb->addr.da); in j1939_sk_recvmsg()
844 if (skcb->addr.dst_name) in j1939_sk_recvmsg()
846 sizeof(skcb->addr.dst_name), &skcb->addr.dst_name); in j1939_sk_recvmsg()
858 paddr->can_addr.j1939.name = skcb->addr.src_name; in j1939_sk_recvmsg()
859 paddr->can_addr.j1939.addr = skcb->addr.sa; in j1939_sk_recvmsg()
860 paddr->can_addr.j1939.pgn = skcb->addr.pgn; in j1939_sk_recvmsg()
902 skcb->addr = jsk->addr; in j1939_sk_alloc_skb()
906 struct sockaddr_can *addr = msg->msg_name; in j1939_sk_alloc_skb() local
908 if (addr->can_addr.j1939.name || in j1939_sk_alloc_skb()
909 addr->can_addr.j1939.addr != J1939_NO_ADDR) { in j1939_sk_alloc_skb()
910 skcb->addr.dst_name = addr->can_addr.j1939.name; in j1939_sk_alloc_skb()
911 skcb->addr.da = addr->can_addr.j1939.addr; in j1939_sk_alloc_skb()
913 if (j1939_pgn_is_valid(addr->can_addr.j1939.pgn)) in j1939_sk_alloc_skb()
914 skcb->addr.pgn = addr->can_addr.j1939.pgn; in j1939_sk_alloc_skb()
957 if (session->skcb.addr.type == J1939_SIMPLE) in j1939_sk_get_timestamping_opt_stats()
968 session->skcb.addr.pgn); in j1939_sk_get_timestamping_opt_stats()
970 session->skcb.addr.src_name, J1939_NLA_PAD); in j1939_sk_get_timestamping_opt_stats()
972 session->skcb.addr.dst_name, J1939_NLA_PAD); in j1939_sk_get_timestamping_opt_stats()
974 session->skcb.addr.sa); in j1939_sk_get_timestamping_opt_stats()
976 session->skcb.addr.da); in j1939_sk_get_timestamping_opt_stats()
1232 if (!jsk->addr.src_name && jsk->addr.sa == J1939_NO_ADDR) { in j1939_sk_sendmsg()
1240 struct sockaddr_can *addr = msg->msg_name; in j1939_sk_sendmsg() local
1247 if (addr->can_family != AF_CAN) { in j1939_sk_sendmsg()
1252 if (addr->can_ifindex && addr->can_ifindex != ifindex) { in j1939_sk_sendmsg()
1257 if (j1939_pgn_is_valid(addr->can_addr.j1939.pgn) && in j1939_sk_sendmsg()
1258 !j1939_pgn_is_clean_pdu(addr->can_addr.j1939.pgn)) { in j1939_sk_sendmsg()
1263 if (!addr->can_addr.j1939.name && in j1939_sk_sendmsg()
1264 addr->can_addr.j1939.addr == J1939_NO_ADDR && in j1939_sk_sendmsg()
1271 if (!jsk->addr.dst_name && jsk->addr.da == J1939_NO_ADDR && in j1939_sk_sendmsg()