This may seems early to talk about that, but some ideas come to me this
morning in the bus and I'd rather write them down when there are clear.
Many people complain about the fact that drakconnect is mostly buggy and
not convenient ( config lose, difficulties to set some settings, config
mix up, bad profiles management, ... ). I think this is due to the fact
how drakconnect represent himself the network and internet connection.

So here are my thoughts :
We should separate system settings and device specific settings.

System settings are : hostname

For device specific settings, we should act like this :
We should follow the Object Oriented approach. The base is the NetDevice
and this interface have some attributes.

NetDevicee : IP netmask gw type

>From interface you can derived ( this exist in English ? ... ) from the
type if you have an pci/usb/pcmcia/serial/parallel with some attributes
:

NetDevice->type : IRQ BUSID MAC Port module interface[ethx,pppx,...] ...

After the type, you should say the kind of the interface ( sorry for my
English, I forgot my dictionary ), i.e if modem/network and if it handle
internet :

NetDevice->type->kind : modem network internet enable
protocol[pppoe,pppoa, ...]

So the configuration could be done like this :

1�/ Drakconnect will try to detect your NetDevice, what do you want to
probe ?
        [] PCI
        [] USB
        [] PCMCIA
        [] Serial
        [] Parallel
        [] All ( Autodetected )

2�/ drakconnect find 2 PCI NetDevices and 2 USB NetDevice. Which one do
you want to configure ?
        [] Netgear FA311 (PCI)
        [] Intel Ether Pro 10/100 (PCI)
        [] Sagem (USB )
        [] Netgear FA101 (USB)


Note : I expect that drakconnect could detect USB device connected and
take VendorName and even more info in order to help the
designation/naming of the device.

*********************** PCI Ethernet case ******************************

Suppose I select Netgear FA311. . It's name is NetDevice1

3�/ Drakconnect try to detect settings of the card and the associated
driver, are you agree ?
        IRQ : 10
        BUSID : 0
        MAC address : 00:51:FE:4C:C1:CF
        port : PCI
        module : tulip
        interface : eth0

|Previous|      |Yes|           |No|

Note : If i hit no, I can then change module and interface ( maybe I
want it to be associate with eth1 and not eth0, maybe the driver is not
correct ).

4�/ What's the kind of this interface ( the use of the interface ) ?
        [] LAN connection
        [] Ethernet Modem Connection

I select LAN connection, I should have this :

5a�/ Please fill settings of this NetDevice :

        [] obtain IP by DHCP
                IP :
                Netmask : 255.255.255.0
                Gateway :
        [] Start at boot
        [] Use for Internet connection

Note : if I select "Use for Internet connection", then drakconnect
should set system default gateway to the Netdevice gw, if not,
drakconnect should just set a gw form it.

If i select Ethernet Modem Connection, I should have this :

5b�/ Please fill settings of this NetDevice :
        Protocol |PPPOE|PPPOA|
        [] Need auth
                Identifiant :
                Password :
        [] obtain IP by DHCP
                IP :
                Netmask : 255.255.255.0
                Gateway :
        [] Start at boot
        [] Use for Internet connection  

*********************** USB Ethernet case ******************************

Suppose I select Netgear FA101. It's name is NetDevice2

