Υποστήριξη Usb Adsl στο Modems Network Manager

Όνομα: Παντελής Κουκούσουλας moc.liamg|ssotkp#moc.liamg|ssotkp
Project: NetworkManager, http://www.gnome.org/projects/NetworkManager/
Γλώσσα: C/GObject, XML
Στόχος: Αυτόματη υποστήριξη USB ADSL modems (τουλάχιστον για το sagem 800 σε πρώτη φάση)
Άτομα: 3-4
Βαθμός Δυσκολίας: Μέτριος

Υποστήριξη USB ADSL modems

Το ADSL αποτελεί έναν ιδιαίτερα (ίσως τον πιο) δημοφιλή τρόπο σύνδεσης στο διαδίκτυο. Στην πράξη,
για την υλοποίηση του ADSL (τουλάχιστον σε ελλάδα/ΟΤΕ) χρησιμοποιείται το πρωτόκολλο PPP πάνω από
δίκτυο ATM (PPPoATM). Εφόσον κάποιος χρησιμοποιεί ένα modem ή router με ethernet interface τότε οι
λεπτομέρειες του PPPoATM (δημιουργία σύνδεσης, ταυτοποίηση κλπ) δεν τον απασχολούν αφού επιλύονται
από το firmware του modem ή router.

Σε μερικές περιπτώσεις όμως, οι ISP προσφέρουν δωρεάν μαζί με τη σύνδεση ένα USB ADSL modem το
οποίο παρέχει απευθείας πρόσβαση στο PPPoATM δίκτυο αντί να το "κρύβει" πίσω από ένα ethernet
gateway όπως στην παραπάνω περίπτωση. Τα USB ADSL modems προσφέρουν μάλιστα και ορισμένα
πλεονεκτήματα:

  • Δε χρειάζονται ρυθμίσεις για port forwarding κλπ.
  • (Ορισμένα) τροφοδοτούνται με ρεύμα από τον υπολογιστή μέσω USB (αυτονομία σε διακοπές ρεύματος)
  • Περισσότερες δυνατότητες αποσφαλμάτωσης προβλημάτων σύνδεσης ειδικά όταν αυτά οφείλονται στον ISP.

Δυστυχώς, παρά το γεγονός ότι η υποστήριξη σε επίπεδο πυρήνα / firmware είναι πλήρης για πρακτικά όλα
τα μοντέλα USB ADSL modems που χρησιμοποιούνται στην αγορά (π.χ., Sagem 800 που έδινε κάποια στιγμή
ο OTE), η υποστήριξη σε επίπεδο desktop / συστήματος είναι ιδιαίτερα ελλιπής με αποτέλεσμα ένας χρήστης
να πρέπει να ακολουθήσει μακροσκελή HOWTO για να μπορέσει να συνδεθεί με κάποιο από αυτά τα modem
ή να χρησιμοποιεί hacky ad-hoc λύσεις.

Είναι σημαντικό να παρατηρήσουμε ότι η θλιβερή αυτή κατάσταση δεν οφείλεται σε κάποιο σοβαρό τεχνικό
ή σχεδιαστικό περιορισμό του freedesktop stack αλλά αποκλειστικά και μόνο σε έλλειψη χρόνου και ενδιαφέροντος
από τους υπάρχοντες developers οι οποίοι απλά δεν τυχαίνει να έχουν ATM δίκτυα οπότε δεν έχουν έρθει σε
επαφή με το πρόβλημα.

Στην ιδανική περίπτωση, η διαδικασία από τη σύνδεση ενός USB ADSL modem ως τη σύνδεση στο internet
θα έπρεπε να δουλεύει ως εξής:

  1. Σύνδεση της συσκευής στον υπολογιστή
  2. Ο υπολογιστής αναγνωρίζει ότι πρόκειται περί USB ADSL modem και φορτώνει τους drivers και το firmware
  3. Εφόσον η συσκευή συνδέθηκε για πρώτη φορά και δεν υπάρχουν έτοιμα PPPoATM accounts, το σύστημα προτείνει στο χρήστη τη δημιουργία νέας σύνδεσης
  4. Ο χρήστης επιλέγει χώρα/ISP από μία λίστα, το σύστημα θέτει αυτόματα τα ανάλογα VCI.VPI
  5. Ο χρήστης εισάγει username/password (προαιρετικά). Τα credentials αυτά θα αποθηκευτούν στο ανάλογο backend, π.χ., kwallet ή gnome-keyring
  6. (προαιρετικά) Ο χρήστης έχει τη δυνατότητα να ζητήσει εμφάνιση εικονιδίου σύνδεσης στην επιφάνεια εργασίας του

Από εκεί και πέρα, η σύνδεση μπορεί να πραγματοποιείται με ένα απλό κλικ στο εικονίδιο της επιφάνειας εργασίας
ή από το tray icon του NetworkManager.

Τρόπος υλοποίησης

Καταρχήν πρέπει να διδάξουμε στο HAL να αναγνωρίζει ATM network devices. Αυτό είναι χρήσιμο για οποιοδήποτε
network management program χρησιμοποιεί το HAL. (Μπορεί να χρησιμοποιηθεί το udev-extras αντί για τον ή
επιπλέον του HAL).

Δεύτερον χρειαζόμαστε μία μικρή "βάση δεδομένων" (μπορεί να υλοποιηθεί ως ένα μοναδικό αρχείο XML) με τους
ISP και τις VCI.VPI παραμέτρους τους, καθώς και τον τρόπο ταυτοποίησης που χρησιμοποιούν (π.χ., PAP ή CHAP).
Η βάση θα είναι μάλλον στα πρότυπα αυτής: http://svn.gnome.org/viewvc/mobile-broadband-provider-info/trunk/

Τρίτον χρειαζόμαστε τον κώδικα για το wizzard, δηλαδή 2-3 οθόνες. Τυχόν εμπειρία σε GUI design / usability
θα είναι χρήσιμη εδώ (αν και στη χειρότερη περίπτωση μπορούμε να φτιάξουμε κάτι που απλά να δουλεύει
και να αφήσουμε κάποιον άλλο να βελτιώσει το usability).

Δηλώσεις Συμμετοχής

Ενδιαφερόμενος email Ημέρες Τομέας Ενασχόλησης
Χουτουρίδης Χρήστος moc.liamg|bup.hc.2ooh#moc.liamg|bup.hc.2ooh Όλες -
Χρυσοχέρης Ηλίας rg.tenhtrof.ahc|rhcsaile#rg.tenhtrof.ahc|rhcsaile Όλες -
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License