[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference 7.286::fddi

Title:FDDI - The Next Generation
Moderator:NETCAD::STEFANI
Created:Thu Apr 27 1989
Last Modified:Thu Jun 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:2259
Total number of notes:8590

1912.0. "DLI filtering implementation?" by PRIME3::THOMAS () Tue Dec 19 1995 21:05

    On a 2100 under Digital Unix, I used the DLI to perform multicast
    address filtering.  The network interface card (NIC) is a PCI -
    FDDI DEFPA.
    
    The filtering worked fine up through 250 filters.  Attempting to
    specify 251 filters returned a EBADF 9 - Bad file number.
    
    Questions:
    The NIC can only support 62 user specified (2 others are reserved)
    multicast address filters.
    1. How does the DLI implement the filtering?
       Does DLI use the NIC for the first 62 filter values and then perform
       the remaining filtering within the DLI?
    
    2. What are the performance issues accociated with the number of filters?
    
    I would like to do the filtering in the most efficient way possible -
    am I a correct in assuming the NIC filtering would be more efficient
    than up at the DLI level?
    
    Thanks,
    Mike Thomas
    
T.RTitleUserPersonal
Name
DateLines
1912.1NETRIX::thomasThe Code WarriorWed Dec 20 1995 11:0814
It's a two pass filter, the first is by the NIC and second by DLI.
You want the NIC to filter so the O/S never sees the packets in the
first place.  Then DLI needs to filter in case of overlapping 
multicasts being enabled.

For each new multicast enabled, DLI calls the driver asking it to
enable it.  If the driver returns success, DLI remembers and doesn't
ask the driver if another DLI user enables it.  If the driver returns
failure, DLI returns that to the user.  In brief, DLI only supports
the number of multicasts that the device supports.  Note that the O/S
enables a few other multicasts, you will never be able to use them all.

BTW, DLI never returns EBADF so that must be a bug somewhere in your
program.