Lines Matching defs:brvcc
153 struct br2684_vcc *brvcc;
163 list_for_each_entry(brvcc, &BRPRIV(net_dev)->brvccs, brvccs) {
164 atm_vcc = brvcc->atmvcc;
165 if (atm_vcc && brvcc->atmvcc->dev == atm_dev) {
187 struct br2684_vcc *brvcc = BR2684_VCC(vcc);
189 pr_debug("(vcc %p ; net_dev %p )\n", vcc, brvcc->device);
190 brvcc->old_pop(vcc, skb);
193 if (atomic_inc_return(&brvcc->qspace) == 1)
194 netif_wake_queue(brvcc->device);
203 struct br2684_vcc *brvcc)
207 int minheadroom = (brvcc->encaps == e_llc) ?
214 brvcc->copies_needed++;
217 brvcc->copies_failed++;
223 if (brvcc->encaps == e_llc) {
254 ATM_SKB(skb)->vcc = atmvcc = brvcc->atmvcc;
260 if (atomic_dec_return(&brvcc->qspace) < 1) {
262 netif_stop_queue(brvcc->device);
264 if (unlikely(atomic_read(&brvcc->qspace) > 0))
265 netif_wake_queue(brvcc->device);
276 struct br2684_vcc *brvcc = BR2684_VCC(atmvcc);
278 if (atomic_read(&brvcc->qspace) > 0)
279 netif_wake_queue(brvcc->device);
281 if (brvcc->old_release_cb)
282 brvcc->old_release_cb(atmvcc);
295 struct br2684_vcc *brvcc;
301 brvcc = pick_outgoing_vcc(skb, brdev);
302 if (brvcc == NULL) {
310 atmvcc = brvcc->atmvcc;
323 netif_stop_queue(brvcc->device);
328 if (!br2684_xmit_vcc(skb, dev, brvcc)) {
362 struct br2684_vcc *brvcc;
377 brvcc = NULL;
379 brvcc = list_entry_brvcc(brdev->brvccs.next);
381 if (brvcc == NULL)
384 brvcc = BR2684_VCC(atmvcc);
385 memcpy(&brvcc->filter, &fs.filter, sizeof(brvcc->filter));
391 packet_fails_filter(__be16 type, struct br2684_vcc *brvcc, struct sk_buff *skb)
393 if (brvcc->filter.netmask == 0)
396 (((struct iphdr *)(skb->data))->daddr & brvcc->filter.
397 netmask) == brvcc->filter.prefix)
409 static void br2684_close_vcc(struct br2684_vcc *brvcc)
411 pr_debug("removing VCC %p from dev %p\n", brvcc, brvcc->device);
413 list_del(&brvcc->brvccs);
415 brvcc->atmvcc->user_back = NULL; /* what about vcc->recvq ??? */
416 brvcc->atmvcc->release_cb = brvcc->old_release_cb;
417 brvcc->old_push(brvcc->atmvcc, NULL); /* pass on the bad news */
418 module_put(brvcc->old_owner);
419 kfree(brvcc);
425 struct br2684_vcc *brvcc = BR2684_VCC(atmvcc);
426 struct net_device *net_dev = brvcc->device;
433 br2684_close_vcc(brvcc);
447 if (brvcc->encaps == e_llc) {
502 if (unlikely(packet_fails_filter(skb->protocol, brvcc, skb)))
533 struct br2684_vcc *brvcc;
541 brvcc = kzalloc(sizeof(struct br2684_vcc), GFP_KERNEL);
542 if (!brvcc)
550 atomic_set(&brvcc->qspace, 2);
577 pr_debug("vcc=%p, encaps=%d, brvcc=%p\n", atmvcc, be.encaps, brvcc);
587 list_add(&brvcc->brvccs, &brdev->brvccs);
589 brvcc->device = net_dev;
590 brvcc->atmvcc = atmvcc;
591 atmvcc->user_back = brvcc;
592 brvcc->encaps = (enum br2684_encaps)be.encaps;
593 brvcc->old_push = atmvcc->push;
594 brvcc->old_pop = atmvcc->pop;
595 brvcc->old_release_cb = atmvcc->release_cb;
596 brvcc->old_owner = atmvcc->owner;
618 kfree(brvcc);
790 const struct br2684_vcc *brvcc;
798 list_for_each_entry(brvcc, &brdev->brvccs, brvccs) {
801 "\n", brvcc->atmvcc->dev->number,
802 brvcc->atmvcc->vpi, brvcc->atmvcc->vci,
803 (brvcc->encaps == e_llc) ? "LLC" : "VC",
805 brvcc->copies_failed, brvcc->copies_needed);
807 if (brvcc->filter.netmask != 0)
809 &brvcc->filter.prefix,
810 &brvcc->filter.netmask);
843 struct br2684_vcc *brvcc;
857 brvcc = list_entry_brvcc(brdev->brvccs.next);
858 br2684_close_vcc(brvcc);