IP Library Granted Patent US 7,826,452
Granted Patent B1
US 7,826,452 · App. 10/761,879 · Granted Nov 2, 2010

Efficient host-controller address learning in ethernet switches

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,826,452
App. No.
10/761,879
Granted
Nov 2, 2010
Kind
B1
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 (185)

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.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
CHANGE OF NAME Recorded Apr 27, 2010
From: MARVELL SEMICONDUCTOR ISRAEL LTD.
To: MARVELL ISRAEL (M.I.S.L) LTD.
Reel/Frame 024292/0895 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2005
From: DANIEL, TSAHI
To: MARVELL SEMICONDUCTOR ISRAEL LTD.
Reel/Frame 016798/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2004
From: DANIEL, TSAHI
To: MARVELL SEMICONDUCTOR ISRAEL LTD.
Reel/Frame 014807/0484 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2004
From: MELMAN, DAVID
To: MARVELL SEMICONDUCTOR ISRAEL LTD.
Reel/Frame 014932/0608 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2004
From: BISHARA, NAFEA
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 014932/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2004
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 014971/0127 →