Lines Matching refs:llc

4  *   Functions in this module are implementation of socket based llc
5 * communications for the Linux operating system. Support of llc class
31 #include <net/llc.h>
89 * llc_ui_header_len - return length of llc header based on operation
90 * @sk: Socket which contains a valid llc socket type.
93 * Provide the length of the llc header depending on what kind of
95 * Returns the correct llc header length.
129 struct llc_sock* llc = llc_sk(sk);
131 if (unlikely(llc_data_accept_state(llc->state) ||
132 llc->remote_busy_flag ||
133 llc->p_flag)) {
203 struct llc_sock *llc;
209 llc = llc_sk(sk);
211 llc->laddr.lsap, llc->daddr.lsap);
215 struct llc_sap *sap = llc->sap;
221 llc_sap_remove_socket(llc->sap, sk);
227 if (llc->dev)
228 dev_put(llc->dev);
280 struct llc_sock *llc = llc_sk(sk);
303 llc->laddr.lsap = llc_ui_autoport();
304 if (!llc->laddr.lsap)
307 sap = llc_sap_open(llc->laddr.lsap, NULL);
312 llc->dev = dev;
315 memcpy(llc->laddr.mac, llc->dev->dev_addr, IFHWADDRLEN);
316 memcpy(&llc->addr, addr, sizeof(llc->addr));
332 * Bind a socket to a specific address. For llc a user is able to bind to
344 struct llc_sock *llc = llc_sk(sk);
415 llc->dev = dev;
418 llc->laddr.lsap = addr->sllc_sap;
419 memcpy(llc->laddr.mac, addr->sllc_mac, IFHWADDRLEN);
420 memcpy(&llc->addr, addr, sizeof(llc->addr));
483 struct llc_sock *llc = llc_sk(sk);
505 llc->daddr.lsap = addr->sllc_sap;
506 memcpy(llc->daddr.mac, addr->sllc_mac, IFHWADDRLEN);
509 llc->link = llc_ui_next_link_no(llc->sap->laddr.lsap);
510 rc = llc_establish_connection(sk, llc->dev->dev_addr,
621 struct llc_sock *llc = llc_sk(sk);
629 (!llc_data_accept_state(llc->state) &&
630 !llc->remote_busy_flag &&
631 !llc->p_flag), &wait))
673 struct llc_sock *llc = llc_sk(skb->sk);
675 if (llc->cmsg_flags & LLC_CMSG_PKTINFO) {
700 struct llc_sock *llc, *newllc;
732 llc = llc_sk(sk);
734 memcpy(&newllc->addr, &llc->addr, sizeof(newllc->addr));
766 struct llc_sock *llc = llc_sk(sk);
781 seq = &llc->copied_seq;
783 peek_seq = llc->copied_seq;
858 if ((flags & MSG_PEEK) && peek_seq != llc->copied_seq) {
862 peek_seq = llc->copied_seq;
934 struct llc_sock *llc = llc_sk(sk);
943 llc->laddr.lsap, llc->daddr.lsap);
949 if (llc_ui_addr_null(&llc->addr))
951 addr = &llc->addr;
960 dev = llc->dev;
975 llc->dev != dev ||
987 llc_build_and_send_ui_pkt(llc->sap, skb, addr->sllc_mac,
993 llc_build_and_send_test_pkt(llc->sap, skb, addr->sllc_mac,
999 llc_build_and_send_xid_pkt(llc->sap, skb, addr->sllc_mac,
1013 __func__, llc->laddr.lsap, llc->daddr.lsap, rc);
1031 struct llc_sock *llc = llc_sk(sk);
1042 if(llc->dev)
1043 sllc.sllc_arphrd = llc->dev->type;
1044 sllc.sllc_sap = llc->daddr.lsap;
1045 memcpy(&sllc.sllc_mac, &llc->daddr.mac, IFHWADDRLEN);
1048 if (!llc->sap)
1050 sllc.sllc_sap = llc->sap->laddr.lsap;
1052 if (llc->dev) {
1053 sllc.sllc_arphrd = llc->dev->type;
1054 memcpy(&sllc.sllc_mac, llc->dev->dev_addr,
1072 * get/set info on llc sockets
1094 struct llc_sock *llc = llc_sk(sk);
1109 llc->n2 = opt;
1114 llc->n1 = opt;
1119 llc->ack_timer.expire = opt * HZ;
1124 llc->pf_cycle_timer.expire = opt * HZ;
1129 llc->rej_sent_timer.expire = opt * HZ;
1134 llc->busy_state_timer.expire = opt * HZ;
1139 llc->k = opt;
1144 llc->rw = opt;
1148 llc->cmsg_flags |= LLC_CMSG_PKTINFO;
1150 llc->cmsg_flags &= ~LLC_CMSG_PKTINFO;
1176 struct llc_sock *llc = llc_sk(sk);
1190 val = llc->n2; break;
1192 val = llc->n1; break;
1194 val = llc->ack_timer.expire / HZ; break;
1196 val = llc->pf_cycle_timer.expire / HZ; break;
1198 val = llc->rej_sent_timer.expire / HZ; break;
1200 val = llc->busy_state_timer.expire / HZ; break;
1202 val = llc->k; break;
1204 val = llc->rw; break;
1206 val = (llc->cmsg_flags & LLC_CMSG_PKTINFO) != 0;