Lines Matching defs:vcc
126 static void free_scq(ns_dev *card, scq_info * scq, struct atm_vcc *vcc);
129 static int ns_open(struct atm_vcc *vcc);
130 static void ns_close(struct atm_vcc *vcc);
132 static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb);
903 /* For variable rate SCQ vcc must be NULL */
904 static void free_scq(ns_dev *card, scq_info *scq, struct atm_vcc *vcc)
911 vcc = ATM_SKB(scq->skb[i])->vcc;
912 if (vcc->pop != NULL)
913 vcc->pop(vcc, scq->skb[i]);
917 } else { /* vcc must be != NULL */
919 if (vcc == NULL) {
921 ("nicstar: free_scq() called with vcc == NULL for fixed rate scq.");
927 if (vcc->pop != NULL)
928 vcc->pop(vcc, scq->skb[i]);
1230 static int ns_open(struct atm_vcc *vcc)
1243 int inuse; /* tx or rx vc already in use by another vcc */
1244 short vpi = vcc->vpi;
1245 int vci = vcc->vci;
1247 card = (ns_dev *) vcc->dev->dev_data;
1250 if (vcc->qos.aal != ATM_AAL5 && vcc->qos.aal != ATM_AAL0) {
1256 vcc->dev_data = vc;
1259 if (vcc->qos.txtp.traffic_class != ATM_NONE && vc->tx)
1261 if (vcc->qos.rxtp.traffic_class != ATM_NONE && vc->rx)
1269 set_bit(ATM_VF_ADDR, &vcc->flags);
1274 if (!test_bit(ATM_VF_PARTIAL, &vcc->flags)) {
1277 set_bit(ATM_VF_PARTIAL, &vcc->flags);
1278 if (vcc->qos.txtp.traffic_class == ATM_CBR) {
1280 if (vcc->qos.txtp.max_pcr == 0 && vcc->qos.txtp.pcr == 0
1281 && vcc->qos.txtp.min_pcr == 0) {
1285 clear_bit(ATM_VF_PARTIAL, &vcc->flags);
1286 clear_bit(ATM_VF_ADDR, &vcc->flags);
1290 tcr = atm_pcr_goal(&(vcc->qos.txtp));
1294 card->index, vcc->qos.txtp.max_pcr);
1312 clear_bit(ATM_VF_PARTIAL, &vcc->flags);
1313 clear_bit(ATM_VF_ADDR, &vcc->flags);
1322 clear_bit(ATM_VF_PARTIAL, &vcc->flags);
1323 clear_bit(ATM_VF_ADDR, &vcc->flags);
1331 clear_bit(ATM_VF_PARTIAL, &vcc->flags);
1332 clear_bit(ATM_VF_ADDR, &vcc->flags);
1350 clear_bit(ATM_VF_PARTIAL, &vcc->flags);
1351 clear_bit(ATM_VF_ADDR, &vcc->flags);
1363 clear_bit(ATM_VF_PARTIAL, &vcc->flags);
1364 clear_bit(ATM_VF_ADDR, &vcc->flags);
1375 } else if (vcc->qos.txtp.traffic_class == ATM_UBR) {
1380 if (vcc->qos.txtp.traffic_class != ATM_NONE) {
1382 vc->tx_vcc = vcc;
1385 if (vcc->qos.rxtp.traffic_class != ATM_NONE) {
1389 vc->rx_vcc = vcc;
1393 if (vcc->qos.aal == ATM_AAL5)
1395 else /* vcc->qos.aal == ATM_AAL0 */
1408 set_bit(ATM_VF_READY, &vcc->flags);
1412 static void ns_close(struct atm_vcc *vcc)
1419 vc = vcc->dev_data;
1420 card = vcc->dev->dev_data;
1422 (int)vcc->vpi, vcc->vci);
1424 clear_bit(ATM_VF_READY, &vcc->flags);
1426 if (vcc->qos.rxtp.traffic_class != ATM_NONE) {
1432 (vcc->vpi << card->vcibits | vcc->vci) * NS_RCT_ENTRY_SIZE;
1462 if (vcc->qos.txtp.traffic_class != ATM_NONE) {
1466 if (vcc->qos.txtp.traffic_class == ATM_CBR) {
1524 free_scq(card, vc->scq, vcc);
1527 /* remove all references to vcc before deleting it */
1528 if (vcc->qos.txtp.traffic_class != ATM_NONE) {
1535 if (scq->skb[i] && ATM_SKB(scq->skb[i])->vcc == vcc) {
1536 ATM_SKB(scq->skb[i])->vcc = NULL;
1537 atm_return(vcc, scq->skb[i]->truesize);
1539 ("nicstar: deleted pending vcc mapping\n");
1546 vcc->dev_data = NULL;
1547 clear_bit(ATM_VF_PARTIAL, &vcc->flags);
1548 clear_bit(ATM_VF_ADDR, &vcc->flags);
1625 static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
1634 card = vcc->dev->dev_data;
1636 if ((vc = (vc_map *) vcc->dev_data) == NULL) {
1637 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
1639 atomic_inc(&vcc->stats->tx_err);
1647 atomic_inc(&vcc->stats->tx_err);
1652 if (vcc->qos.aal != ATM_AAL5 && vcc->qos.aal != ATM_AAL0) {
1655 atomic_inc(&vcc->stats->tx_err);
1662 atomic_inc(&vcc->stats->tx_err);
1667 ATM_SKB(skb)->vcc = vcc;
1672 if (vcc->qos.aal == ATM_AAL5) {
1678 ns_tbd_mkword_4(0, (u32) vcc->vpi, (u32) vcc->vci, 0,
1682 } else { /* (vcc->qos.aal == ATM_AAL0) */
1694 cpu_to_le32((((u32) vcc->
1695 vpi) << NS_TBD_VPI_SHIFT | ((u32) vcc->
1700 if (vcc->qos.txtp.traffic_class == ATM_CBR) {
1702 scq = ((vc_map *) vcc->dev_data)->scq;
1710 atomic_inc(&vcc->stats->tx_err);
1716 atomic_inc(&vcc->stats->tx);
1910 struct atm_vcc *vcc;
1935 vcc = ATM_SKB(skb)->vcc;
1936 if (vcc && vcc->pop != NULL) {
1937 vcc->pop(vcc, skb);
1974 struct atm_vcc *vcc;
2019 vcc = vc->rx_vcc;
2021 if (vcc->qos.aal == ATM_AAL0) {
2033 atomic_add(i, &vcc->stats->rx_drop);
2036 if (!atm_charge(vcc, sb->truesize)) {
2040 atomic_add(i - 1, &vcc->stats->rx_drop); /* already increased by 1 */
2052 ATM_SKB(sb)->vcc = vcc;
2054 vcc->push(vcc, sb);
2055 atomic_inc(&vcc->stats->rx);
2072 atomic_inc(&vcc->stats->rx_drop);
2096 atomic_inc(&vcc->stats->rx_err);
2116 atomic_inc(&vcc->stats->rx_err);
2129 atomic_inc(&vcc->stats->rx_err);
2152 atomic_inc(&vcc->stats->rx_err);
2164 if (!atm_charge(vcc, skb->truesize)) {
2166 atomic_inc(&vcc->stats->rx_drop);
2170 ATM_SKB(skb)->vcc = vcc;
2172 vcc->push(vcc, skb);
2173 atomic_inc(&vcc->stats->rx);
2182 if (!atm_charge(vcc, sb->truesize)) {
2184 atomic_inc(&vcc->stats->rx_drop);
2188 ATM_SKB(sb)->vcc = vcc;
2190 vcc->push(vcc, sb);
2191 atomic_inc(&vcc->stats->rx);
2198 if (!atm_charge(vcc, skb->truesize)) {
2200 atomic_inc(&vcc->stats->rx_drop);
2207 ATM_SKB(skb)->vcc = vcc;
2209 vcc->push(vcc, skb);
2210 atomic_inc(&vcc->stats->rx);
2231 atomic_inc(&vcc->stats->rx_drop);
2274 if (!atm_charge(vcc, hb->truesize)) {
2282 atomic_inc(&vcc->stats->rx_drop);
2313 ATM_SKB(hb)->vcc = vcc;
2315 vcc->push(vcc, hb);
2316 atomic_inc(&vcc->stats->rx);