Hello,

I am sending some of my previous mails so that you have some context.

I have a non-IP stack. So, I have my own packet type. I want to do  some
huge data transfers using this.

          ----------
         | MY Layer |
          ----------
         | Ethernet |
          ----------
 
When I transfer upto 25 Meg, everything is fine. If I transfer 100Meg
after a reboot, it works fine. If I try doing the same again, the sender
itself does not send the whole data. It sends about 50%. I am sending as
fast as I can. I also tried sending slowly. In this case, it sends out the
whole stuff the first time after reboot. The second time it sends 90% of
it.

I do a dev_queue_xmit() filling ethernet header myself. So, I can count
how many packets/bytes I have sent to the ethernet driver and that shows,
100Meg. But, the packets are not being sent on to the wire. I can also see
this using tcpdump.

Could anyone tell me what might be happening? 

I've had problems earlier with tulip driver. I am still using tulip
driver (0.91). Kernel version - 2.2.5.

Thanks for your time and hope to get a reply.
Pramodh


On Mon, 1 May 2000, pramodh mallipatna wrote:

> Hello,
> 
> Slightly long mail. Appreciate your time and patience to read it and
> answer.
> 
> I had posted an earlier mail regarding a problem of not getting all 
> the packets at the receiver (The mail is below, if you want to read it
> again). Part of the problem was the tulip driver. The other part of the
> problem which I found was that:
> 
> If I send 10Meg of data (a fast burst), I get everything at the other end.
> But, if I send about 25Meg of data, I get only 13-14 Meg. I was under the
> assumption that it was because I was sending it too fast. But, when I ran
> tcpdump, I found that after 13-14 Meg of data, my packets were getting
> tagged as IP packets (even though they are not) at the sender and so, at
> the receiver, net_bh was not giving the packets to me. 
> 
> I figured this was after an ARP timeout and was trying to refresh the
> cache. Could anyone tell me why after the refresh it is tagging my packets
> as IP packets. I have the code how I send my packets (similar to
> ip_finish_output()) below. I tried tracing where the function pointers are
> getting assigned to after 13-14 Megs but could not find it.
> 
>               if (hh) {
>                     read_lock_irq(&hh->hh_lock);
>                     memcpy(skb->data - 16, hh->hh_data, 16);
>                     read_unlock_irq(&hh->hh_lock);
>                     skb_push(skb, dev->hard_header_len);
>                     hh->hh_output(skb);
>                  } else if (dst->neighbour)
>                     dst->neighbour->output(skb);
> 
> Thanks,
> Pramodh
> 
> On Sun, 23 Apr 2000, pramodh mallipatna wrote:
> 
> > Hello,
> > 
> > Slightly long mail. Appreciate your time and patience to read it and 
> > answer.
> > 
> > I have a protocol layer running over ethernet. I have my own packet type
> > (protocol type) which is 0x0A0A (like ETH_P_IP). So, the net_bh() hands
> > the packets (my packets) over to my layer. I have my own header defined,
> > which has a sequence no, among other fields. I transfer some dummy traffic
> > over my layer which are 1035 (packet size, inclusive of my header).
> > 
> > When I just transmit 3-4 packets, I get it at the receiver. But, if I
> > transfer about a Meg, the packets are dropped. Sometimes, I get just 4
> > packets out of 1 Meg and sometimes I get 500-600 packets. 
> > 
> > What I observe is, the ethernet driver (on the receiver side) itself does
> > not get my packets. According to the ethernet driver on the sending side,
> > it shows it has sent 1 Meg of data.
> > 
> > If I send the same amount of data using udp sockets, I get all my data,
> > which probably shows that the ethernet card and driver seems to be fine.
> > 
> > I also tried sending the data at a very slow rate just to ensure the
> > ethernet card/driver is not dropping the packets because of high speed
> > transfer, and even in this case, the same behaviour is observed (not
> > getting all the packets at the receiver).
> > 
> > Could someone tell me what might be happening?
> > I am using 2.2.5 kernel. Is it something to do with this?
> > 
> > Thanks,
> > Pramodh
> > 
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-net" in
> > the body of a message to [EMAIL PROTECTED]
> > 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-net" in
> the body of a message to [EMAIL PROTECTED]
> 

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to