Lines Matching refs:lp

31 static void isdn_ppp_push_higher(isdn_net_dev *net_dev, isdn_net_local *lp,
37 static void isdn_ppp_receive_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
41 static void isdn_ppp_send_ccp(isdn_net_dev *net_dev, isdn_net_local *lp,
67 static int isdn_ppp_mp_init(isdn_net_local *lp, ippp_bundle *add_to);
68 static void isdn_ppp_mp_receive(isdn_net_dev *net_dev, isdn_net_local *lp,
70 static void isdn_ppp_mp_cleanup(isdn_net_local *lp);
108 isdn_ppp_free(isdn_net_local *lp) in isdn_ppp_free() argument
112 if (lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) { in isdn_ppp_free()
114 __func__, lp->ppp_slot); in isdn_ppp_free()
119 spin_lock(&lp->netdev->pb->lock); in isdn_ppp_free()
121 isdn_net_rm_from_bundle(lp); in isdn_ppp_free()
123 if (lp->netdev->pb->ref_ct == 1) /* last link in queue? */ in isdn_ppp_free()
124 isdn_ppp_mp_cleanup(lp); in isdn_ppp_free()
126 lp->netdev->pb->ref_ct--; in isdn_ppp_free()
127 spin_unlock(&lp->netdev->pb->lock); in isdn_ppp_free()
129 if (lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) { in isdn_ppp_free()
131 __func__, lp->ppp_slot); in isdn_ppp_free()
134 is = ippp_table[lp->ppp_slot]; in isdn_ppp_free()
136 isdn_ppp_closewait(lp->ppp_slot); /* force wakeup on ippp device */ in isdn_ppp_free()
141 printk(KERN_DEBUG "isdn_ppp_free %d %lx %lx\n", lp->ppp_slot, (long) lp, (long) is->lp); in isdn_ppp_free()
143 is->lp = NULL; /* link is down .. set lp to NULL */ in isdn_ppp_free()
144 lp->ppp_slot = -1; /* is this OK ?? */ in isdn_ppp_free()
156 isdn_ppp_bind(isdn_net_local *lp) in isdn_ppp_bind() argument
163 if (lp->pppbind < 0) { /* device bounded to ippp device ? */ in isdn_ppp_bind()
168 isdn_net_local *lp = net_dev->local; in isdn_ppp_bind() local
169 if (lp->pppbind >= 0) in isdn_ppp_bind()
170 exclusive[lp->pppbind] = 1; in isdn_ppp_bind()
183 if (ippp_table[i]->minor == lp->pppbind && in isdn_ppp_bind()
195 unit = isdn_ppp_if_get_unit(lp->netdev->dev->name); in isdn_ppp_bind()
198 lp->netdev->dev->name); in isdn_ppp_bind()
203 lp->ppp_slot = i; in isdn_ppp_bind()
205 is->lp = lp; in isdn_ppp_bind()
209 retval = isdn_ppp_mp_init(lp, NULL); in isdn_ppp_bind()
214 retval = lp->ppp_slot; in isdn_ppp_bind()
226 isdn_ppp_wakeup_daemon(isdn_net_local *lp) in isdn_ppp_wakeup_daemon() argument
228 if (lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) { in isdn_ppp_wakeup_daemon()
230 __func__, lp->ppp_slot); in isdn_ppp_wakeup_daemon()
233 ippp_table[lp->ppp_slot]->state = IPPP_OPEN | IPPP_CONNECT | IPPP_NOBLOCK; in isdn_ppp_wakeup_daemon()
234 wake_up_interruptible(&ippp_table[lp->ppp_slot]->wq); in isdn_ppp_wakeup_daemon()
307 is->lp = NULL; in isdn_ppp_open()
357 printk(KERN_DEBUG "ippp: release, minor: %d %lx\n", min, (long) is->lp); in isdn_ppp_release()
359 if (is->lp) { /* a lp address says: this link is still up */ in isdn_ppp_release()
360 isdn_net_dev *p = is->lp->netdev; in isdn_ppp_release()
481 isdn_net_local *lp; in isdn_ppp_ioctl() local
486 lp = is->lp; in isdn_ppp_ioctl()
513 if (!lp) in isdn_ppp_ioctl()
515 if ((r = set_arg(argp, lp->netdev->dev->name, in isdn_ppp_ioctl()
516 strlen(lp->netdev->dev->name)))) in isdn_ppp_ioctl()
537 if (lp) { in isdn_ppp_ioctl()
540 netif_wake_queue(lp->netdev->dev); in isdn_ppp_ioctl()
547 if (lp) { in isdn_ppp_ioctl()
549 pidle.xmit_idle = pidle.recv_idle = lp->huptimer; in isdn_ppp_ioctl()
616 if (lp) in isdn_ppp_ioctl()
618 strncpy(pci.local_num, lp->msn, 63); in isdn_ppp_ioctl()
619 if (lp->dial) { in isdn_ppp_ioctl()
620 strncpy(pci.remote_num, lp->dial->num, 63); in isdn_ppp_ioctl()
622 pci.charge_units = lp->charge; in isdn_ppp_ioctl()
623 if (lp->outgoing) in isdn_ppp_ioctl()
627 if (lp->flags & ISDN_NET_CALLBACK) in isdn_ppp_ioctl()
828 isdn_net_local *lp; in isdn_ppp_write() local
838 lp = is->lp; in isdn_ppp_write()
842 if (!lp) in isdn_ppp_write()
853 lp->huptimer = 0; in isdn_ppp_write()
855 if (lp->isdn_device < 0 || lp->isdn_channel < 0) in isdn_ppp_write()
858 if ((dev->drv[lp->isdn_device]->flags & DRV_FLAG_RUNNING) && in isdn_ppp_write()
859 lp->dialstate == 0 && in isdn_ppp_write()
860 (lp->flags & ISDN_NET_CONNECTED)) { in isdn_ppp_write()
868 hl = dev->drv[lp->isdn_device]->interface->hl_hdrlen; in isdn_ppp_write()
882 isdn_ppp_frame_log("xmit", skb->data, skb->len, 32, is->unit, lp->ppp_slot); in isdn_ppp_write()
885 isdn_ppp_send_ccp(lp->netdev, lp, skb); /* keeps CCP/compression states in sync */ in isdn_ppp_write()
887 isdn_net_write_super(lp, skb); in isdn_ppp_write()
998 void isdn_ppp_receive(isdn_net_dev *net_dev, isdn_net_local *lp, struct sk_buff *skb) in isdn_ppp_receive() argument
1006 slot = lp->ppp_slot; in isdn_ppp_receive()
1009 lp->ppp_slot); in isdn_ppp_receive()
1017 (long)is, (long)lp, lp->ppp_slot, is->unit, (int)skb->len); in isdn_ppp_receive()
1018 isdn_ppp_frame_log("receive", skb->data, skb->len, 32, is->unit, lp->ppp_slot); in isdn_ppp_receive()
1040 isdn_ppp_mp_receive(net_dev, lp, skb); in isdn_ppp_receive()
1045 isdn_ppp_push_higher(net_dev, lp, skb, proto); in isdn_ppp_receive()
1054 isdn_ppp_push_higher(isdn_net_dev *net_dev, isdn_net_local *lp, struct sk_buff *skb, int proto) in isdn_ppp_push_higher() argument
1061 slot = lp->ppp_slot; in isdn_ppp_push_higher()
1064 lp->ppp_slot); in isdn_ppp_push_higher()
1069 if (lp->master) { // FIXME? in isdn_ppp_push_higher()
1070 mlp = ISDN_MASTER_PRIV(lp); in isdn_ppp_push_higher()
1074 lp->ppp_slot); in isdn_ppp_push_higher()
1082 isdn_ppp_frame_log("rpush", skb->data, skb->len, 32, is->unit, lp->ppp_slot); in isdn_ppp_push_higher()
1153 isdn_ppp_receive_ccp(net_dev, lp, skb, proto); in isdn_ppp_push_higher()
1161 isdn_ppp_fill_rq(skb->data, skb->len, proto, lp->ppp_slot); /* push data to pppd device */ in isdn_ppp_push_higher()
1189 lp->huptimer = 0; in isdn_ppp_push_higher()
1195 lp->huptimer = 0; in isdn_ppp_push_higher()
1246 isdn_net_local *lp, *mlp; in isdn_ppp_xmit() local
1285 lp = isdn_net_get_locked_lp(nd); in isdn_ppp_xmit()
1286 if (!lp) { in isdn_ppp_xmit()
1293 slot = lp->ppp_slot; in isdn_ppp_xmit()
1296 lp->ppp_slot); in isdn_ppp_xmit()
1335 lp->huptimer = 0; in isdn_ppp_xmit()
1339 lp->huptimer = 0; in isdn_ppp_xmit()
1345 isdn_ppp_frame_log("xmit0", skb->data, skb->len, 32, ipts->unit, lp->ppp_slot); in isdn_ppp_xmit()
1356 hl = dev->drv[lp->isdn_device]->interface->hl_hdrlen + IPPP_MAX_HEADER; in isdn_ppp_xmit()
1472 isdn_ppp_frame_log("xmit", skb->data, skb->len, 32, ipt->unit, lp->ppp_slot); in isdn_ppp_xmit()
1475 isdn_net_writebuf_skb(lp, skb); in isdn_ppp_xmit()
1478 spin_unlock_bh(&lp->xmit_lock); in isdn_ppp_xmit()
1488 int isdn_ppp_autodial_filter(struct sk_buff *skb, isdn_net_local *lp) in isdn_ppp_autodial_filter() argument
1490 struct ippp_struct *is = ippp_table[lp->ppp_slot]; in isdn_ppp_autodial_filter()
1575 static int isdn_ppp_mp_init(isdn_net_local *lp, ippp_bundle *add_to) in isdn_ppp_mp_init() argument
1579 if (lp->ppp_slot < 0) { in isdn_ppp_mp_init()
1581 __func__, lp->ppp_slot); in isdn_ppp_mp_init()
1585 is = ippp_table[lp->ppp_slot]; in isdn_ppp_mp_init()
1587 if (lp->netdev->pb) in isdn_ppp_mp_init()
1588 lp->netdev->pb->ref_ct--; in isdn_ppp_mp_init()
1589 lp->netdev->pb = add_to; in isdn_ppp_mp_init()
1592 if ((lp->netdev->pb = isdn_ppp_mp_bundle_alloc()) == NULL) in isdn_ppp_mp_init()
1594 lp->next = lp->last = lp; /* nobody else in a queue */ in isdn_ppp_mp_init()
1595 lp->netdev->pb->frags = NULL; in isdn_ppp_mp_init()
1596 lp->netdev->pb->frames = 0; in isdn_ppp_mp_init()
1597 lp->netdev->pb->seq = UINT_MAX; in isdn_ppp_mp_init()
1599 lp->netdev->pb->ref_ct++; in isdn_ppp_mp_init()
1609 static void isdn_ppp_mp_reassembly(isdn_net_dev *net_dev, isdn_net_local *lp,
1614 static void isdn_ppp_mp_receive(isdn_net_dev *net_dev, isdn_net_local *lp, in isdn_ppp_mp_receive() argument
1629 slot = lp->ppp_slot; in isdn_ppp_mp_receive()
1632 __func__, lp->ppp_slot); in isdn_ppp_mp_receive()
1643 isdn_ppp_mp_print_recv_pkt(lp->ppp_slot, skb); in isdn_ppp_mp_receive()
1765 isdn_ppp_mp_reassembly(net_dev, lp, start, nextf); in isdn_ppp_mp_receive()
1835 static void isdn_ppp_mp_cleanup(isdn_net_local *lp) in isdn_ppp_mp_cleanup() argument
1837 struct sk_buff *frag = lp->netdev->pb->frags; in isdn_ppp_mp_cleanup()
1841 isdn_ppp_mp_free_skb(lp->netdev->pb, frag); in isdn_ppp_mp_cleanup()
1844 lp->netdev->pb->frags = NULL; in isdn_ppp_mp_cleanup()
1893 void isdn_ppp_mp_reassembly(isdn_net_dev *net_dev, isdn_net_local *lp, in isdn_ppp_mp_reassembly() argument
1901 if (lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) { in isdn_ppp_mp_reassembly()
1903 __func__, lp->ppp_slot); in isdn_ppp_mp_reassembly()
1907 if (ippp_table[lp->ppp_slot]->debug & 0x40) in isdn_ppp_mp_reassembly()
1920 if (ippp_table[lp->ppp_slot]->debug & 0x40) in isdn_ppp_mp_reassembly()
1943 isdn_ppp_push_higher(net_dev, lp, skb, proto); in isdn_ppp_mp_reassembly()
1965 isdn_net_local *lp, *nlp; in isdn_ppp_bundle() local
1978 nlp = is->lp; in isdn_ppp_bundle()
1979 lp = p->queue; in isdn_ppp_bundle()
1981 lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) { in isdn_ppp_bundle()
1984 nlp->ppp_slot : lp->ppp_slot); in isdn_ppp_bundle()
1991 ippp_table[nlp->ppp_slot]->unit = ippp_table[lp->ppp_slot]->unit; in isdn_ppp_bundle()
1994 ippp_table[nlp->ppp_slot]->pppcfg |= ippp_table[lp->ppp_slot]->pppcfg & in isdn_ppp_bundle()
1996 ippp_table[nlp->ppp_slot]->mpppcfg |= ippp_table[lp->ppp_slot]->mpppcfg & in isdn_ppp_bundle()
2015 isdn_net_local *lp = netdev_priv(dev); in isdn_ppp_dev_ioctl_stats() local
2024 t.p.ppp_ipackets = lp->stats.rx_packets; in isdn_ppp_dev_ioctl_stats()
2025 t.p.ppp_ibytes = lp->stats.rx_bytes; in isdn_ppp_dev_ioctl_stats()
2026 t.p.ppp_ierrors = lp->stats.rx_errors; in isdn_ppp_dev_ioctl_stats()
2027 t.p.ppp_opackets = lp->stats.tx_packets; in isdn_ppp_dev_ioctl_stats()
2028 t.p.ppp_obytes = lp->stats.tx_bytes; in isdn_ppp_dev_ioctl_stats()
2029 t.p.ppp_oerrors = lp->stats.tx_errors; in isdn_ppp_dev_ioctl_stats()
2054 isdn_net_local *lp = netdev_priv(dev); in isdn_ppp_dev_ioctl() local
2057 if (lp->p_encap != ISDN_NET_ENCAP_SYNCPPP) in isdn_ppp_dev_ioctl()
2069 error = isdn_ppp_dev_ioctl_stats(lp->ppp_slot, ifr, dev); in isdn_ppp_dev_ioctl()
2110 isdn_net_local *lp; in isdn_ppp_dial_slave() local
2115 lp = ndev->local; in isdn_ppp_dial_slave()
2116 if (!(lp->flags & ISDN_NET_CONNECTED)) in isdn_ppp_dial_slave()
2119 sdev = lp->slave; in isdn_ppp_dial_slave()
2141 isdn_net_local *lp; in isdn_ppp_hangup_slave() local
2146 lp = ndev->local; in isdn_ppp_hangup_slave()
2147 if (!(lp->flags & ISDN_NET_CONNECTED)) in isdn_ppp_hangup_slave()
2150 sdev = lp->slave; in isdn_ppp_hangup_slave()
2184 isdn_ppp_fill_rq(NULL, 0, PPP_COMP, is->lp->ppp_slot); in isdn_ppp_ccp_kickup()
2230 isdn_net_local *lp = is->lp; in isdn_ppp_ccp_xmit_reset() local
2233 hl = dev->drv[lp->isdn_device]->interface->hl_hdrlen; in isdn_ppp_ccp_xmit_reset()
2267 isdn_ppp_frame_log("ccp-xmit", skb->data, skb->len, 32, is->unit, lp->ppp_slot); in isdn_ppp_ccp_xmit_reset()
2269 isdn_net_write_super(lp, skb); in isdn_ppp_ccp_xmit_reset()
2670 static void isdn_ppp_receive_ccp(isdn_net_dev *net_dev, isdn_net_local *lp, in isdn_ppp_receive_ccp() argument
2680 lp->ppp_slot); in isdn_ppp_receive_ccp()
2681 if (lp->ppp_slot < 0 || lp->ppp_slot >= ISDN_MAX_CHANNELS) { in isdn_ppp_receive_ccp()
2683 __func__, lp->ppp_slot); in isdn_ppp_receive_ccp()
2686 is = ippp_table[lp->ppp_slot]; in isdn_ppp_receive_ccp()
2687 isdn_ppp_frame_log("ccp-rcv", skb->data, skb->len, 32, is->unit, lp->ppp_slot); in isdn_ppp_receive_ccp()
2689 if (lp->master) { in isdn_ppp_receive_ccp()
2690 int slot = ISDN_MASTER_PRIV(lp)->ppp_slot; in isdn_ppp_receive_ccp()
2847 static void isdn_ppp_send_ccp(isdn_net_dev *net_dev, isdn_net_local *lp, struct sk_buff *skb) in isdn_ppp_send_ccp() argument
2850 int proto, slot = lp->ppp_slot; in isdn_ppp_send_ccp()
2874 isdn_ppp_frame_log("ccp-xmit", skb->data, skb->len, 32, is->unit, lp->ppp_slot); in isdn_ppp_send_ccp()
2876 if (lp->master) { in isdn_ppp_send_ccp()
2877 slot = ISDN_MASTER_PRIV(lp)->ppp_slot; in isdn_ppp_send_ccp()