Re: Send and receive packets with a kernel module via ppp0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
On 5/7/07, Doris Jung <Doris.Jung@xxxxxxxx> wrote:
Hi,

I have the following problem:

I'm working on a CarPc with Debian 2.6.15.

I have to send and receive packets ( i.e. ping) from an own written
kernel module (I call it umts with the intercae umts0) to ppp0, which
has a connection to an umts modem via the nozomi driver.  With each new
connection with the provider the ppp0 receives a new loacal address i.e.
90.187.103.249.

I configured umts 0 with "ifconfig umts0 10.0.0.10 netmask 255.255.255.0 "
and set it as default route with "route add default gw 10.0.0.10"

For sending the packets from umts0 to ppp0 I use the following code:

 struct net_device *dev_ppp0;
 dev_ppp0 = dev_get_by_name("ppp0");
 skb->dev = dev_ppp0;
 skb_pull(skb, 14);
*((skb->data)+12) = 90;
*((skb->data)+13) = 187;
*((skb->data)+14) = 103;
*((skb->data)+15) = 249;
skb->nh.iph->check = 0;
skb->nh.iph->check = ip_fast_csum((unsigned char *)skb->nh.iph,
skb->nh.iph->ihl);
skb->pkt_type = PACKET_OUTGOING;
dev_queue_xmit(skb);

I changed the IP source address from 10.0.0.10 to 90.187.103.249 so that
ppp0 can receive the reply for the ping.

I switch the ip forwarding on:
echo 1 >> /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
1

With the code above I can receive the reply for the ping at ppp0 (seen
with "tcpdump -i ppp0 -x -e -vvv") but I don't know what I have to do to
receive the ping reply packet with my umts module.

I read
http://kernelnewbies.org/Documents/LinuxIPNetworking#head-f204e85ca7561a0a903c6a94273b9ee7a27b4994.
and I have learned the following:
When a packet is received  the IP layer checks whether the packet is
for the own host (I think that's my case) or for another host. If it's
for the own host the packet is sent to the transport layer. But in my
case the packet shouldn't be sent to the transport layer but to my
kernel module umts.

I will need more input to answer this query. You mean you connected
to internet by dialing umts modem and as its umts service each time
you dial modem you are going to receive a new IP right? Now you
created umts0 new network  interface and trying to send packets from
umts0 to ppp0 to outside network?

  You may need to use netfilter hooks to check if a packet received
at ppp0 need to be forwarded to umts0 then code it to change
destination IP from 90.187.103.249 to 10.0.0.10
   I assume I understood what you want if not reply with more explanation.

Regards,
Parag.

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux