Lines Matching refs:priv

314 	struct dvb_net_priv *priv = netdev_priv(dev);  in dvb_net_ule()  local
348 priv->ts_count, ts[0], in dvb_net_ule()
353 if (priv->ule_skb) { in dvb_net_ule()
354 dev_kfree_skb( priv->ule_skb ); in dvb_net_ule()
359 reset_ule(priv); in dvb_net_ule()
360 priv->need_pusi = 1; in dvb_net_ule()
364 priv->ts_count++; in dvb_net_ule()
372 if (priv->need_pusi) { in dvb_net_ule()
376 priv->tscc = ts[3] & 0x0F; in dvb_net_ule()
380 "(pointer field %d)\n", priv->ts_count, ts[4]); in dvb_net_ule()
382 priv->ts_count++; in dvb_net_ule()
392 priv->ts_count++; in dvb_net_ule()
399 if ((ts[3] & 0x0F) == priv->tscc) in dvb_net_ule()
400 priv->tscc = (priv->tscc + 1) & 0x0F; in dvb_net_ule()
404 "expected %#x.\n", priv->ts_count, ts[3] & 0x0F, priv->tscc); in dvb_net_ule()
406 if (priv->ule_skb) { in dvb_net_ule()
407 dev_kfree_skb( priv->ule_skb ); in dvb_net_ule()
413 reset_ule(priv); in dvb_net_ule()
415 priv->need_pusi = 1; in dvb_net_ule()
423 if (! priv->need_pusi) { in dvb_net_ule()
424 if (!(*from_where < (ts_remain-1)) || *from_where != priv->ule_sndu_remain) { in dvb_net_ule()
427 "field: %u.\n", priv->ts_count, *from_where); in dvb_net_ule()
430 if (priv->ule_skb) { in dvb_net_ule()
432 dev_kfree_skb(priv->ule_skb); in dvb_net_ule()
435 if (error || priv->ule_sndu_remain) { in dvb_net_ule()
441 reset_ule(priv); in dvb_net_ule()
442 priv->need_pusi = 1; in dvb_net_ule()
450 priv->need_pusi = 0; in dvb_net_ule()
452 if (priv->ule_sndu_remain > 183) { in dvb_net_ule()
459 priv->ts_count, priv->ule_sndu_remain, ts[4], ts_remain); in dvb_net_ule()
460 dev_kfree_skb(priv->ule_skb); in dvb_net_ule()
462 reset_ule(priv); in dvb_net_ule()
471 if (priv->ule_skb == NULL) { in dvb_net_ule()
480 priv->ule_sndu_len = 0; in dvb_net_ule()
481 priv->need_pusi = 1; in dvb_net_ule()
486 if (! priv->ule_sndu_len) { in dvb_net_ule()
488 priv->ule_sndu_len = from_where[0] << 8 | from_where[1]; in dvb_net_ule()
489 if (priv->ule_sndu_len & 0x8000) { in dvb_net_ule()
491 priv->ule_sndu_len &= 0x7FFF; in dvb_net_ule()
492 priv->ule_dbit = 1; in dvb_net_ule()
494 priv->ule_dbit = 0; in dvb_net_ule()
496 if (priv->ule_sndu_len < 5) { in dvb_net_ule()
498 "Resyncing.\n", priv->ts_count, priv->ule_sndu_len); in dvb_net_ule()
501 priv->ule_sndu_len = 0; in dvb_net_ule()
502 priv->need_pusi = 1; in dvb_net_ule()
505 priv->ts_count++; in dvb_net_ule()
512 priv->ule_sndu_remain = priv->ule_sndu_len + 2; in dvb_net_ule()
522 priv->ule_sndu_remain--; in dvb_net_ule()
523 priv->ule_sndu_type = from_where[0] << 8; in dvb_net_ule()
524 priv->ule_sndu_type_1 = 1; /* first byte of ule_type is set. */ in dvb_net_ule()
530 priv->ts_count++; in dvb_net_ule()
535 if (priv->ule_sndu_type_1) { in dvb_net_ule()
536 priv->ule_sndu_type_1 = 0; in dvb_net_ule()
537 priv->ule_sndu_type |= from_where[0]; in dvb_net_ule()
542 priv->ule_sndu_type = from_where[0] << 8 | from_where[1]; in dvb_net_ule()
551 priv->ule_skb = dev_alloc_skb( priv->ule_sndu_len + ETH_HLEN + ETH_ALEN ); in dvb_net_ule()
552 if (priv->ule_skb == NULL) { in dvb_net_ule()
560 priv->ule_sndu_remain = priv->ule_sndu_len; in dvb_net_ule()
561 priv->ule_skb->dev = dev; in dvb_net_ule()
563 skb_reserve( priv->ule_skb, ETH_HLEN + ETH_ALEN ); in dvb_net_ule()
567 how_much = min(priv->ule_sndu_remain, (int)ts_remain); in dvb_net_ule()
568 memcpy(skb_put(priv->ule_skb, how_much), from_where, how_much); in dvb_net_ule()
569 priv->ule_sndu_remain -= how_much; in dvb_net_ule()
574 if (priv->ule_sndu_remain <= 0) { in dvb_net_ule()
576 __be16 ulen = htons(priv->ule_sndu_len); in dvb_net_ule()
577 __be16 utype = htons(priv->ule_sndu_type); in dvb_net_ule()
582 { priv->ule_skb->data, priv->ule_skb->len - 4 } in dvb_net_ule()
585 if (priv->ule_dbit) { in dvb_net_ule()
592 tail = skb_tail_pointer(priv->ule_skb); in dvb_net_ule()
599priv->ts_count, ule_crc, expected_crc, priv->ule_sndu_len, priv->ule_sndu_type, ts_remain, ts_rema… in dvb_net_ule()
621 dev_kfree_skb(priv->ule_skb); in dvb_net_ule()
629 priv->ule_skb->tail -= 4; in dvb_net_ule()
630 priv->ule_skb->len -= 4; in dvb_net_ule()
632 if (!priv->ule_dbit) { in dvb_net_ule()
642 if (priv->rx_mode != RX_MODE_PROMISC) { in dvb_net_ule()
643 if (priv->ule_skb->data[0] & 0x01) { in dvb_net_ule()
645 if (!ether_addr_equal(priv->ule_skb->data, bc_addr)) { in dvb_net_ule()
647 if (priv->rx_mode == RX_MODE_MULTI) { in dvb_net_ule()
649 for(i = 0; i < priv->multi_num && in dvb_net_ule()
650 !ether_addr_equal(priv->ule_skb->data, in dvb_net_ule()
651 priv->multi_macs[i]); i++) in dvb_net_ule()
653 if (i == priv->multi_num) in dvb_net_ule()
655 } else if (priv->rx_mode != RX_MODE_ALL_MULTI) in dvb_net_ule()
661 else if (!ether_addr_equal(priv->ule_skb->data, dev->dev_addr)) in dvb_net_ule()
670 priv->ule_skb->data, dev->dev_addr); in dvb_net_ule()
672 dev_kfree_skb(priv->ule_skb); in dvb_net_ule()
677 skb_copy_from_linear_data(priv->ule_skb, in dvb_net_ule()
680 skb_pull(priv->ule_skb, ETH_ALEN); in dvb_net_ule()
685 if (priv->ule_sndu_type < ETH_P_802_3_MIN) { in dvb_net_ule()
687 int l = handle_ule_extensions(priv); in dvb_net_ule()
691 dev_kfree_skb(priv->ule_skb); in dvb_net_ule()
694 skb_pull(priv->ule_skb, l); in dvb_net_ule()
706 if (!priv->ule_bridged) { in dvb_net_ule()
707 skb_push(priv->ule_skb, ETH_HLEN); in dvb_net_ule()
708 ethh = (struct ethhdr *)priv->ule_skb->data; in dvb_net_ule()
709 if (!priv->ule_dbit) { in dvb_net_ule()
717 ethh->h_proto = htons(priv->ule_sndu_type); in dvb_net_ule()
720 priv->ule_bridged = 0; in dvb_net_ule()
723 priv->ule_skb->protocol = dvb_net_eth_type_trans(priv->ule_skb, dev); in dvb_net_ule()
729 dev->stats.rx_bytes += priv->ule_skb->len; in dvb_net_ule()
730 netif_rx(priv->ule_skb); in dvb_net_ule()
734 reset_ule(priv); in dvb_net_ule()
741 priv->ule_skb = NULL; in dvb_net_ule()
742 priv->ule_sndu_type_1 = 0; in dvb_net_ule()
743 priv->ule_sndu_len = 0; in dvb_net_ule()
752 priv->ts_count++; in dvb_net_ule()
753 if (priv->ule_skb == NULL) { in dvb_net_ule()
754 priv->need_pusi = 1; in dvb_net_ule()
755 priv->ule_sndu_type_1 = 0; in dvb_net_ule()
756 priv->ule_sndu_len = 0; in dvb_net_ule()
766 struct net_device *dev = feed->priv; in dvb_net_ts_callback()
876 struct net_device *dev = filter->priv;
901 struct dvb_net_priv *priv = netdev_priv(dev); local
905 ret = priv->secfeed->allocate_filter(priv->secfeed, secfilter);
911 (*secfilter)->priv=(void *) dev;
941 struct dvb_net_priv *priv = netdev_priv(dev); local
942 struct dmx_demux *demux = priv->demux;
945 netdev_dbg(dev, "rx_mode %i\n", priv->rx_mode);
946 mutex_lock(&priv->mutex);
947 if (priv->tsfeed || priv->secfeed || priv->secfilter || priv->multi_secfilter[0])
950 priv->secfeed=NULL;
951 priv->secfilter=NULL;
952 priv->tsfeed = NULL;
954 if (priv->feedtype == DVB_NET_FEEDTYPE_MPE) {
956 ret=demux->allocate_section_feed(demux, &priv->secfeed,
963 ret = priv->secfeed->set(priv->secfeed, priv->pid, 32768, 1);
967 priv->demux->release_section_feed(priv->demux, priv->secfeed);
968 priv->secfeed=NULL;
972 if (priv->rx_mode != RX_MODE_PROMISC) {
974 dvb_net_filter_sec_set(dev, &priv->secfilter, mac, mask_normal);
977 switch (priv->rx_mode) {
979 for (i = 0; i < priv->multi_num; i++) {
981 dvb_net_filter_sec_set(dev, &priv->multi_secfilter[i],
982 priv->multi_macs[i], mask_normal);
986 priv->multi_num=1;
988 dvb_net_filter_sec_set(dev, &priv->multi_secfilter[0],
992 priv->multi_num=0;
994 dvb_net_filter_sec_set(dev, &priv->secfilter, mac, mask_promisc);
999 priv->secfeed->start_filtering(priv->secfeed);
1000 } else if (priv->feedtype == DVB_NET_FEEDTYPE_ULE) {
1005 ret = demux->allocate_ts_feed(demux, &priv->tsfeed, dvb_net_ts_callback);
1012 priv->tsfeed->priv = (void *)dev;
1013 ret = priv->tsfeed->set(priv->tsfeed,
1014 priv->pid, /* pid */
1023 priv->demux->release_ts_feed(priv->demux, priv->tsfeed);
1024 priv->tsfeed = NULL;
1029 priv->tsfeed->start_filtering(priv->tsfeed);
1034 mutex_unlock(&priv->mutex);
1040 struct dvb_net_priv *priv = netdev_priv(dev); local
1043 mutex_lock(&priv->mutex);
1044 if (priv->feedtype == DVB_NET_FEEDTYPE_MPE) {
1045 if (priv->secfeed) {
1046 if (priv->secfeed->is_filtering) {
1048 priv->secfeed->stop_filtering(priv->secfeed);
1051 if (priv->secfilter) {
1053 priv->secfeed->release_filter(priv->secfeed,
1054 priv->secfilter);
1055 priv->secfilter=NULL;
1058 for (i=0; i<priv->multi_num; i++) {
1059 if (priv->multi_secfilter[i]) {
1062 priv->secfeed->release_filter(priv->secfeed,
1063 priv->multi_secfilter[i]);
1064 priv->multi_secfilter[i] = NULL;
1068 priv->demux->release_section_feed(priv->demux, priv->secfeed);
1069 priv->secfeed = NULL;
1072 } else if (priv->feedtype == DVB_NET_FEEDTYPE_ULE) {
1073 if (priv->tsfeed) {
1074 if (priv->tsfeed->is_filtering) {
1076 priv->tsfeed->stop_filtering(priv->tsfeed);
1078 priv->demux->release_ts_feed(priv->demux, priv->tsfeed);
1079 priv->tsfeed = NULL;
1085 mutex_unlock(&priv->mutex);
1092 struct dvb_net_priv *priv = netdev_priv(dev); local
1094 if (priv->multi_num == DVB_NET_MULTICAST_MAX)
1097 memcpy(priv->multi_macs[priv->multi_num], addr, ETH_ALEN);
1099 priv->multi_num++;
1106 struct dvb_net_priv *priv = local
1108 struct net_device *dev = priv->net;
1111 priv->rx_mode = RX_MODE_UNI;
1116 priv->rx_mode = RX_MODE_PROMISC;
1119 priv->rx_mode = RX_MODE_ALL_MULTI;
1126 priv->rx_mode = RX_MODE_MULTI;
1127 priv->multi_num = 0;
1140 struct dvb_net_priv *priv = netdev_priv(dev); local
1141 schedule_work(&priv->set_multicast_list_wq);
1147 struct dvb_net_priv *priv = local
1149 struct net_device *dev = priv->net;
1160 struct dvb_net_priv *priv = netdev_priv(dev); local
1166 schedule_work(&priv->restart_net_feed_wq);
1174 struct dvb_net_priv *priv = netdev_priv(dev); local
1176 priv->in_use++;
1184 struct dvb_net_priv *priv = netdev_priv(dev); local
1186 priv->in_use--;
1235 struct dvb_net_priv *priv; local
1262 priv = netdev_priv(net);
1263 priv->net = net;
1264 priv->demux = dvbnet->demux;
1265 priv->pid = pid;
1266 priv->rx_mode = RX_MODE_UNI;
1267 priv->need_pusi = 1;
1268 priv->tscc = 0;
1269 priv->feedtype = feedtype;
1270 reset_ule(priv);
1272 INIT_WORK(&priv->set_multicast_list_wq, wq_set_multicast_list);
1273 INIT_WORK(&priv->restart_net_feed_wq, wq_restart_net_feed);
1274 mutex_init(&priv->mutex);
1291 struct dvb_net_priv *priv; local
1295 priv = netdev_priv(net);
1296 if (priv->in_use)
1300 flush_work(&priv->set_multicast_list_wq);
1301 flush_work(&priv->restart_net_feed_wq);
1315 struct dvb_net *dvbnet = dvbdev->priv;
1446 struct dvb_net *dvbnet = dvbdev->priv;
1465 .priv = NULL,