US7826452B1ExpiredUtility

Efficient host-controller address learning in ethernet switches

70
Assignee: MARVELL INT LTDPriority: Mar 24, 2003Filed: Jan 21, 2004Granted: Nov 2, 2010
Est. expiryMar 24, 2023(expired)· nominal 20-yr term from priority
H04L 49/35H04L 45/74
70
PatentIndex Score
10
Cited by
19
References
84
Claims

Abstract

A method, apparatus, and computer-readable media for a switch comprising a plurality of network ports and a central processing unit (CPU) interface comprises receiving, on one of the network ports, a packet comprising a source media access control (MAC) address; sending, to the CPU interface, a request to approve an association between the one of the network ports and the source MAC address when no request to approve the association between the one of the network ports and the source MAC address has been sent to the CPU interface; and sending, to the CPU interface, the request to approve the association between the one of the network ports and the source MAC address when an association between the source MAC address and a different one of the network ports has been approved.

Claims

exact text as granted — not AI-modified
1. An apparatus comprising:
 a plurality of network ports; 
 a central processing unit (CPU) interface; and 
 a controller to
 send, to the CPU interface, a request to approve an association between one of the plurality of network ports and a source media access control (MAC) address of a packet received on the one of the plurality of network ports when no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface, and 
 send, to the CPU interface, the request when an approval for an association between the source MAC address and a different one of the plurality of network ports has been received from the CPU interface. 
 
 
     
     
       2. The apparatus of  claim 1 , wherein the controller further determines whether an association exists between one of the plurality of network ports and the source MAC address. 
     
     
       3. The apparatus of  claim 2 , further comprising a memory to store a forwarding database,
 wherein the controller searches a forwarding database for the source MAC address when determining whether an association exists between one of the plurality of network ports and the source MAC address. 
 
     
     
       4. The apparatus of  claim 1 , wherein the controller further determines whether no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface. 
     
     
       5. The apparatus of  claim 4 , wherein the controller further determines whether an unapproved association exists between the one of the plurality of network ports and the source MAC address when determining whether no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface. 
     
     
       6. The apparatus of  claim 5 , wherein the controller determines whether the association exists between the one of the plurality of network ports and the source MAC address when determining whether the unapproved association exists between the one of the plurality of network ports and the source MAC address, and
 wherein the controller determines whether the association between the one of the plurality of network ports and the source MAC address is approved when the association exists between the one of the plurality of network ports and the source MAC address. 
 
     
     
       7. The apparatus of  claim 6 , further comprising a memory to store a forwarding database,
 wherein the controller further searches the forwarding database for an entry comprising the source MAC address when determining whether the association exists between the one of the plurality of network ports and the source MAC address. 
 
     
     
       8. The apparatus of  claim 7 , wherein the controller further determines whether an approval flag is set for an entry comprising the source MAC address when determining whether the association between the one of the plurality of network ports and the source MAC address is approved. 
     
     
       9. The apparatus of  claim 1 , wherein the controller further creates an unapproved association between the one of the plurality of network ports and the source MAC address. 
     
     
       10. The apparatus of  claim 9 , wherein when creating the unapproved association between the one of the plurality of network ports and the source MAC address the controller:
 creates the association between the one of the plurality of network ports and the source MAC address; and 
 indicates that the association between the one of the plurality of network ports and the source MAC address as unapproved. 
 
     
     
       11. The apparatus of  claim 10 , further comprising a memory to store a forwarding database,
 wherein the controller further creates an entry in the forwarding database when creating the association between the one of the plurality of network ports and the source MAC address, and 
 wherein the entry identifies the one of the plurality of network ports and the source MAC address. 
 
     
     
       12. The apparatus of  claim 11 , wherein the controller further sets an approval flag in the forwarding database for the entry when indicating that the association between the one of the plurality of network ports and the source MAC address as unapproved. 
     
     
       13. The apparatus of  claim 12 , wherein the controller further:
 receives, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, an approval of the association between the one of the plurality of network ports and the source MAC address; and 
 clears the approval flag for the entry. 
 
     
     
       14. The apparatus of  claim 12 , wherein the controller further:
 receives, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, a disapproval of the association between the one of the plurality of network ports and the source MAC address; and 
 deletes the entry. 
 
     
     
       15. The apparatus of  claim 9 , wherein the controller further:
 receives, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, an approval of the association between the one of the plurality of network ports and the source MAC address; and 
 approves the unapproved association between the one of the plurality of network ports and the source MAC address. 
 
     
     
       16. The apparatus of  claim 9 , wherein the controller further:
 receives, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, a disapproval of the association between the one of the plurality of network ports and the source MAC address; and 
 deletes the unapproved association between the one of the plurality of network ports and the source MAC address. 
 
     
     
       17. The apparatus of  claim 1 , wherein the packet further comprises a destination MAC address, and
 wherein the controller further:
 processes the packet according to the destination MAC address when
 an association exists between the destination MAC address and a further one of the plurality of network ports, and 
 the association between the destination MAC address and the further one of the plurality of network ports has been approved; 
 
 processes the packet without regard to the destination MAC address when no association exists between the destination MAC address and one of the plurality of network ports; and 
 processes the packet without regard to the destination MAC address when
 the association exists between the destination MAC address and the further one of the plurality of network ports, and 
 the association between the destination MAC address and the further one of the plurality of network ports has not been approved. 
 
 
 
     
     
       18. The apparatus of  claim 17 , wherein the controller further causes the further one of the plurality of network ports to transmit the packet when processing the packet according to the destination MAC address. 
     
     
       19. The apparatus of  claim 17 , wherein the controller further causes all of the plurality of network ports but the one of the plurality of network ports to transmit the packet when processing the packet without regard to the destination MAC address. 
     
     
       20. An integrated circuit comprising the apparatus of  claim 1 . 
     
     
       21. A network switch comprising the apparatus of  claim 1 . 
     
     
       22. The network switch of  claim 21 , wherein the network switch is an Ethernet network switch. 
     
     
       23. The network switch of  claim 21 , further comprising a CPU that communicates with the CPU interface. 
     
     
       24. An apparatus comprising:
 a plurality of network ports; 
 central processing unit (CPU) interface means for communicating with a CPU; and 
 controller means for sending, to the CPU interface means, a request to approve an association between one of the plurality of network ports and a source media access control (MAC) address of a packet received on the one of the network ports when no request to approve the association between the one of the plurality of network port ports and the source MAC address has been sent to the CPU interface means, 
 wherein the controller means sends, to the CPU interface means, the request when an approval for an association between the source MAC address and a different one of the plurality of network ports has been received from the CPU interface means. 
 
     
     
       25. The apparatus of  claim 24 , wherein the controller means determines whether an association exists between one of the plurality of network ports and the source MAC address. 
     
     
       26. The apparatus of  claim 25 , further comprising memory means for storing a forwarding database,
 wherein the controller means searches a forwarding database for the source MAC address when determining whether an association exists between one of the plurality of network ports and the source MAC address. 
 
     
     
       27. The apparatus of  claim 24 , wherein the controller means determines whether no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface means. 
     
     
       28. The apparatus of  claim 27 , wherein the controller means determines whether an unapproved association exists between the one of the network ports and the source MAC address when determining whether no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface means. 
     
     
       29. The apparatus of  claim 28 , wherein when determining whether the unapproved association exists between the one of the plurality of network ports and the source MAC address, the controller means:
 determines whether the association exists between the one of the plurality of network ports and the source MAC address, and 
 determines whether the association between the one of the plurality of network ports and the source MAC address is approved when the association exists between the one of the plurality of network ports and the source MAC address. 
 
     
     
       30. The apparatus of  claim 29 , further comprising memory means for storing a forwarding database,
 wherein when determining whether the association exists between the one of the plurality of network ports and the source MAC address, the controller means searches the forwarding database for an entry comprising the source MAC address. 
 
     
     
       31. The apparatus of  claim 30 , wherein when determining whether the association between the one of the plurality of network ports and the source MAC address is approved, the controller means determines whether an approval flag is set for the entry comprising the source MAC address. 
     
     
       32. The apparatus of  claim 24 , wherein the controller means creates an unapproved association between the one of the plurality of network ports and the source MAC address. 
     
     
       33. The apparatus of  claim 32 , wherein when creating the unapproved association between the one of the plurality of network ports and the source MAC address, the controller means:
 creates the association between the one of the plurality of network ports and the source MAC address; and 
 indicates the association between the one of the plurality of network ports and the source MAC address as unapproved. 
 
     
     
       34. The apparatus of  claim 33 , further comprising memory means for storing a forwarding database,
 wherein when creating the association between the one of the plurality of network ports and the source MAC address, the controller means creates an entry in the forwarding database that identifies the one of the plurality of network ports and the source MAC address. 
 
     
     
       35. The apparatus of  claim 34 , wherein the controller means sets an approval flag in the forwarding database for the entry when indicating the association between the one of the plurality of network ports and the source MAC address as unapproved. 
     
     
       36. The apparatus of  claim 35 , wherein the controller means:
 receives from the CPU interface means an approval of the association between the one of the plurality of network ports and the source MAC address in response to the request to approve the association between the one of the plurality of network ports and the source MAC address; and 
 clears the approval flag for the entry. 
 
     
     
       37. The apparatus of  claim 35 , wherein the controller means:
 receives from the CPU interface means a disapproval of the association between the one of the plurality of network ports and the source MAC address in response to the request to approve the association between the one of the plurality of network ports and the source MAC address; and 
 deletes the entry. 
 
     
     
       38. The apparatus of  claim 32 , wherein the controller means:
 receives from the CPU interface means an approval of the association between the one of the plurality of network ports and the source MAC address in response to the request to approve the association between the one of the plurality of network ports and the source MAC address; and 
 approves the unapproved association between the one of the plurality of network ports and the source MAC address. 
 
     
     
       39. The apparatus of  claim 32 , wherein the controller means:
 receives from the CPU interface means a disapproval of the association between the one of the plurality of network ports and the source MAC address in response to the request to approve the association between the one of the plurality of network ports and the source MAC address; and 
 deletes the unapproved association between the one of the plurality of network ports and the source MAC address. 
 
     
     
       40. The apparatus of  claim 24 , wherein the packet further comprises a destination MAC address, and
 wherein the controller means:
 processes the packet according to the destination MAC address when
 an association exists between the destination MAC address and a further one of the plurality of network ports, and 
 the association between the destination MAC address and the further one of the plurality of network ports has been approved; 
 
 processes the packet without regard to the destination MAC address when no association exists between the destination MAC address and one of the plurality of network ports, and 
 processes the packet without regard to the destination MAC address when
 the association exists between the destination MAC address and the further one of the plurality of network ports, and 
 the association between the destination MAC address and the further one of the plurality of network ports has not been approved. 
 
 
 
     
     
       41. The apparatus of  claim 40 , wherein the controller means causes the further one of the plurality of network ports to transmit the packet when processing the packet according to the destination MAC address. 
     
     
       42. The apparatus of  claim 40 , wherein the controller means causes all of the plurality of network ports but the one of the plurality of network ports to transmit the packet when processing the packet without regard to the destination MAC address. 
     
     
       43. An integrated circuit comprising the apparatus of  claim 24 . 
     
     
       44. A network switch comprising the apparatus of  claim 24 . 
     
     
       45. The network switch of  claim 44 , wherein the network switch is an Ethernet network switch. 
     
     
       46. The network switch of  claim 44 , further comprising CPU means for communicating with the CPU interface means. 
     
     
       47. A method for a switch comprising a plurality of network ports and a central processing unit (CPU) interface, the method comprising:
 receiving, on one of the plurality of network ports, a packet comprising a source media access control (MAC) address; 
 sending, to the CPU interface, a request to approve an association between the one of the plurality of network ports and the source MAC address when no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface; and 
 sending, to the CPU interface, the request when an association between the source MAC address and a different one of the plurality of network ports has been approved. 
 
     
     
       48. The method of  claim 47 , further comprising determining whether an association exists between one of the plurality of network ports and the source MAC address. 
     
     
       49. The method of  claim 48 , wherein the determining of whether an association exists between one of the plurality of network ports and the source MAC address comprises searching a forwarding database for the source MAC address. 
     
     
       50. The method of  claim 47 , further comprising determining whether no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface. 
     
     
       51. The method of  claim 50 , wherein the determining of whether no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface comprises determining whether an unapproved association exists between the one of the plurality of network ports and the source MAC address. 
     
     
       52. The method of  claim 51 , wherein the determining of whether the unapproved association exists between the one of the plurality of network ports and the source MAC address comprises:
 determining whether the association exists between the one of the plurality of network ports and the source MAC address, and 
 determining whether the association between the one of the plurality of network ports and the source MAC address is approved when the association exists between the one of the plurality of network ports and the source MAC address. 
 
     
     
       53. The method of  claim 52 , wherein the determining of whether the association exists between the one of the plurality of network ports and the source MAC address comprises searching a forwarding database for an entry comprising the source MAC address. 
     
     
       54. The method of  claim 53 , wherein the determining of whether the association between the one of the plurality of network ports and the source MAC address is approved comprises determining whether an approval flag is set for the entry comprising the source MAC address. 
     
     
       55. The method of  claim 47 , further comprising:
 creating an unapproved association between the one of the plurality of network ports and the source MAC address. 
 
     
     
       56. The method of  claim 55 , wherein the creating of the unapproved association between the one of the plurality of network ports and the source MAC address comprises:
 creating the association between the one of the plurality of network ports and the source MAC address; and 
 indicating the association between the one of the plurality of network ports and the source MAC address as unapproved. 
 
     
     
       57. The method of  claim 56 , wherein the creating of the association between the one of the plurality of network ports and the source MAC address comprises creating an entry in a forwarding database, the entry identifying the one of the plurality of network ports and the source MAC address. 
     
     
       58. The method of  claim 57 , wherein the indicating of the association between the one of the plurality of network ports and the source MAC address as unapproved comprises setting an approval flag for the entry. 
     
     
       59. The method of  claim 58 , further comprising:
 receiving, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, an approval of the association between the one of the plurality of network ports and the source MAC address; and 
 clearing the approval flag for the entry. 
 
     
     
       60. The method of  claim 58 , further comprising:
 receiving, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, a disapproval of the association between the one of the plurality of network ports and the source MAC address; and 
 deleting the entry. 
 
     
     
       61. The method of  claim 55 , further comprising:
 receiving, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, an approval of the association between the one of the plurality of network ports and the source MAC address; and 
 approving the unapproved association between the one of the plurality of network ports and the source MAC address. 
 
     
     
       62. The method of  claim 55 , further comprising:
 receiving, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, a disapproval of the association between the one of the plurality of network ports and the source MAC address; and 
 deleting the unapproved association between the one of the plurality of network ports and the source MAC address. 
 
     
     
       63. The method of  claim 47 , wherein the packet further comprises a destination MAC address, and
 wherein the method further comprises:
 processing the packet according to the destination MAC address when
 an association exists between the destination MAC address and a further one of the plurality of network ports, and 
 the association between the destination MAC address and the further one of the plurality of network ports has been approved; 
 
 processing the packet without regard to the destination MAC address when no association exists between the destination MAC address and one of the plurality of network ports, and 
 processing the packet without regard to the destination MAC address when
 the association exists between the destination MAC address and the further one of the plurality of network ports, and 
 the association between the destination MAC address and the further one of the plurality of network ports has not been approved. 
 
 
 
     
     
       64. The method of  claim 63 , wherein the processing of the packet according to the destination MAC address comprises transmitting the packet from the further one of the plurality of network ports. 
     
     
       65. The method of  claim 63 , wherein the processing of the packet without regard to the destination MAC address comprises transmitting the packet from all of the plurality of network ports but the one of the plurality of network ports. 
     
     
       66. A non-transitory computer readable medium that stores a computer program embodying instructions executable by a computer for a switch comprising a plurality of network ports and a central processing unit (CPU) interface, the computer program comprising instructions for:
 receiving, on one of the plurality of network ports, a packet comprising a source media access control (MAC) address; 
 sending, to the CPU interface, a request to approve an association between the one of the plurality of network ports and the source MAC address when no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface; and 
 sending, to the CPU interface, the request when an association between the source MAC address and a different one of the plurality of network ports has been approved. 
 
     
     
       67. The non-transitory computer readable medium of  claim 66 , further comprising instructions for determining whether an association exists between one of the plurality of network ports and the source MAC address. 
     
     
       68. The non-transitory computer readable medium of  claim 67 , wherein the instructions for determining of whether an association exists between one of the plurality of network ports and the source MAC address comprises instructions for searching a forwarding database for the source MAC address. 
     
     
       69. The non-transitory computer readable medium of  claim 66 , further comprising instructions for determining whether no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface. 
     
     
       70. The non-transitory computer readable medium of  claim 69 , wherein the instructions for determining of whether no request to approve the association between the one of the plurality of network ports and the source MAC address has been sent to the CPU interface comprises instructions for determining whether an unapproved association exists between the one of the plurality of network ports and the source MAC address. 
     
     
       71. The non-transitory computer readable medium of  claim 70 , wherein the instructions for determining of whether the unapproved association exists between the one of the plurality of network ports and the source MAC address comprises instructions for:
 determining whether the association exists between the one of the plurality of network ports and the source MAC address; and 
 determining whether the association between the one of the plurality of network ports and the source MAC address is approved when the association exists between the one of the plurality of network ports and the source MAC address. 
 
     
     
       72. The non-transitory computer readable medium of  claim 71 , wherein the instructions for determining of whether the association exists between the one of the plurality of network ports and the source MAC address comprises instructions for searching a forwarding database for an entry comprising the source MAC address. 
     
     
       73. The non-transitory computer readable medium of  claim 72 , wherein the instructions for determining of whether the association between the one of the plurality of network ports and the source MAC address is approved comprises instructions for determining whether an approval flag is set for the entry comprising the source MAC address. 
     
     
       74. The non-transitory computer readable medium of  claim 66 , further comprising instructions for creating an unapproved association between the one of the plurality of network ports and the source MAC address. 
     
     
       75. The non-transitory computer readable medium of  claim 74 , wherein the instructions for creating of the unapproved association between the one of the plurality of network ports and the source MAC address comprises instructions for:
 creating the association between the one of the plurality of network ports and the source MAC address; and 
 indicating the association between the one of the plurality of network ports and the source MAC address as unapproved. 
 
     
     
       76. The non-transitory computer readable medium of  claim 75 , wherein the instructions for creating of the association between the one of the plurality of network ports and the source MAC address comprises instructions for creating an entry in a forwarding database, the entry identifying the one of the plurality of network ports and the source MAC address. 
     
     
       77. The non-transitory computer readable medium of  claim 76 , wherein the instructions for indicating of the association between the one of the plurality of network ports and the source MAC address as unapproved comprises instructions for setting an approval flag for the entry. 
     
     
       78. The non-transitory computer readable medium of  claim 77 , further comprising instructions for:
 receiving, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, an approval of the association between the one of the plurality of network ports and the source MAC address; and 
 clearing the approval flag for the entry. 
 
     
     
       79. The non-transitory computer readable medium of  claim 77 , further comprising instructions for:
 receiving, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, a disapproval of the association between the one of the plurality of network ports and the source MAC address; and 
 deleting the entry. 
 
     
     
       80. The non-transitory computer readable medium of  claim 74 , further comprising instructions for:
 receiving, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, an approval of the association between the one of the plurality of network ports and the source MAC address; and 
 approving the unapproved association between the one of the plurality of network ports and the source MAC address. 
 
     
     
       81. The non-transitory computer readable medium of  claim 74 , further comprising instructions for:
 receiving, from the CPU interface, in response to the request to approve the association between the one of the plurality of network ports and the source MAC address, a disapproval of the association between the one of the plurality of network ports and the source MAC address; and 
 deleting the unapproved association between the one of the plurality of network ports and the source MAC address. 
 
     
     
       82. The non-transitory computer readable medium of  claim 66 , wherein the packet further comprises a destination MAC address, and wherein the computer program further comprises instructions for:
 processing the packet according to the destination MAC address when
 an association exists between the destination MAC address and a further one of the plurality of network ports, and 
 the association between the destination MAC address and the further one of the plurality of network ports has been approved; 
 
 processing the packet without regard to the destination MAC address when no association between the destination MAC address and one of the plurality of network ports exists; and 
 processing the packet without regard to the destination MAC address when
 the association exists between the destination MAC address and the further one of the plurality of network ports, and 
 the association between the destination MAC address and the further one of the plurality of network ports has not been approved. 
 
 
     
     
       83. The non-transitory computer readable medium of  claim 82 , wherein the instructions for processing of the packet according to the destination MAC address comprises instructions for transmitting the packet from the further one of the plurality of network ports. 
     
     
       84. The non-transitory computer readable medium of  claim 82 , wherein the instructions for processing of the packet without regard to the destination MAC address comprises instructions for transmitting the packet from all of the plurality of network ports but the one of the plurality of network ports.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.