A method and apparatus for efficiently performing a longest match search
are provided. According to one aspect of the present invention, an entry
in a forwarding database, a routing table, or the like is located using an
improved longest match search. A mask is applied to an address, such as a
destination Internet Protocol (IP) address, to determine a masked address
that is to be used for purposes of locating a matching entry in the
forwarding database. The forwarding database is searched for an entry that
matches the masked address. Subsequent masks are produced by performing an
address-sensitive decimation of the former mask. For example, the former
mask may be shortened based upon the location of the least significant bit
containing a one in the masked address. According to another aspect of the
present invention, data forwarding employs the improved longest match
search. Data is received at a port. An address is extracted from the data.
A forwarding database is searched for a longest match for the address by
comparing a portion of the address indicated by a mask to entries in the
forwarding database and using progressively shorter masks, determined
based upon the masked address, for each subsequent search until a matching
entry is located. If a matching entry is found, the data is forwarded to a
destination associated with the matching entry.
Une méthode et un appareil pour exécuter efficacement une plus longue recherche d'allumette sont fournis. Selon un aspect de la présente invention, une entrée dans une base de données de expédition, une table de cheminement, ou analogues est située en utilisant une plus longue recherche améliorée d'allumette. Un masque est appliqué à une adresse, telle qu'une adresse du Internet Protocol de destination (IP), pour déterminer une adresse masquée qui doit être employée aux fins de localiser une entrée assortie dans la base de données de expédition. La base de données de expédition est recherchée une entrée qui assortit l'adresse masquée. Des masques suivants sont produits en exécutant une décimation adresser-sensible de l'ancien masque. Par exemple, l'ancien masque peut se raccourcir a basé sur l'endroit du moindre peu significatif contenant celui dans l'adresse masquée. Selon un autre aspect de la présente invention, le expédition de données utilise la plus longue recherche améliorée d'allumette. Des données sont reçues à un port. Une adresse est extraite à partir des données. Une base de données de expédition est recherchée une plus longue allumette pour l'adresse en comparant une partie de l'adresse indiquée par un masque aux entrées dans la base de données de expédition et en employant des masques progressivement plus courts, déterminé basé sur l'adresse masquée, pour chaque recherche suivante jusqu'à ce qu'une entrée assortie soit localisée. Si une entrée assortie est trouvée, les données sont expédiées à une destination liée à l'entrée assortie.