3�/ Drakconnect try to detect settings of the card and the associated
driver, are you agree ?
        IRQ : 6
        BUSID : 0
        MAC address : 01:51:FE:4C:C1:DF ( don't know if we can have it ... )
        port : USB
        module : usbnet ( don't if this module exist )
        interface : eth1

|Previous|      |Yes|           |No|

Note : If i hit no, I can then change module and interface ( maybe I
want it to be associate with eth1 and not eth0, maybe the driver is not
correct ).

4�/ What's the kind of this interface ( the use of the interface ) ?
        [] LAN connection
        [] Ethernet Modem Connection

I select LAN connection, I should have this :

5a�/ Please fill settings of this NetDevice :

        [] obtain IP by DHCP
                IP :
                Netmask : 255.255.255.0
                Gateway :
                Primary DNS  :
                Secondary DNS :
        [] Start at boot
        [] Use for Internet connection

Note : if I select "Use for Internet connection", then drakconnect
should set system default gateway to the Netdevice gw, if not,
drakconnect should just set a gw form it.

If i select Ethernet Modem Connection, I should have this :

5b�/ Please fill settings of this NetDevice :
        Protocol |PPPOE|PPPOA|
        [] Need auth
                Identifiant :
                Password :
        [] obtain settings by DHCP
                IP :
                Netmask : 255.255.255.0
                Gateway :
                Primary DNS  :
                Secondary DNS :
        [] Start at boot
        [] Use for Internet connection

At this point I can configure 2 devices than I can clearly distinguish
thanks to severals informations like name,irq,busid,port and driver.
Suppose that Netdevice1 is connected to a NAT gateway for internet and
NetDevice2 is connected to an ethernet modem for an ADSL connection.
Just by clicking on "Use for Internet connection" I can switch from one
connection to another one. Indeed, when I click on "Use form Internet
Connection", drakconnect set the default gateway as the Netdevice
gateway and set the DNS in resolv.conf as the DNS of the NetDevice ( and
for pppoe connection set the right interface in pppoe.conf ). Of course,
previous gateway/DNS where removed. For gateway it's special as whereas
we've remove it as the system default gateway, the gateway should still
be set.

********************* PCI Ethernet case 2 ****************************

Ok I'm rich I have 3 different internet connection and one true LAN
connection. Let's begin with my true LAN connection.

Suppose I select Intel Ether Pro 10/100 . . It's name is NetDevice3

3�/ Drakconnect try to detect settings of the card and the associated
driver, are you agree ?
        IRQ : 11
        BUSID : 0
        MAC address : 00:51:FE:5C:C1:CD
        port : PCI
        module : eepro100
        interface : eth3

|Previous|      |Yes|           |No|

Note : If i hit no, I can then change module and interface ( maybe I
want it to be associate with eth1 and not eth0, maybe the driver is not
correct ).

4�/ What's the kind of this interface ( the use of the interface ) ?
        [] LAN connection
        [] Ethernet Modem Connection

I select LAN connection, I should have this :

5�/ Please fill settings of this NetDevice :

        [] obtain IP by DHCP
                IP :
                Netmask : 255.255.255.0
                Gateway :
        [] Start at boot
        [] Use for Internet connection


************************* USB Modem case ****************************

show info, select protocol + settings ( username, password, ... ). For
driver if you need the firmware in driver say "need to select firmware"
and give the ability for the user to select firmware unless drakconnect
manage to take the firmware himself ( windows partition scan + firmware
file copy ) so them show the path to the firmware file ( for example
/usr/share/sagem800/firmware/myfirmware.bin )

******************************** Note ********************************

- Changing internet connection is just a matter of saying "Use this
NetDevice for my internet connection" : Drakconnect sets the right
config files ( pppoe.conf, resolv.conf ) and the right settings (
default route ).
- switching internet connection is just a matter of selecting the right
NetDevice. If a NetDevice is unplugged and was for internet connection,
the system just boot and the user will select the NetDevice to use ( you
should have also the possibility to specify the NetDevice for internet
at boot )

- NetDevice are persistent, i.e if you change the pci port ( irq + busid
may change ), NetDevice can still be identified by MAC
address/driver/vendorname/.... IRQ and BUSID are changed, but the
settings for the net device remain the same. If you change your USB
modem port, thanks to others infos ( vendorname ... ) drakconnect will
keep the right settings for it.

- ethx, pppx should not change and should stay with the right NetDevice
across boot, PCI port/USB port change. So for apps where you have to
directly specify ethx/pppx It will not be a problem. For this
drakconnect may have to correctly update modules.conf or be able to
force interface. Maybe we will be facing a kernel limitation

- The user need to explicitly delete a NetDevice to free the associated
interface. So I can unplug my USB modem, and 2 months later plug it and
see it take the same settings as I don't delete it.

I think I forgot many things, some things could be incorrect or
impossible ( kernel/software limitation but this could be changed ), but
this is how I see the perfect config tool. In this situation,
drakconnect will completely abstract the network layer. If the user want
to do things himself, it's just a matter of disabling drakconnect ( a
special service maybe will be necessary in order to test/modify/... the
settings of NetDevice )



Reply via email to