• Home
  • Raw
  • Download

Lines Matching refs:addr

83 static inline u8 llc_ui_addr_null(struct sockaddr_llc *addr)  in llc_ui_addr_null()  argument
85 return !memcmp(addr, &llc_ui_addrnull, sizeof(*addr)); in llc_ui_addr_null()
97 static inline u8 llc_ui_header_len(struct sock *sk, struct sockaddr_llc *addr) in llc_ui_header_len() argument
101 if (addr->sllc_test) in llc_ui_header_len()
103 else if (addr->sllc_xid) in llc_ui_header_len()
276 static int llc_ui_autobind(struct socket *sock, struct sockaddr_llc *addr) in llc_ui_autobind() argument
286 if (!addr->sllc_arphrd) in llc_ui_autobind()
287 addr->sllc_arphrd = ARPHRD_ETHER; in llc_ui_autobind()
288 if (addr->sllc_arphrd != ARPHRD_ETHER) in llc_ui_autobind()
293 if (dev && addr->sllc_arphrd != dev->type) { in llc_ui_autobind()
298 dev = dev_getfirstbyhwtype(&init_net, addr->sllc_arphrd); in llc_ui_autobind()
315 memcpy(&llc->addr, addr, sizeof(llc->addr)); in llc_ui_autobind()
341 struct sockaddr_llc *addr = (struct sockaddr_llc *)uaddr; in llc_ui_bind() local
349 if (unlikely(!sock_flag(sk, SOCK_ZAPPED) || addrlen != sizeof(*addr))) in llc_ui_bind()
352 if (!addr->sllc_arphrd) in llc_ui_bind()
353 addr->sllc_arphrd = ARPHRD_ETHER; in llc_ui_bind()
354 if (unlikely(addr->sllc_family != AF_LLC || addr->sllc_arphrd != ARPHRD_ETHER)) in llc_ui_bind()
356 dprintk("%s: binding %02X\n", __func__, addr->sllc_sap); in llc_ui_bind()
362 if (is_zero_ether_addr(addr->sllc_mac)) in llc_ui_bind()
363 memcpy(addr->sllc_mac, dev->dev_addr, in llc_ui_bind()
365 if (addr->sllc_arphrd != dev->type || in llc_ui_bind()
366 !ether_addr_equal(addr->sllc_mac, in llc_ui_bind()
373 dev = dev_getbyhwaddr_rcu(&init_net, addr->sllc_arphrd, in llc_ui_bind()
374 addr->sllc_mac); in llc_ui_bind()
381 if (!addr->sllc_sap) { in llc_ui_bind()
383 addr->sllc_sap = llc_ui_autoport(); in llc_ui_bind()
384 if (!addr->sllc_sap) in llc_ui_bind()
387 sap = llc_sap_find(addr->sllc_sap); in llc_ui_bind()
389 sap = llc_sap_open(addr->sllc_sap, NULL); in llc_ui_bind()
403 memcpy(laddr.mac, addr->sllc_mac, IFHWADDRLEN); in llc_ui_bind()
404 laddr.lsap = addr->sllc_sap; in llc_ui_bind()
417 llc->laddr.lsap = addr->sllc_sap; in llc_ui_bind()
418 memcpy(llc->laddr.mac, addr->sllc_mac, IFHWADDRLEN); in llc_ui_bind()
419 memcpy(&llc->addr, addr, sizeof(llc->addr)); in llc_ui_bind()
483 struct sockaddr_llc *addr = (struct sockaddr_llc *)uaddr; in llc_ui_connect() local
487 if (unlikely(addrlen != sizeof(*addr))) in llc_ui_connect()
490 if (unlikely(addr->sllc_family != AF_LLC)) in llc_ui_connect()
500 rc = llc_ui_autobind(sock, addr); in llc_ui_connect()
504 llc->daddr.lsap = addr->sllc_sap; in llc_ui_connect()
505 memcpy(llc->daddr.mac, addr->sllc_mac, IFHWADDRLEN); in llc_ui_connect()
510 addr->sllc_mac, addr->sllc_sap); in llc_ui_connect()
733 memcpy(&newllc->addr, &llc->addr, sizeof(newllc->addr)); in llc_ui_accept()
740 llc_sk(sk)->addr.sllc_sap, newllc->daddr.lsap); in llc_ui_accept()
931 DECLARE_SOCKADDR(struct sockaddr_llc *, addr, msg->msg_name); in llc_ui_sendmsg()
944 if (addr) { in llc_ui_sendmsg()
945 if (msg->msg_namelen < sizeof(*addr)) in llc_ui_sendmsg()
948 if (llc_ui_addr_null(&llc->addr)) in llc_ui_sendmsg()
950 addr = &llc->addr; in llc_ui_sendmsg()
955 rc = llc_ui_autobind(sock, addr); in llc_ui_sendmsg()
961 hdrlen = llc_ui_header_len(sk, addr); in llc_ui_sendmsg()
975 hdrlen != llc_ui_header_len(sk, addr) || in llc_ui_sendmsg()
980 skb->protocol = llc_proto_type(addr->sllc_arphrd); in llc_ui_sendmsg()
985 if (sk->sk_type == SOCK_DGRAM || addr->sllc_ua) { in llc_ui_sendmsg()
986 llc_build_and_send_ui_pkt(llc->sap, skb, addr->sllc_mac, in llc_ui_sendmsg()
987 addr->sllc_sap); in llc_ui_sendmsg()
991 if (addr->sllc_test) { in llc_ui_sendmsg()
992 llc_build_and_send_test_pkt(llc->sap, skb, addr->sllc_mac, in llc_ui_sendmsg()
993 addr->sllc_sap); in llc_ui_sendmsg()
997 if (addr->sllc_xid) { in llc_ui_sendmsg()
998 llc_build_and_send_xid_pkt(llc->sap, skb, addr->sllc_mac, in llc_ui_sendmsg()
999 addr->sllc_sap); in llc_ui_sendmsg()
1004 if (!(sk->sk_type == SOCK_STREAM && !addr->sllc_ua)) in llc_ui_sendmsg()