On 02/ 5/10 11:35 AM, [email protected] wrote:
One more thought -- I realized that even separating out "functionality" for driver names will fly in the face of current emerging trends towards "convergence". For example, new hardware from emulex, qlogic, and others support HBA functionality *and* NIC functionality on the same part. ConnectX parts from Mellanox can be used as a 10GbE, a fibre-channel HBA, or an Infiniband HCA. Where do you put these? driver/storage/... driver/network/.... driver/infiniband/... ?!?

Yes, there was one such package at the moment.  I believe providing
some sort of functional boundary is still useful in the namespace.  As
more such drivers are integrated, we can certainly carve out additional
namespace, or rely on some sort of ordering (namely if a driver
delivers both HBA and NIC functionality, put it under storage.)

I'm thinking fibre-channel breaks this as well. I realized just a few minutes ago that there is an IP networking stack that can be used with fibre-channel. The picture is already some what gray, and its just going become more so as we move forward.


Noting that the Solaris kernel *requires* that all kernel drivers have a unique name (for the name_to_major mapping), maybe the simplest naming format is driver/<driver> -- for example driver/hme or driver/hermon.

Yes but it can be useful to use the namespace to list, for example, all
of the audio driver packages.  I believe keeping that subcomponent in
the name is extremely useful.

I originally thought so too, I'm just not sure it really helps, and I see potential issues like those I've already outlined. My opinion about dropping the category isn't really strong, but I'm also a bit unconvinced that we're really buying anything by having it.


I've included some changes to the proposed driver packages below.  It's
important to note we know this isn't going to be perfect and that it's
certain we're going to need to rename many of these again at some point
(particularly as we refactor the packages themselves.)  But now that we
have a proper rename facility in the packaging system, this should be
easier in the future.

Sure. I hpoe you don't mind if I give you some suggestions you can implement immediately, though.


SUNWaudd        driver/audio

This is better. After this integrates I'll split out the other individual drivers into smaller packages.

SUNWadixp        driver/audio/audioixp
SUNWaudiocmi        driver/audio/audiocmi
SUNWaudioemu10k        driver/audio/audioemu10k
SUNWaudiols        driver/audio/audiols
SUNWaudiop16x        driver/audio/audiop16x
SUNWaudiosolo        driver/audio/audiosolo
SUNWad810        driver/audio/audio810
SUNWaudiohd        driver/audio/audiohd
SUNWvia823x        driver/audio/audiovia823x
SUNWaudiovia97        driver/audio/audiovia97
SUNWdcaf        driver/crypto/dca
SUNWn2cp        driver/crypto/n2cp
SUNWemlxs        driver/fibre-channel/emlxs
SUNWfcip        driver/fibre-channel/fcip
SUNWfcp            driver/fibre-channel/fcp
SUNWfcsm        driver/fibre-channel/fcsm
SUNWfctl        driver/fibre-channel/fp
SUNWqlc            driver/fibre-channel/qlc
SUNWqlcu        driver/fibre-channel/qlc/qlc-mdb

Hmm... does it really make the most sense for mdb modules to be categorized this way? How about system/mdb/qlc ? Just offering an alternate suggestion for a somewhat less awkward name.

SUNW1394        driver/firewire
SUNWav1394        driver/firewire/av1394
SUNWfwdc        driver/firewire/dcam1394
SUNWsbp2        driver/firewire/sbp2
SUNWscsa1394        driver/firewire/scsa1394
SUNWagp            driver/graphics/agpgart
SUNWastfb        driver/graphics/ast
SUNWatigfx        driver/graphics/atiatom
SUNWdrmr        driver/graphics/drm
NVDAgraphics        driver/graphics/nvidia
SUNWefb            driver/graphics/efb
SUNWkfb            driver/graphics/kfb
SUNWfipe        driver/i86pc/fipe
SUNWdcopy        driver/i86pc/ioat
SUNWpsdcr        driver/i86pc/platform
SUNWib            driver/infiniband
SUNWarbel        driver/infiniband/arbel
SUNWhermon        driver/infiniband/hermon
SUNWipoib        driver/infiniband/ibd
SUNWibdma        driver/infiniband/ibdma
SUNWrds            driver/infiniband/rds
SUNWrpcib        driver/infiniband/rpcib
SUNWibsdp        driver/infiniband/sdp
SUNWibsdpib        driver/infiniband/sdpib
SUNWtavor        driver/infiniband/tavor
SUNWafe            driver/network/afe
SUNWamd8111s        driver/network/amd8111s
SUNWarn            driver/network/arn
SUNWatge        driver/network/atge
SUNWatheros        driver/network/ath
SUNWuath        driver/network/uath
SUNWatu            driver/network/atu
SUNWbfe            driver/network/bfe
SUNWbge            driver/network/bge
BRCMbnx            driver/network/bnx
BRCMbnxe        driver/network/bnxe
SUNWchxge        driver/network/chxge
SUNWpcan        driver/network/pcan
SUNWdmfe        driver/network/dmfe
SUNWintgige        driver/network/e1000g
SUNWigb            driver/network/igb
SUNWipw            driver/network/ipw
SUNWiwh            driver/network/iwh
SUNWiwi            driver/network/iwi
SUNWiwk            driver/network/iwk
SUNWiwp            driver/network/iwp
SUNWixgb        driver/network/ixgb
SUNWixgbe        driver/network/ixgbe
SUNWwpi            driver/network/wpi
SUNWpcwl        driver/network/pcwl
SUNWmxfe        driver/network/mxfe
SUNWmwl            driver/network/mwl
SUNWyge            driver/network/yge
SUNWmyri10ge        driver/network/myri10ge
SUNWxge            driver/network/xge
SUNWntxn        driver/network/ntxn
SUNWnge            driver/network/nge
SUNWos86r        driver/network/platform

