openenoc_switch address map
Absolute Address: 0x0
Base Offset: 0x0
Size: 0x20
Control and status register map for an openENOC Switch instance. It includes configuration registers and a forwarding table used to map destination MAC address keys to output interface selections for frame forwarding.
Offset |
Identifier |
Name |
|---|---|---|
0x00 |
info |
openenoc_switch.info |
0x04 |
forwarding_control |
openenoc_switch.forwarding_control |
0x08 |
default_forwarding |
openenoc_switch.default_forwarding |
0x10 |
forwarding_table |
openenoc_switch.forwarding_table |
info register
Absolute Address: 0x0
Base Offset: 0x0
Size: 0x4
Read-only information register for this openENOC Switch instance.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:0 |
table_depth |
r |
0x1 |
openenoc_switch.info.table_depth[15:0] |
21:16 |
num_of_interfaces |
r |
0x1 |
openenoc_switch.info.num_of_interfaces[21:16] |
table_depth field
Depth of the forwarding table in this openENOC Switch instance. This field reflects the TABLE_DEPTH parameter value.
num_of_interfaces field
Number of interfaces in this openENOC Switch instance. This field reflects the NUM_OF_INTERFACES parameter value.
forwarding_control register
Absolute Address: 0x4
Base Offset: 0x4
Size: 0x4
Forwarding control register for the openENOC Switch instance.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
operation_mode |
rw |
0x0 |
openenoc_switch.forwarding_control.operation_mode[0:0] |
7 |
pause_request |
rw |
0x0 |
openenoc_switch.forwarding_control.pause_request[7:7] |
15 |
pause_done |
r |
— |
openenoc_switch.forwarding_control.pause_done[15:15] |
operation_mode field
Mode of operation for the openENOC Switch instance. When set to 1, the switch operates in managed mode, allowing software to configure the forwarding table and control forwarding operations. When set to 0, the switch operates in unmanaged mode, where forwarding state is maintained autonomously by internal hardware logic without software intervention.
pause_request field
Pause request for the forwarding logic. When set, this field requests the switch to pause frame forwarding and clear its internal pipeline before forwarding table updates are performed.
pause_done field
Pause done status. When set, this field indicates that the switch has paused frame forwarding and reached a safe state for forwarding table modification.
default_forwarding register
Absolute Address: 0x8
Base Offset: 0x8
Size: 0x4
Defines the destination interface or interfaces for frames that do not match any enabled forwarding table entry.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
bitmap |
rw |
0x0 |
openenoc_switch.default_forwarding.bitmap[NUM_OF_INTERFACES-1:0] |
bitmap field
Bitmap selecting the output interface or interfaces to which frames that do not match any enabled forwarding table entry are forwarded. Bit NUM_OF_INTERFACES-1, the MSB, corresponds to the first interface; bit 0 corresponds to the last interface.
forwarding_table register file
Absolute Address: 0x10
Base Offset: 0x10
Size: 0x10
Forwarding table used to map MAC addresses to output interface selections for frame forwarding.
Offset |
Identifier |
Name |
|---|---|---|
0x0 |
entry[0] |
openenoc_switch.forwarding_table.entry[0..TABLE_DEPTH-1] |
entry register file
Absolute Address: 0x10
Base Offset: 0x0
Size: 0x10
Array Dimensions: [1]
Array Stride: 0x10
Total Size: 0x10
Forwarding table entry containing the MAC address key, output interface selection, and entry configuration.
Offset |
Identifier |
Name |
|---|---|---|
0x0 |
mac_address |
openenoc_switch.forwarding_table.entry[0..TABLE_DEPTH-1].mac_address |
0x8 |
iface |
openenoc_switch.forwarding_table.entry[0..TABLE_DEPTH-1].iface |
0xC |
config |
openenoc_switch.forwarding_table.entry[0..TABLE_DEPTH-1].config |
mac_address register
Absolute Address: 0x10
Base Offset: 0x0
Size: 0x8
48-bit destination MAC address used as the key for this forwarding table entry.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
lo_word |
rw |
— |
openenoc_switch.forwarding_table.entry[0..TABLE_DEPTH-1].mac_address.lo_word[31:0] |
47:32 |
hi_word |
rw |
— |
openenoc_switch.forwarding_table.entry[0..TABLE_DEPTH-1].mac_address.hi_word[47:32] |
lo_word field
Lower 32 bits [31:0] of the 48-bit MAC address stored in this forwarding table entry.
hi_word field
Upper 16 bits [47:32] of the 48-bit MAC address stored in this forwarding table entry.
iface register
Absolute Address: 0x18
Base Offset: 0x8
Size: 0x4
Forwarding interface information associated with this forwarding table entry.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
bitmap |
rw |
— |
openenoc_switch.forwarding_table.entry[0..TABLE_DEPTH-1].iface.bitmap[NUM_OF_INTERFACES-1:0] |
bitmap field
Bitmap selecting the output interface or interfaces to which a matching frame is forwarded. Bit NUM_OF_INTERFACES-1, the MSB, corresponds to the first interface; bit 0 corresponds to the last interface.
config register
Absolute Address: 0x1C
Base Offset: 0xC
Size: 0x4
Configuration information associated with this forwarding table entry.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
enabled |
rw |
— |
openenoc_switch.forwarding_table.entry[0..TABLE_DEPTH-1].config.enabled |
enabled field
Enables this forwarding table entry. When cleared, the entry is ignored during forwarding table lookup.