Hi!

First of all, I'm using a the latest Version of a FUSD (Framework for linux userspace device) Module for my device-driver. Linux Kernel is 2.6.20.

I have the following situation:
I have a PPP connection over a serial (RFCOMM-)device. That works fine! But now i want to put a DeviceDriver-Module in front of the RFCOMM-Device, so that PPP uses my DeviceDriver-Module. The Module just forwards the data from PPP to the RFCOMM device - no data is changed (later the module shall filter some debug-information added to the ip-data coming from the RFCOMM-Device -> and hand the filtered data over to ppp, so that the connection works as always).
The Problem now is, that PPP needs a serial device that it can configure. I thought when i forward the ioctls to the RFCOMM device everything shall work? But it doesn't.

Computer 1 (PPP <-> DeviceDriver <-> RFCOMM) <-> processing on a uC <-> (RFCOMM <-> DeviceDriver <--> PPP) Computer 2

The DeviceDriver shall emulate the RFComm-Device to filter the traffic going through.

This is my ioctl-function...
Code:
int do_ioctl(struct fusd_file_info *file, int cmd, void *arg)
{
    int iRetVal = 0;
      iRetVal = ioctl(iCom_Device, cmd, arg);
      return iRetVal; 
}

The iCom_Device is my RFCOMM-Device, opened as follows:
Code:
 iCom_Device = open(argv[1],O_NONBLOCK | O_RDWR,0);
When I try to establish a ppp-connection, i get the error, that some operations for configuring the serial port fails:
Code:
Aug  7 10:50:56 xxx pppd[6032]: tcgetattr: Operation not permitted (line 933)

The DeviceDriver is just opened and closed, or the ioctl is used (no read or write).

Does anybody have an idea?

thanks a lot!!

regards,
dd