Again, "sd" is in here (unless you moved it), and it has *nothing* to do with networking. driver/platform/misc might be better. Ultimately this package needs to go away, and broken into its constituent parts. I'll help with that post integration.

SUNWpacket        driver/network/pseudo/bpf
SUNWllc            driver/network/pseudo/llc2

Interesting. I can't decide whether I like the "pseudo" component or not... I think its fine for now though. (Do drivers like "vnic" also have a similar naming component?)

SUNWralink        driver/network/ral
SUNWrum            driver/network/rum
SUNWrwd            driver/network/rwd
SUNWrwn            driver/network/rwn
SUNWural        driver/network/ural
SUNWrge            driver/network/rge
SUNWrtls        driver/network/rtls
SUNWrtw            driver/network/rtw
SUNWurtw        driver/network/urtw
SUNWsfe            driver/network/sfe
SUNWced            driver/network/ce
SUNWerid        driver/network/eri
SUNWged            driver/network/ge
SUNWhmd            driver/network/hme

I'll break this apart into driver/network/hme and driver/storage/fas later.

SUNWhmdu        driver/network/hme/hme-header

Actually, this doesn't have any hme headers in it! It only has SCSI headers for the "fas" SCSI controller. It either should be changed to driver/storage/fas/header, or (better) just eliminated since nobody really needs these headers on their end systems. (They are only used to compile the "fas" driver itself, and not part of any public interface.)

SUNWhxge        driver/network/hxge
SUNWniumx        driver/network/niumx
SUNWnxge        driver/network/nxge
SUNWqfed        driver/network/qfe
SUNWvr            driver/network/vr
SUNWzyd            driver/network/zyd
SUNWpcmci        driver/pcmcia
SUNWpsdpr        driver/pcmcia/pcata
SUNWpcser        driver/pcmcia/pcser

Hmm.... here we are categorizing driver by the bus they connect to rather than the type of service they support. This is a bit inconsistent. driver/network/pcan is for PCMCIA devices, but it isn't here. I think I'd prefer not to name drivers for the bus they connect to, but rather for the services they provide. So I'd rename these two as driver/storage/pcata and driver/serial/pcser.

SUNWus            driver/sparcv9/us

"sparcv9"? Would "driver/cpu/us" be better? (A single "cpu" category for any other CPU specific drivers that we might want later?)

SUNWarcmsr        driver/storage/arcmsr
SUNWspsv        driver/storage/sv
SUNWbcmsata        driver/storage/bcm_sata
SUNWfcoe        driver/storage/fcoe
SUNWfcoei        driver/storage/fcoei
SUNWfcoet        driver/storage/fcoet
CPQary3            driver/storage/cpqary3
SUNWpsdir        driver/storage/isa

"isa" isn't a storage driver. Its a bus driver for "ISA" bus. (ISA is a system bus, sort of like PCI.) That said looking at the drivers that are in here, I see "ata" and "pci-ide", and not "isa". Probably a better name for this is driver/storage/ata -- the fact that pci-ide is included in with ata is probably something we can overlook given that the two have a close relationship.

SUNWsrpt        driver/storage/srpt
SUNWlsimega        driver/storage/lsimega
SUNWmegasas        driver/storage/mega_sas
SUNWmptsas        driver/storage/mpt_sas
SUNWmrsas        driver/storage/mr_sas
SUNWpmcs        driver/storage/pmcs
SUNWsmpd        driver/storage/smp
SUNWahci        driver/storage/ahci
SUNWmv88sx        driver/storage/marvell88sx
SUNWnvsata        driver/storage/nv_sata
SUNWsi3124        driver/storage/si3124
SUNWaac            driver/storage/aac
SUNWadpu320        driver/storage/adpu320
SUNWamr            driver/storage/amr
SUNWses            driver/storage/ses
SUNWluxd        driver/storage/sf
SUNWluxl        driver/storage/socal
SUNWssad        driver/storage/ssd
SUNWtpm            driver/tpm

If driver/crypto were renamed to driver/security, then this could be driver/security/tpm. It has a "crypto" component to it as well, but it provides services beyond just acting as a KCF crypto provider.


SUNWusb            driver/usb
SUNWuedg        driver/usb/usbser_edge
SUNWukspfw        driver/usb/usbs49_fw
SUNWuksp        driver/usb/usbsksp
SUNWuprl        driver/usb/usbsprl
SUNWuacm        driver/usb/usbsacm
SUNWusbs        driver/usb/usbser
SUNWugen        driver/usb/ugen
SUNWuftdi        driver/usb/usbftdi
SUNWusbvc        driver/usb/usbvc

The same kind of comments I made about USB probably apply here. I'd rename these as:

    driver/usb/uedg  -> driver/serial/usbser_edge
    driver/usb/usbsksp -> driver/serial/usbsksp
driver/usb/usbs49_fw -> driver/serial/usbs49_fw (actually, this is firmware for usbsksp, I'd probably recommend merging the packages!)
    driver/usb/usbsprl -> driver/serial/usbsprl
    driver/usb/usbftdi -> driver/serial/usbftdi
    driver/usb/usbser -> driver/serial/usbser
    driver/usb/usbsacm -> driver/serial/usbsacm
driver/usb/usbvc -> driver/video/usbvc (this is a video capture device, not sure about the category)

You'd leave driver/usb/ugen unmodified, since it really is just a general purpose USB driver. It might be a good idea to merge it into driver/usb since it really represents core USB functionality. (Specifically kernel support for libusb.)


SUNWxwdv        driver/x11/winlock
SUNWxsvc        driver/x11/xsvc
SUNWxvmpv        driver/xvm/pv

Hope this helps a bit.

    - Garrett

_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to