Switches apparently have a base MAC and self-generate MAC value for each port from that base. If a company that makes both switches and processor boards builds a switch and assigns it MAC "N" and then builds a processor board and assigns it the next MAC value "N+1", we should observe MAC address conflicts in the field if this processor is ever connected to port "+1" on the switch. However we don't hear of that problem, nor hear of it generally. Why doesn't this problem happen? -Andy
Each manufacturer is responsible for not letting conflicts happen. When a device is assigned a pool of addresses these addresses aren't used elsewhere. Obviously, they cannot be assigned consecutively in an overlaping fashion.
Many manufacturers do recycle MAC addresses but only in ways that are carefully designed to not conflict with previous assignments.
Not that a basic layer-2 switch doesn't use any MAC address for itself. It examines each ingress frame for its source address, updates that to its MAC address table and then forwards the frame based on its destination address and the associated port from the MAC table.
Management functions and layer-3 functionality do require a MAC address on the switch.
From earlier replies and other research: Switches require MAC address for ports when using some higher protocols, and these are synthesized by the switch when needed using the "base MAC" assigned, the value is typically the switch base MAC plus the port number.
Since the capabilities of the switch and the number of the ports on the switch are known, the manufacturer can therefore know the maximum number of MACs the switch might need if configured in the "most complex" configuration. It is up to the switch manufacturer to have a method that safely assigns MACs to each switch when built, and the value of the "base MAC" assigned to the next switch off the assembly line might be the preceding switch's base MAC plus that maximum number of MACs the switch might have to synthesize, if it ever needed. Alternatively that max number might be rounded up to a binary sized block such as 1024, so the base MAC has a more logical stepping between each switch.