Intel 82599 10 GbE Controller Datasheet ®

Add to My manuals
1066 Pages

advertisement

Intel 82599 10 GbE Controller Datasheet ® | Manualzz

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

10.5.2 SMBus Programming

This section describes the SMBus transactions supported in Advanced Pass Through

(APT) mode.

10.5.2.1 Write SMBus Transactions (BMC

the 82599)

The following table lists the different SMBus write transactions supported by the 82599.

TCO Command

Transmit Packet

Transmit Packet

Receive Enable

Management Control

Update MNG RCV filter parameters

Force TCO

Request Status

Update LinkSec parameters

Transaction

Block Write

Block Write

Block Write

Block Write

Block Write

Block Write

Block Write

Block Write

Command

First:

Middle:

Last:

Single:

0x84

0x04

0x44

0xC4

Single:

Single:

Single:

Single:

Single:

Single:

0xDD

0xC9

0xCA

0xC1

0xCC

0xCF

Fragmentation

Multiple

Single

Single

Single

Single

Single

Single

Single

Section

10.5.2.1.1

10.5.2.1.1

10.5.2.1.3

10.5.2.1.5

10.5.2.1.6

10.5.2.1.4

10.5.2.1.2

10.5.2.1.7

10.5.2.1.1 Transmit Packet Command

The Transmit Packet command behavior is detailed in section 3.2.5

. The Transmit Packet

fragments have the following format:

Function

Transmit first fragment

Transmit middle fragment

Transmit last fragment

Transmit single fragment

Command

0x84

0x04

0x44

0xC4

Byte Count

N

Data 1

Packet data MSB

Data N

Packet data LSB

The payload length is limited to the maximum payload length set in the EEPROM.

If the overall packet length is bigger than 1536 bytes, the packet is silently discarded by the 82599.

874 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

10.5.2.1.2 Request Status Command

The BMC can initiate a request to read the 82599 manageability status by sending this command.

When it receives this command, the 82599 initiates a notification to the BMC (when it is ready with the status), and then the BMC is able to read the status, by issuing a Read

Status command (see section 10.5.2.2.3

). Request Status Command format:

Function

Request status

Command

0xDD

Byte Count

1

Data 1

0

10.5.2.1.3 Receive Enable Command

The Receive Enable command is a single fragment command that is used to configure the

82599.

This command has two formats: short, 1-byte legacy format (providing backward compatibility with previous components) and long, 14-byte advanced format (allowing greater configuration capabilities).

Note:

If the Receive Enable command is short and thus does not include all the parameters, then the parameters are taken from most recent previous configuration (either the most recent long Receive Enable command in which the particular value was set, or the EEPROM if there was no such previous long Receive Enable command).

Func.

Cmd

Legacy receive enable

Advance d receive enable

0xCA

Byte

Count

1

Data 1

Receive control byte

Data 2

-

Data 7

-

Data 8

-

Data 11

-

Data 12

-

Data 13

-

Data 14

-

14

0x0E

MAC addr.

MSB

MAC addr.

LSB

IP addr.

MSB

IP addr.

LSB

BMC

SMBus addr.

Interf. data byte

Alert value byte

While...

331520-004 875

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

Field

RCV_EN

RCV_ALL

EN_STA

EN_ARP_RES

NM

Reserved

CBDM

Receive control byte

(data byte 1) has the following format:

Bit(s)

0

1

2

3

5:4

6

7

Description

Receive TCO Enable.

0b = Disable Receive TCO packets.

Rx Packets are not directed to BMC and Auto ARP response is not enabled.

1b = Enable Receive TCO packets.

Setting this bit enables all manageability receive filtering operation. The enable of the specific filtering is done through loading the Receive Enable 1 word in the EEPROM, or

through special configuration command (see Section 10.5.2.1.6

).

Receive All Enable.

When set to 1b, all LAN packets received over the wire that passed L2 filtering are forwarded to the

BMC. This flag is meaningful only if the RCV_EN bit is set as well.

Enable Status reporting when set to 1b.

Enable ARP Response.

0b = Disable.

The 82599 treats ARP packets as any other packet. These packets are forwarded to BMC if it passes other (non-ARP) filtering.

1b = Enable.

The 82599 automatically responds to all received ARP requests that match its IP address.

Note:

Setting this bit doesn’t change the Rx filtering settings. Appropriate Rx filtering to enable

ARP request packets to reach the manageability unit should be set by the BMC or by the

EEPROM.

The BMC IP address is provided as part of the Receive Enable message (bytes 8-11). If short version of the command is used the 82599 uses IP address configured in the most recent long version of the command in which the EN_ARP_RES bit was set. If no such previous long command exists, then the 82599 uses the IP address configured in the EEPROM as ARP response IPv4 address in pass-through LAN configuration structure. If

CBDM

bit is set the 82599 uses the BMC dedicated Ethernet MAC address in ARP response packets. If the

CBDM

bit is not set, BMC uses the host Ethernet MAC address.

Setting this bit requires appropriate assertion of bits RCV_EN and RCV_ALL. Otherwise, the command aborts with no processing.

Notification Method.

Defines the notification method that the 82599 uses.

00b = SMBus alert

01b = Asynchronous notify

10b = Direct receive

11b = Not supported.

Note:

In dual SMBus address mode, both SMBus addresses must be configured to the same notification method.

Reserved.

Configure BMC dedicated Ethernet MAC address.

Note:

This bit should be 0b when the RCV_EN bit (bit 0) is not set.

0b = The 82599 shares the same Ethernet MAC address for manageability and host defined in the

EEPROM LAN Core 0/1 Modules in the EEPROM.

1b = The 82599 uses a dedicated Ethernet MAC address. The BMC Ethernet MAC address is set in bytes 2-7 in this command.

If short version of the command is used, the 82599 uses the Ethernet MAC address configured in the most recent long version of the command in which the

CBDM

bit was set. If no such previous long command exists, then the 82599 uses the Ethernet MAC address configured in the MMAL and

MMAH fields in the EEPROM.

When the dedicated Ethernet MAC address feature is activated, the 82599 uses the following registers for Rx filtering. The BMC should not modify the following registers:

MNG Decision Filter – MDEF7 (and its corresponding bit MANC2H[7])

MNG Ethernet MAC Address 3 – MMAL3 and MMAH3 (and its corresponding bit MFVAL[3]).

876 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

• MNG Ethernet MAC address (data bytes 2-7)

Ignored if CBDM bit is not set. This Ethernet MAC address is used for configuration of the dedicated Ethernet MAC address. In addition, it is used in the ARP response packet, when

EN_ARP_RES bit is set. This Ethernet MAC address continues to be used when the

CBDM

bit is set in subsequent short versions of this command.

• MNG IP address (data bytes 8-11)

Ignored if EN_ARP_RES bit is not set. This IP address is used to filter ARP request packets. This IP address continues to be used when EN_ARP_RES is set in subsequent short versions of this command.

• Asynchronous notification SMBus address (data byte 12)

This address is used for the asynchronous notification SMBus transaction and for direct receive.

• Interface data (data byte 13)

Interface data byte to be used in asynchronous notification.

• Alert data (data byte 14).

Alert value data byte to be used in the asynchronous notification.

10.5.2.1.4 Force TCO Command

This command causes the 82599 to perform a TCO reset, if Force TCO reset is enabled in word Common Firmware Parameters in the EEPROM. The Force TCO reset clears the data path (Rx/Tx) of the 82599 to enable the BMC to transmit/receive packets through the

82599.

Note:

In single address mode, both ports are reset when the command is issued.

In dual address mode, Force TCO reset is asserted only to the port related to the SMB address the command was issued to.

The 82599 considers the Force TCO command as an indication that the operating system is hung and clears the DRV_LOAD flag.

Force TCO Reset command format:

Function

Force TCO reset

Command

0xCF

Byte Count

1

Data 1

TCO mode

Field

DO_TCO_RST

Reserved

TCO mode is listed in the following table:

Bit(s)

0

1

Do TCO reset.

0b = Do nothing.

1b = Perform TCO reset.

Reserved, set to 0b.

Description

331520-004 877

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

Field

Firmware Reset

1

Bit(s)

2

Description

Reset manageability and re-load manageability related EEPROM words

0b = Do nothing.

1b = Issue firmware reset to manageability.

Note:

Setting this bit generates a one time firmware reset event. Following a firmware reset, management related data from the EEPROM is loaded.

Reserved 7:3 Reserved, (Set to 0x00).

1. Before initiating a Firmware Reset command, disable TCO receive via the Receive Enable command, set RCV_EN to 0b, and then wait for 200 milliseconds before initiating the Firmware Reset command. In addition, the BMC should not transmit during this period.

10.5.2.1.5 Management Control

This command is used to set generic manageability parameters. The parameters are listed in the following table. The command is 0xC1, which states that it is a management control command. The first data byte is the parameter number and the data afterwards

(length and content) are parameter specific as listed in the table.

Note:

If in the update configuration, the parameter that the BMC sets is not supported by the 82599, the 82599 does not NACK the transaction. After the transaction ends, the 82599 discards the data and asserts a transaction

abort status (see Section 3.2.5.2

).

Following is the format of the Management Control command:

Function

Management Control

Command

0xC1

Byte Count

N

Data 1

Parameter

Number (PN#)

Data 2 … Data N

Parameter Dependent

This table lists the different parameters and their content:

Parameter

Keep PHY Link Up

PN#

0x00

Parameter Data

A single byte parameter — Data 2:

Bit 0

Bit [7:1]

Programming of the MMNGC.MNG_VETO bit.

Reserved.

10.5.2.1.6 Update MNG RCV Filter Parameters

This command is used to set the manageability receive filters parameters. The parameters are listed in the following table. The command is 0xCC, which states that it is a parameter update. The first data byte is the parameter number and the data afterwards (length and content) are parameter specific as listed in the table.

Note:

If in the update configuration, the parameter that the BMC sets is not supported by the 82599, the 82599 does not NACK the transaction. After the transaction ends, the 82599 discards the data and asserts a transaction

abort status (see Section 3.2.5.2

).

Detailed description of receive filtering capabilities and configuration is described in

Section 10.3

.

878 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

The format of the update MNG RCV filter parameters is listed in the following table:

Function

Update MNG RCV Filter

Parameters

Command

0xCC

Byte Count

N

Data 1

Parameter Number

(PN#)

Data 2 … Data N

Parameter Dependent

Parameter

Filters Enable

MNG2HOST configuration

Fail-Over configuration

The following table lists the different parameters and their contents

:

Flex Filter 0

Enable MASK and

Length

Flex Filter 0 Data

Flex Filter 1

Enable MASK and

Length

Flex Filter 1 Data

Flex Filter 2

Enable MASK and

Length

Flex Filter 2 Data

Flex Filter 3

Enable MASK and

Length

Flex Filter 3 Data

PN#

0x1

0xA

0xB

0x10

0x11

0x20

0x21

0x30

0x31

0x40

0x41

Parameter Data

Defines generic filters configuration.

The structure of this parameter is 4 bytes as the MANC Value LSB and MANC Value MSB loaded from the EEPROM.

Note:

General filter enable is in the Receive Enable command, which enable receive filtering.

This parameter specifies which filters should be enabled. ARP filtering and dedicated

Section 10.5.2.1.3

).

This parameter defines which manageability packets are directed to the host memory as well.

Data 2:5 = MNG2H register setting (Data 2 is the MSB).

Fail-Over Structure Configuration (see

Section 10.2.2.2.4

).

The bytes of this parameter are loaded to the fail-over configuration register.

Data 2:5 = Fail-over configuration register (Data 2 is the MSB).

Flex Filter 0 Mask.

Data 2:17 = MASK. Bit 0 in data 2 is the first bit of the MASK

Data 18:19 = Reserved. Should be zero.

Data 20 = Flexible Filter length (must be >= 2).

Data 2 – Group of flex filter’s bytes:

0x0 = bytes 0-29.

0x1 =

0x2 =

0x3 = bytes 30-59.

bytes 60-89.

bytes 90-119.

0x4 = bytes 120-127.

Data 3:32 = Flex filter data bytes. Data 3 is LSB.

Group’s length is not mandatory 30 bytes; it can vary according to filter’s length and must NOT be padded by zeros.

Same as parameter 0x10 but for filter 1.

Same as parameter 0x11 but for filter 1

Same as parameter 0x10 but for filter 2.

Same as parameter 0x11 but for filter 2.

Same as parameter 0x10 but for filter 3.

Same as parameter 0x11 but for filter 3.

331520-004 879

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

Parameter

Filters Valid

Decision Filters

VLAN Filters

Flex Ports Filters

IPv4 Filters

IPv6 Filters

MAC Filters

Ethertype Filters

Extended Decision

Filter

PN#

0x60

0x61

0x62

0x63

0x64

0x65

0x66

0x67

0x68

Parameter Data

4 bytes to determine which of the the 82599 filter registers contain valid data.

Loaded into the MFVAL0 and MFVAL1 registers. Should be updated after the contents of a filter register are updated.

Data 2 = MSB of MFVAL ... Data 5 is the LSB

5 bytes to load the Manageability Decision Filters (MDEF).

Data 2 = Decision filter number.

Data 3 = MSB of MDEF register for this decision filter ... Data 6 is the LSB.

3 bytes to load the VLAN tag filters (MAVTV).

Data 2 = VLAN filter number.

Data 3 = MSB of VLAN filter.

Data 4 = LSB of VLAN filter.

3 bytes to load the manageability flex port filters (MFUTP).

Data 2 = Flex port filter number.

Data 3 = MSB of flex port filter.

Data 4 = LSB of flex port filter.

5 bytes to load the IPv4 address filter (MIPAF, DW 15:12).

Data 2 = IPv4 address filter number (0-3).

Data 3 = MSB of IPv4 address filter … Data 6 is the LSB.

17 bytes to load IPv6 address filter (MIPAF).

Data 2 = IPv6 address filter number (0-3).

Data 3 = MSB of IPv6 address filter … Data 18 is the LSB.

7 bytes to load Ethernet MAC address filters (MMAL, MMAH).

Data 2 = Ethernet MAC address filters pair number (0-3).

Data 3 = MSB of Ethernet MAC address … Data 8 is the LSB.

6 bytes to load Ethertype filters (MTQF).

Data 2 = METF filter index (valid values are 0..3).

Data 3 = MSB of METF ... Data 6 is the LSB.

10 bytes to load the extended decision filters (MDEF_EXT & MDEF).

Data 2 = MDEF filter index (valid values are 0..6).

Data 3 = MSB of MDEF_EXT (DecisionFilter1) ... Data 6 is the LSB.

Data 7 = MSB of MDEF (DecisionFilter0) ... Data 10 is the LSB.

The command must overwrite any previously stored value.

Note:

Previous Decision Filter command (0x61) is still supported. For legacy reasons — If previous Decision Filter command (0x61) is called — it should set the MDEF as provided and set the extended Decision Filter (MDEF_EXT) to 0x0.

880 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

10.5.2.1.7 Update LinkSec Parameters

This command is used to set the manageability LinkSec parameters. The parameters are listed in the following table. The first data byte is the parameter number and the data afterwards (length and content) are parameter specific as listed in the table.

This is the format of the Update LinkSec parameters command:

Function

Update LinkSec Filter Parameters

Command

0xC9

Byte Count

N

Data 1

Parameter Number

(PN#)

Data 2 … Data N

Parameter Dependent

The following table lists the different parameters and their contents

:

Parameter

Transfer LinkSec ownership to BMC

PN#

0x10

0x11

Parameter Data

Data 2: Host Control:

Bit 0 =

Bit 1 =

Reserved.

Allow host traffic (0b – blocked, 1b – allowed).

Bit 2...31 = Reserved.

No data needed.

Transfer LinkSec ownership to Host

Initialize LinkSec Rx 0x12

Initialize LinkSec Tx

Set LinkSec Rx Key

Set LinkSec Tx Key

0x13

0x14

0x15

Data 2: Rx Port Identifier (MSB) ... Data 3: (LSB).

Rx Port Identifier – the port number by which the 82599 identifies Rx packets. It is recommended that the BMC use 0x0 as the port identifier.

Note:

The BMC should use the same port identifier when performing the key-exchange.

Data 4 : Rx MAC SecY (MSB) … Data 9: (LSB).

Data 2: Tx Port Identifier (MSB) ... Data 3: (LSB) — must be set to zero.

Data 4: Tx SCI (MSB) … Data 7: Tx SCI (LSB).

Tx SCI – A 6-byte unique identifier for the LinkSec Tx CA. It is recommended that the BMC use its Ethernet MAC address value for this field.

Data 8: Reserved.

Data 9: Reserved.

Data 10: Packet Number Threshold (MSB) … Data 12: (LSB).

PN Threshold – When a new key is programmed, the packet number is reset to 0x1. With each Tx packet, The packet number is incremented by one and inserted to the packet (to avoid replay attacks). The packet number threshold value is 3 MSBytes of the Tx Packet number after which a Key Exchange Required AEN is sent to the BMC. Example: a PN threshold of 0x123456 means that when the packet number reaches 0x12345600 a notification is sent.

Data 22: Tx Control — See

Table 10-21 .

Data 2: Reserved.

Data 3: Rx SA AN (The association number to be used with this key).

Data 4: Rx LinkSec Key (MSB) … Data 19: (LSB) — (16 bytes key to be used).

Data 3: Tx SA AN (The association number to be used with this key).

Data 4: Tx LinkSec Key (MSB) … Data 19: (LSB) — (16 bytes key to be used).

331520-004 881

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

Parameter

Enable LinkSec

Network Tx encryption

Disable LinkSec

Network Tx encryption

PN#

0x16 No data needed.

0x17 No data needed.

Parameter Data

Table 10-21 Tx Control

Bit

0..4

5

6..7

Reserved.

Always Include SCI in Tx:

0b = Do not include SCI in Tx packets.

1b = Include SCI in Tx packets.

Reserved.

Description

10.5.2.2 Read SMBus Transactions (the 82599 to BMC)

The following table lists the different SMBus read transactions supported by the 82599.

All the read transactions are compatible with SMBus Read Block Protocol format.

TCO Command

Receive TCO Packet

Transaction

Block Read

Command

0xC0 or 0xD0

Read Receive Enable configuration

Read the 82599

Status

Read Management parameters

Read MNG RCV filter parameters

Block Read

Block Read

Block Read

Block Read

0xDA

0xC0 or 0xD0 or 0xDE

0xD1

0xCD

Get system Ethernet

MAC Address

Block Read 0xD4

Read LinkSec parameters

Block Read 0xD9

1. Last fragment of the receive TCO packet is the packet status.

Op-Code

First:

Middle:

Last

1

Single:

0x90

0x10

0x50

0xDA

Single:

Single:

Single:

Single

Single

0xDD

0xD1

0xCD

0xD4

0xD9

Fragmentation

Multiple

Single

Single

Single

Single

Single

Single

Section

10.5.2.2.1

10.5.2.2.7

10.5.2.2.3

10.5.2.2.5

10.5.2.2.6

10.5.2.2.4

10.5.2.2.8

882 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

Note:

The 82599 responds to one of the commands 0xC0/0xD0 within the time defined in the SMBus notification timeout and flags word in the EEPROM

(see Section 6.4.4.3

.)

0xC0/0xD0 commands are used for more than one payload. If the BMC issues these read commands, and the 82599 has no pending data to transfer, it always returns as default opcode 0xDD with the 82599 status, and does not NACK the transaction.

If an SMBus Quick Read command is received, it is handled as a Read the

82599 Status command (See Section 10.5.2.2.3

for details).

10.5.2.2.1 Receive TCO LAN Packet Transaction

The BMC uses this command to read the packet received on the LAN and its status. When the 82599 has a packet to deliver to the BMC, it asserts the SMBus notification, for the

BMC to read the data (or direct receive). Upon receiving notification of the arrival of LAN receive packet, the BMC should begin issuing a Receive TCO packet command using the block read protocol. The packet can be delivered in more than one SMBus fragment (at least two — one for the packet, and the other one for the status), and the BMC should follow the

F

and

L

bit.

The opcode can have these values:

• 0x90 — First fragment.

• 0x10 — Middle fragment.

• 0x50 — Packet status (last fragment) as described in

Section 10.5.2.2.2

.

If the external BMC does not finish reading the entire packet within a timeout period since the packet has arrived, the packet is silently discarded. The timeout period is set

according to the SMBus notification timeout EEPROM parameter (see Section 6.4.4.3

)

Function

Receive TCO packet

Command

0xC0 or 0xD0

Data returned from the 82599:

Function

Receive TCO First Fragment

Receive TCO Middle Fragment

Receive TCO Last Fragment

N

Byte Count

Data 1 (Op-

Code)

90

10

50

Data 2

Packet Data

Byte

… Data N

Packet Data

Byte

331520-004 883

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

10.5.2.2.2 Receive TCO LAN Status Payload Transaction

This transaction is the last transaction that the 82599 issues when a packet that was received from the LAN is transferred to the BMC. The transaction contains the status of the received packet. The format of the status transaction is as follows:

Function

Receive TCO Long

Status

Byte Count

17 (0x11)

Data 1 (Op-

Code)

0x50

Data 2 – Data 17 (Status data)

See

Table 10-22 . For more details on the specific bit fields see

Section 7.1.6

.

Table 10-22 Receive TCO Last Fragment Status Data Content

Name Bit(s) Description

Packet Length

Reserved

13:0

24:14

Packet length including CRC, only 14 LSB bits.

Reserved.

CRC

Reserved

VEXT

Reserved

Reserved

LAN

Reserved

Reserved

Status

Reserved

MNG status

34

35

63:36

71:64

25

28:26

29

33:30

79:72

87:80

127:88

CRC stripped indication.

Reserved.

Additional VLAN present in packet.

Reserved.

Reserved.

LAN number.

Reserved.

Reserved.

See

Table 10-23

.

Reserved.

See

Table 10-24

. This field should be ignored if Receive TCO is not enabled.

Table 10-23 Status Info

Field Bit(s)

Reserved 7:4 Reserved.

IPCS 3 IPv4 Checksum Calculated on Packet.

L4CS 2 L4 Checksum Calculated on Packet.

Description

884 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

Table 10-23 Status Info (Continued)

Field Bit(s)

UDPCS 1 UDP Checksum Calculated on Packet.

Reserved 0 Reserved.

Description

Table 10-24 MNG Status

Name

Pass RMCP 0x026F

Pass RMCP 0x0298

Pass MNG Broadcast

Pass MNG Neighbor

Pass ARP req / ARP Response

Reserved

Pass MNG VLAN Filter Index

MNG VLAN Address Match

Unicast Address Index

4

7:5

2

3

Bits

0

1

10:8

11

14:12

Unicast Address Match

L4 port Filter Index

L4 port Match

Flex TCO Filter Index

Flex TCO Filter Match

IP address Index

IP address Match

IPv4 Packet

Decision Filter Match

Description

Set when the UDP/TCP port of the MNG packet is 0x26F.

Set when the UDP/TCP port of the MNG packet is 0x298.

Set when the MNG packet is a broadcast packet.

Set when the MNG packet is a neighbor discovery packet.

Set when the MNG packet is an ARP response/request packet.

Reserved.

15

22:16

23

26:24

27

29:28

30

31

39:32

Set when the MNG packet matches one of the MNG VLAN filters.

Indicates which of the 4 unicast Ethernet MAC addresses match the packet.

Valid only if the unicast address match is set.

Set when there is a match to any of the 4 unicast Ethernet MAC addresses.

Indicate the flex filter number.

Set when there is a match to any of the UDP / TCP port filters.

Set when there is a match to the IP filter number. (IPv4 or IPv6).

Set when there is a match to any of the IP address filters.

Set to 0b when packet is IPv4 (regardless of address match).

Set when there is a match to one of the decision filters.

331520-004 885

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

10.5.2.2.3 Read Status Command

The BMC can read the 82599 status. The 82599 asserts an alert prior to the BMC reading the status bytes. There can be two reasons for the 82599 to send status to the BMC

(described in Section 3.2.3

):

1. The external BMC asserts a request for reading the 82599 status.

2. The 82599 detects a status change as described in Section 3.2.3

.

Note that commands 0xC0/0xD0 are for backward compatibility. 0xD0/0xC0 can be used for other payloads the 82599 defines in the opcode, which payload this transaction is.

When 0xDE command is set, the 82599 always returns opcode 0sDD with the 82599 status. The BMC reads the event causing the notification, using the Read Status command as follows:

Function Command

Read Status 0xC0 or 0xD0 or 0xDE

Function

Receive TCO Partial Status

Byte Count

3

Data 1 (Op-

Code)

0xDD

Data 2

(Status data 1)

Data 3

(Status data 2)

See the following table

886 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

The following table lists the status data byte 1:

Bit

7 LAN Port

Name

0b = Alert came from LAN port 0.

1b = Alert came from LAN port 1

Description

6 TCO Command Aborted 0b = A TCO command abort event has not occurred since the last read status cycle.

1b = A TCO command abort event has occurred since the last read status cycle.

See Section 3.2.5.2

for command abort flow.

5 Link Status Indication

1

0b = LAN link down.

1b = LAN link is up.

Contains the value of the MMNGC.MNG_VETO bit.

4 PHY Link Forced Up

Initialization Indication

2

3 0b = An EEPROM reload event has not occurred since the last read status cycle.

1b = An EEPROM reload event has occurred since the last read status cycle.

2 Reserved

Power State

3

Reserved as 0b.

1:0 00b = Dr state.

01b = D0u state.

10b = D0 state.

11b = D3 state.

1. When the 82599 is working in teaming mode, and presented as one SMBus device, the link indication is 0b only when both links

(on both ports) are down. If one of the LANs is disabled, its link is considered to be down.

2. This indication is asserted when the 82599 manageability block reloads the EEPROM and its internal database is updated to EEPROM default values. This is an indication that the external BMC should re-configure the 82599, if other values besides the EEPROM default should be configured.

3. In single address mode, the 82599 reports the highest power-state modes in both devices. The D state is marked in this order:

D0, D0u, Dr, and D3.

Status data byte 2 is used for the BMC for an indication whether the LAN driver is alive and running.

The driver valid indication is a bit that is set by the driver when it is coming up, and cleared when it goes down to Dx state or cleared by the hardware on PCI reset.

Bits 2 and 1 indicate that the LAN driver is not stuck. Bit 2 indicates whether the interrupt line of the LAN function is asserted, and bit 1 indicates whether the driver between the last read status cycle dealt the interrupt line.

The following table lists status data byte 2:

Bit

7

6

5

4

Name

Reserved

Reserved

Reserved

LinkSec Indication

Description

Reserved.

Reserved.

Reserved.

If set, indicates that a LinkSec event has occurred.

Use the read LinkSec parameters with the LinkSec interrupt cause parameter to read the interrupt cause

331520-004 887

888

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

3

2

1

Bit Name

Driver Valid Indication

Interrupt Pending Indication

ICR Register Read/Write

0 Reserved

Description

0b = LAN driver is not alive.

1b = LAN driver is alive.

0b = LAN interrupt is not asserted.

1b = LAN interrupt is asserted.

0b = ICR register was not read since the last read status cycle.

1b = ICR register was read since the last read status cycle.

Reading the ICR means that the driver has dealt with the interrupt that was asserted.

Reserved.

Previous

Don’t care

00b

10b

11b

01b

Don’t Care

Don’t Care

Note:

When the 82599 is in teaming mode, these bits represent both cores:

• The driver alive indication is set if 1b of the driver is alive.

• The LAN interrupt is considered to be asserted if one of the interrupt lines is asserted.

• The ICR is considered to read if one of the ICRs was read (LAN0 or LAN1).

The following table lists the possible values of bits 2, 1 and what the BMC can assume according to that:

Current

00b

01b

01b

01b

01b

11b

10b

Interrupt is not pending – OK.

New interrupt is asserted – OK.

New interrupt is asserted – OK.

Interrupt is waiting for reading – OK.

Interrupt is waiting for reading by the driver more than one read status cycle – Not OK (possible driver hang state).

Previous interrupt was read and current interrupt is pending – OK.

Interrupt is not pending – OK.

Note:

The BMC reads should consider the time it takes for the driver to deal with the interrupt (a few microseconds), too frequent reads give false indications.

331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

10.5.2.2.4 Get System Ethernet MAC Address

The Get System Ethernet MAC Address returns the system Ethernet MAC Address (RAL0,

RAH0) over the SMBus. This command is a single fragment Read Block transaction, with the following format:

Function

Get system Ethernet MAC Address

Command

0xD4

Data returned from the 82599:

Function

Get system Ethernet

MAC Address

Byte Count

7

Data 1 (Op-

Code)

0xD4

Data 2

Ethernet MAC Address

MSB

Data 7

Ethernet MAC Address

LSB

10.5.2.2.5 Read Management Parameters

In order to read the management parameters the BMC should execute two SMBus transactions. The first transaction is a block write that sets the parameter that the BMC wants to read. The second transaction is block read that reads the parameter.

This is the block write transaction:

Function

Management Control Request

Command

0xC1

Byte Count

1 Parameter Number

Data 1

Following the block write the BMC should issue a block read that reads the parameter that was set in the Block Write command:

Function

Read Management Parameter

Command

0xD1

Data returned from the 82599:

Function

Read Management Parameter

Byte Count

N

Data 1 (Op-

Code)

0xD1

Data 2

Parameter Number

(PN#)

Data 3 … Data N

Parameter Dependent

331520-004 889

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

The returned data is as follows:

Parameter

Keep PHY Link Up

Wrong Parameter

Request the 82599 Not Ready

PN#

0x00

0xFE

0xFF

Parameter Data

A single byte parameter — Data 2:

Bit 0 = Reflects the setting of the MMNGC.MNG_VETO bit.

Bit [7:1] = Reserved.

the 82599 only: This parameter is returned on a read transaction, if in the previous Read command the BMC sets a parameter that is not supported by the 82599. the 82599 only: Returned on Read Parameters command when the data that should have been read is not ready. The BMC should retry the read transaction.

Note:

It might be that the parameter that is returned is not the parameter requested by the BMC. The BMC should verify the parameter number

(default parameter to be returned is 0x1).

It is BMC’s responsibility to follow the procedure Previously defined. If the

BMC sends a Block Read command (as previously described) that is not preceded by a Block Write command with bytecount=1b, the 82599 sets the parameter number in the read block transaction to be 0xFE.

10.5.2.2.6 Read MNG RCV Filter Parameters

In order to read the MNG RCV filter parameters, the BMC should execute two SMBus transactions. The first transaction is a block write that sets the parameter that the BMC wants to read. The second transaction is block read that reads the parameter.

This is the block write transaction:

Function

Update MNG RCV Filter Parameters

Command

0xCC

Byte Count

1 or 2

Data 1

Parameter Number

(PN#)

Data 2

Parameter Data

The following table lists the different parameters and their contents

:

Parameter Data Parameter

Filters Enable

MNG2HOST Configuration

Fail-Over Configuration

Flex Filter 0 Enable Mask and

Length

PN#

0x1

0xA

0xB

0x10

None.

None.

None.

None.

890 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

Parameter

Flex Filter 0 Data

Flex Filter 1 Enable Mask and

Length

Flex Filter 1 Data

Flex Filter 2 Enable Mask and

Length

Flex Filter 2 Data

Flex Filter 3 Enable Mask and

Length

Flex Filter 3 Data9

Filters Valid

Decision Filters

VLAN Filters

Flex Ports Filters

IPv4 Filter

IPv6 Filters

MAC Filters

Wrong Parameter Request the 82599 Not Ready

PN#

0x11

0x20

Parameter Data

Data 2 – Group of Flex filter’s bytes:

0x0 = bytes 0-29.

0x1 = bytes 30-59.

0x2 = bytes 60-89.

0x3 = bytes 90-119.

0x4 = bytes 120-127.

None.

0x21

0x30

Same as parameter 0x11 but for filter 1.

None.

0x31

0x40

Same as parameter 0x11 but for filter 2.

None.

0x41

0x60

0x61

0x62

0x63

0x64

0x65

0x66

0xFE

0xFF

Same as parameter 0x11 but for filter 3.

None.

1 byte to define the accessed manageability decision filter (MDEF).

Data 2 = Decision filter number.

1 byte to define the accessed VLAN tag filter (MAVTV).

Data 2 = VLAN filter number.

1 byte to define the accessed manageability flex port filter (MFUTP).

Data 2 = Flex port filter number.

1 byte to define the accessed IPv4 address filter (MIPAF).

Data 2 = IPv4 address filter number.

1 byte to define the accessed IPv6 address filter (MIPAF).

Data 2 = IPv6 address filter number.

1 byte to define the accessed Ethernet MAC address filters pair (MMAL, MMAH).

Data 2 = Ethernet MAC address filters pair number (0-3).

Returned by the 82599 only. This parameter is returned on read transaction, if in the previous Read command the BMC sets a parameter that is not supported by the 82599.

Returned by the 82599 only, on Read Parameters command when the data that should have been read is not ready. This parameter has no data.

331520-004 891

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

Following the block write the BMC should issue a block read that readS the parameter that was set in the Block Write command:

Function

Request MNG RCV Filter Parameters

Command

0xCD

Data returned from the 82599:

Function

Read MNG RCV Filter

Parameters

Byte Count

N

Data 1 (Op-

Code)

0xCD

Data 2

Parameter Number

(PN#)

Data 3 … Data N

Parameter Dependent

The returned data is in the same format of the Update command.

Note:

If the parameter that is returned is not the parameter requested by the

BMC, the BMC should verify the parameter number (default parameter to be returned is 0x1).

If the parameter number is 0xFF, it means that the data that the 82599 should supply is not ready yet. The BMC should retry the read transaction.

It is BMC’s responsibility to follow the procedure previously defined. If the

BMC sends a Block Read command (as previously described) that is not preceded by a Block Write command with bytecount=1b, the 82599 sets the parameter number in the read block transaction to be 0xFE.

10.5.2.2.7 Read Receive Enable Configuration

The BMC uses this command to read the receive configuration data. This data can be configured in the Receive Enable command or through EEPROM loading at power up.

Read Receive Enable Configuration command format (SMBus Read Block Protocol):

Read Receive Enable

Function Command

0xDA

Data returned from the 82599:

Function

Read

Receive

Enable

Byte

Count

15

(0x0F

)

Data 1

(Op-

Code)

0xDA

Data

2

Rece ive

Cont rol

Byte

Data

3

Data

8

Ethe rnet

MAC

Addr ess

MSB

… Ethe rnet

MAC

Addr ess

LSB

Data

9

IP

Addr ess

MSB

Data

12

… IP

Addre ss

LSB

Data

13

BMC

SMBus

Addre ss

Data

14

Interf ace

Data

Byte

The detailed description of each field is specified in the Receive Enable command

description in Section 10.5.2.1.3

.

Data

15

Alert

Value

Byte

892 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

10.5.2.2.8 Read LinkSec Parameters

In order to read the MNG LinkSec parameters, the BMC should execute two SMBUS transactions. The first transaction is a block write that sets the parameter that the BMC wants to read. The second transaction is block read that reads the parameter.

This is the block write transaction:

Function

Update MNG RCV Filter

Parameters

Command

0xC9

Byte Count

1

Data 1

Parameter Number

(PN#)

Data 2

Parameter Data

The following table lists the different parameters and their contents:

Parameter Data Parameter

LinkSec Interrupt Cause

LinkSec Rx Parameters

LinkSec Tx Parameters

PN#

0x0

0x1

0x2

None.

None.

None.

Following the block write the BMC should issue a block read that reads the parameter that was set in the Block Write command:

Function

Read LinkSec Parameters

Command

0xD9

Byte Count

2,18 or 22

Data 1

Parameter Number

(PN#)

Data 2 — n

Parameter Data

The following table lists the different parameters and their contents

:

Parameter

LinkSec Interrupt Cause

PN#

0x0

Parameter Data

This command must return 1 byte (Data2). This byte contains the LinkSec interrupt cause, according to the following values:

Data2:

Bit 0 =

Bit 1 =

Bit 2 =

Tx key packet number threshold met.

Host requested ownership.

Host released ownership.

Bit 3...31 = Reserved.

331520-004 893

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

Parameter

LinkSec Rx Parameters

LinkSec Tx Parameters

PN#

0x1

0x2

Parameter Data

Data 2: Reserved.

Data 3: LinkSec ownership status. See

Table 10-25 .

Data 4: LinkSec host control status. See Table 10-26 .

Data 5: Rx host identifier (MSB).

Data 6: Rx host identifier (LSB).

Data 7: Rx SCI (MSB) … Data 12: (LSB).

Data 13: Reserved.

Data 14: Rx SA AN — The association number currently used for the active SA.

Data 15: Rx SA packet number (MSB) … Data 18: (LSB).

Rx SA packet number is the last packet number, as read from the last valid Rx LinkSec packet.

Data 2: Reserved

Data 3: LinkSec ownership status. See

Table 10-25 .

Data 4: LinkSec host control status. See Table 10-26 .

Data 5: Tx port identifier (MSB).

Data 6: Tx port identifier (LSB).

Note:

Tx port identifier is reserved to 0x0 for this implementation.

Data 7: Tx SCI (MSB) … Data 12: (LSB).

Data 13: Reserved.

Data 14: Tx SA AN — The association number currently used for the active SA.

Data 15: Tx SA packet number (MSB) … Data 18: (LSB).

Data 19: packet number threshold (MSB) … Data 21: (LSB).

Tx SA packet number is the last packet number, as read from the last valid Tx LinkSec packet.

Data 22: Tx Control Status. See

Table 10-27 .

Table 10-25 LinkSec Owner Status

Value

0x0 Host is LinkSec owner.

0x1 BMC is LinkSec owner.

Description

Table 10-26 LinkSec Host Control Status

Bit

0 Reserved.

1

2..7

Allow host traffic:

0b = Host traffic is blocked.

1b = Host traffic is allowed.

Reserved.

Description

894 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

Table 10-27 Tx Control Status

Bit

0..4

Reserved.

5

6..7

Include SCI:

0b = Do not include SCI in Tx packets.

1b = Include SCI in Tx packets.

Reserved

Description

10.5.2.3 SMBus ARP Transactions

Note:

All SMBus-ARP transactions include PEC byte.

10.5.2.3.1 Prepare to ARP

This command clears the Address Resolved flag (set to false). It does not affect the status or validity of the dynamic SMBus address. It is used to signal all devices that the

ARP master is starting the ARP process:

1

S

7

Slave Address

1100 001

1

Wr

0

1

A

0

8

Command

0000 0001

1

A

0

8

PEC

[Data dependent value]

1

A

0

1

P

10.5.2.3.2 Reset Device (General)

This command clears the Address Resolved flag (set to false). It does not affect the status or validity of the dynamic SMBus address.

1

S

7

Slave Address

1100 001

1

Wr

0

1

A

0

8

Command

0000 0010

1

A

0

8

PEC

[Data dependent value]

1

A

0

1

P

10.5.2.3.3 Reset Device (Directed)

The Command field is NACK-ed if the bits 7 through 1 do not match the current the

82599 SMBus address.

It clears the Address Resolved flag (set to false). It does not affect the status or validity of the dynamic SMBus address.

1

S

7

Slave Address

1100 001

1

Wr

0

1

A

0

8

Command

Targeted slave address | 0

1

A

0

8

PEC

[Data dependent value]

1

A

0

1

P

331520-004 895

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

10.5.2.3.4 Assign Address

This command assigns the 82599’s SMBus address. The address and command bytes are always acknowledged.

The transaction is aborted immediately (NACK-ed-) if any of the UDID bytes differ from the 82599 UDID bytes. If successful, the manageability interface updates the SMBus address internally. This command also sets the Address Resolved flag to true.

1 7

Slave

Address

1100 001

1

Wr

0

1

A

0

8

Command

0000 0100

1

A

0

8

Byte Count

0001 0001

1

A

0

  

8

Data-1

UDID byte 15 (MSB)

8

Data-5

UDID byte 11

8

Data-9

UDID byte 7

8

Data-12

UDID byte 4

8

Data-16

UDID byte 0 (LSB)

1

A

0

1

A

0

8

Data-2

UDID byte 14

8

Data-6

UDID byte 10

1

A

0

1

A

0

8

Data-10

UDID byte 6

8

Data-13

UDID byte 3

1

A

0

1

A

0

8

Data-17

Assigned Address

1

A

0

1

A

0

1

A

0

8

Data-3

UDID byte 13

8

Data-7

UDID byte 9

8

Data-14

UDID byte 2

8

1

A

0

1

A

0

Data-11

UDID byte 5

1

A

0

1

A

0

8

PEC

[Data dependent value]

8

Data-4

UDID byte 12

8

Data-8

UDID byte 8

1

A

0

8

Data-15

UDID byte 1

1

A

0

1

A

0

1

P

1

A

0

1

A

0

  

  

  

  

10.5.2.3.5 Get UDID (General and Directed)

The Get UDID command depends on whether this is a directed or general command.

The General Get UDID SMBus transaction supports a constant command value of 0x03.

The Directed Get UDID SMBus transaction supports a dynamic command value equal to the dynamic SMBus address with the LSB bit set.

Note:

Bit 0 (LSB) of Data byte 17 will always be 1b.

If the SMBus address has been resolved (Address Resolved flag is true); for a general command the manageability interface does not acknowledge (NACK) this transaction, for a directed command the manageability always acknowledges (ACK) this transaction.

896 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

S

This command does not affect the status or validity of the dynamic SMBus address nor of the Address Resolved flag.

The command returns the UDID bytes as defined in Section 3.2.7

.

Slave Address

1100 001

Wr

0

A

0

Command

See below

A

0

S   

7

Slave Address

1100 001

8

Data-1

UDID byte 15 (MSB)

1

A

0

1

Rd

1

8

Data-2

UDID byte 14

1

A

0

1

A

0

8

Byte Count

0001 0001

8

Data-3

UDID byte 13

1

A

0

8

Data-4

UDID byte 12

1

A

0

  

1

A

0

  

8

Data-5

UDID byte 11

1

A

0

8

Data-6

UDID byte 10

1

A

0

8

Data-7

UDID byte 9

1

A

0

8

Data-8

UDID byte 8

1

A

0

  

8

Data-9

UDID byte 7

8

Data-12

UDID byte 4

1

A

0

1

A

0

8

Data-13

UDID byte 3

8

Data-10

UDID byte 6

1

A

0

8

Data-14

UDID byte 2

1

A

0

1

A

0

8

Data-11

UDID byte 5

8

Data-15

UDID byte 1

1

A

0

1

A

0

  

  

8

Data-16

UDID byte 0 (LSB)

1

A

0

8

Data-17

Device Slave Address

1

A

0

8

PEC

[Data dependent value]

10.5.2.4 Example Configuration Steps

1

1

1

P

This section provides an overview and sample configuration settings for commonly used filtering configurations.Three examples are presented.

The examples are in pseudo code format, with the name of the SMBus command, followed by the parameters for that command and an explanation. Here is a sample:

Receive Enable[00]

Using the simple form of the Receive Enable command, this prevents any packets from reaching the BMC by disabling filtering.

331520-004 897

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

10.5.2.4.1 Example 1 - Shared MAC, RMCP Only Ports

This example is the most basic configuration. The MAC address filtering are shared with the host operating system and only traffic directed the RMCP ports (0x26F and 0x298) are filtered. For this simple example, the BMC must issue gratuitous ARPs because no filter is enabled to pass ARP requests to the BMC.

10.5.2.4.1.1 Example 1 Pseudo Code

Step 1:

- Disable existing filtering:

Receive Enable[00]

Using the simple form of the Receive Enable command, this prevents any packets from reaching the BMC by disabling filtering:

Receive Enable Control 0x00:

• Bit 0 [0] – Disable receiving of packets

Step 2:

- Configure MDEF[0]:

Update Manageability Filter Parameters [61, 0, 00000C00]

Use the Update Manageability Filter Parameters command to update Decision Filters

(MDEF) (parameter 0x61). This updates MDEF[0], as indicated by the 2 nd

parameter (0).

MDEF[0] value of 0x00000C00:

• Bit 10 [1] – port 0x298

• Bit 11 [1] – port 0x26F

Step 3:

- Enable filtering:

Receive Enable [05]

Using the simple form of the Receive Enable command:

Receive Enable Control 0x05:

• Bit 0 [1] – Enable receiving of packets

• Bit 2 [1] – Enable status reporting (such as link lost)

• Bit 5:4 [00] – Notification method = SMBus Alert

• Bit 7 [0] – Use shared MAC

898 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

Table 10-28 Example 1 MDEF Results

L2 Unicast Address

Broadcast

Manageability VLAN

IP Address

L2 Unicast Address

Broadcast

Multicast

ARP Request

ARP Response

Neighbor Discovery

Port 0x298

Port 0x26F

Flex Port 15:0

Flex TCO 3:0

Filter 0

OR

OR

OR

OR

OR

OR

OR

AND

AND

AND

AND

OR

OR

AND x x

1

Manageability Decision Filter (MDEF)

2 3 4 5 6 7

331520-004 899

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

10.5.2.4.2 Example 2 - Dedicated MAC, Auto ARP Response and

RMCP port filtering

This example shows a common configuration; the BMC has a dedicated MAC and IP address. Automatic ARP responses are enabled as well as RMCP port filtering. By enabling automatic ARP responses the BMC is not required to send the gratuitous ARPs as it did in Example 1. Since ARP requests are now filtered, in order for the host to receive the ARP requests, the manageability-to-host filter is configured to send the ARP requests to the host as well.

For demonstration purposes, the dedicated MAC address is calculated by reading the system MAC address and adding one do it, assume the system MAC is AABBCCDC. The IP address for this example is 1.2.3.4.

Additionally, the XSUM filtering is enabled.

Note that not all Intel Ethernet controllers support automatic ARP responses, please refer to product specific documentation.

10.5.2.4.2.1 Example 2 - Pseudo Code

Step 1:

- Disable existing filtering:

Receive Enable[00]

Using the simple form of the Receive Enable command, this prevents any packets from reaching the BMC by disabling filtering:

Receive Enable Control 0x00:

• Bit 0 [0] – Disable receiving of packets

Step 2:

- Read System MAC Address

Get System MAC Address []

Reads the System MAC address. Assume returned AABBCCDC for this example.

Step 3:

- Configure XSUM Filter

Update Manageability Filter Parameters [01, 00800000]

Use the Update Manageability Filter Parameters command to update Filters Enable settings (parameter 1). This set the Manageability Control (MANC) register.

MANC Register 0x00800000:

• Bit 23 [1] – XSUM Filter enable

Note:

Some of the following configuration steps manipulate the MANC register indirectly, this command sets all bits except XSUM to zero. It is important to either do this step before the others, or to read the value of the MANC and then write it back with only bit 32 changed. Also note that the XSUM enable bit might differ between Ethernet controllers, refer to product specific documentation.

Step 4:

- Configure MDEF[0]

Update Manageability Filter Parameters [61, 0, 00000C00]

900 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

331520-004

Use the Update Manageability Filter Parameters command to update Decision Filters

(MDEF) (parameter 0x61). This updates MDEF[0], as indicated by the 2 nd

parameter (0).

MDEF value of 0x00000C00:

• Bit 10 [1] – port 0x298

• Bit 11 [1] – port 0x26F

Step 5:

- Configure MDEF[1]:

Update Manageability Filter Parameters [61, 1, 00000080]

Use the Update Manageability Filter Parameters command to update Decision Filters

(MDEF) (parameter 61h). This updates MDEF[1], as indicated by the 2 nd

parameter (1).

MDEF value of 0x00000080:

• Bit 7 [7] – ARP requests

When enabling automatic ARP responses, the ARP requests still go into the manageability filtering system and as such need to be designated as also needing to be sent to the host.

For this reason a separate MDEF is created with only ARP request filtering enabled.

Refer to the next step for more details.

Step 6:

- Configure the Management to Host Filter

Update Manageability Filter Parameters [0A, 00000002]

Use the Update Manageability Filter Parameters command to update the Management

Control-to-Host (MANC2H) register.

MANC2H Register 0x00000002:

• Bit 2 [1] – Enable MDEF[1] traffic to go to the host as well

This enables ARP requests to be passed to both manageability and to the host. Specified separate MDEF filter for ARP requests. If ARP requests had been added to MDEF[0] and then MDEF[0] specified in management-to-host configuration then not only would ARP requests be sent to the BMC and host, RMCP traffic (ports 0x26F and 0x298) would have also been sent to both places.

Step 7:

- Enable filtering:

Receive Enable [8D, AABBCCDD, 01020304, 00, 00, 00]

Using the advanced version Receive Enable command, the first parameter:

Receive Enable Control 0x8D:

• Bit 0 [1] – Enable receiving of packets

• Bit 2 [1] – Enable status reporting (such as link lost)

• Bit 3 [1] – Enable automatic ARP responses

• Bit 5:4 [00] – Notification method = SMBus alert

• Bit 7 [1] – Use dedicated MAC

Second parameter is the MAC address (AABBCCDD).

Third parameter is the IP address (01020304).

The last three parameters are zero when the notification method is SMBus Alert.

901

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

Table 10-29 Example 2 MDEF Results

L2 Unicast Address

Broadcast

Manageability VLAN

IP Address

L2 Unicast Address

Broadcast

Multicast

ARP Request

ARP Response

Neighbor Discovery

Port 0x298

Port 0x26F

Flex Port 15:0

Flex TCO 3:0

Filter 0

OR

OR

OR

OR

OR

OR

OR

AND

AND

AND

AND

OR

OR

AND x x

1

Manageability Decision Filter (MDEF)

2 3 4 5 6

x

7

x

902 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

10.5.2.4.3 Example 3 - Dedicated MAC and IP Address

This example provides the BMC with a dedicated MAC and IP address and allows it to receive ARP requests. The BMC is then responsible for responding to ARP requests.

For demonstration purposes, the dedicated MAC address is calculated by reading the system MAC address and adding one to it, assume the system MAC is AABBCCDC. The IP address for this example is1.2.3.4. For this example, the Receive Enable command is used to configure the MAC address filter.

In order for the BMC to be able to receive ARP requests, it needs to specify a filter for this, and that filter needs to be included in the manageability-to-host filtering so that the host operating system can also receive ARP requests.

10.5.2.4.3.1 Example 3 - Pseudo Code

Step 1:

- Disable existing filtering:

Receive Enable[00]

Using the simple form of the Receive Enable command, this prevents any packets from reaching the BMC by disabling filtering:

Receive Enable Control 0x00:

• Bit 0 [0] – Disable receiving of packets

Step 2:

- Read system MAC address:

Get System MAC Address []

Reads the system MAC address. Assume returned AABBCCDC for this example.

Step 3:

- Configure IP address filter:

Update Manageability Filter Parameters [64, 00, 01020304]

Use the Update Manageability Filter Parameters to configure an IPv4 filter.

The 1 st

parameter (0x64) specifies that we are configuring an IPv4 filter.

The 2 nd filter 0.

parameter (0x00) indicates which IPv4 filter is being configured, in this case

The 3 rd

parameter is the IP address – 1.2.3.4.

Step 4:

- Configure MAC address filter:

Update Manageability Filter Parameters [66, 00, AABBCCDD]

Use the Update Manageability Filter Parameters to configure a MAC Address filter.

The 1 st

parameter (0x66) specifies that we are configuring a MAC Address filter.

The 2 nd

parameter (0x00) indicates which MAC address filter is being configured, in this case filter 0.

The 3 rd

parameter is the MAC address - AABBCCDD

331520-004 903

904

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

Step 5:

- Configure manageability filters valid to select the IPv4 [0] and MAC[0]filters:

Step 3 configured one of possibly many IP address filters, this step indicates which of those filters should be used when filtering incoming traffic.

Update Manageability Filter Parameters [60, 00010001]

Use the Update Manageability Filter Parameters to configure the MVFAL register.

The 1 st

parameter (0x60) specifies that we are configuring the MFVAL register.

The 2 nd

parameter (0x00010001) is the new value of the MFVAL register.

MFVAL value of 0x00010000:

• Bit 1 [1] – MAC Address Filter 0

• Bit 16 [1] – IPV4 Filter 0

For more information regarding Manageability Filters Valid, see section

Section 8.2.3.25.5

.

Step 6:

- Configure MDEF[0] for IP and MAC filtering:

Update Manageability Filter Parameters [61, 0, 00000009]

Use the Update Manageability Filter Parameters command to update Decision Filters

(MDEF) (parameter 0x61). This will update MDEF[0], as indicated by the 2 nd

parameter

(0).

MDEF value of 0x00000040:

• Bit 1 [1] - MAC Address Filtering

• Bit 3 [1] – IP Address Filtering

Step 7:

- Configure MDEF[1]:

Update Manageability Filter Parameters [61, 1, 00000080]

Use the Update Manageability Filter Parameters command to update Decision Filters

(MDEF) (parameter 0x61). This will update MDEF[1], as indicated by the 2 nd

parameter

(1).

MDEF value of 00000080:

• Bit 7 [7] – ARP Requests

When filtering ARP requests the requests go into the manageability filtering system and as such need to be designated as also needing to be sent to the host. For this reason a separate MDEF is created with only ARP request filtering enabled.

Step 8:

- Configure the management to host filter:

Update Manageability Filter Parameters [0A, 00000002]

Use the Update Manageability Filter Parameters command to update the Management

Control-to-Host (MANC2H) register.

MANC2H Register 00000002:

• Bit 2 [1] – Enable MDEF[1] traffic to go to the host as well

331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

Step 9:

- Enable filtering:

Receive Enable [05]

Using the simple form of the Receive Enable command,:

Receive Enable Control 0x05:

• Bit 0 [1] – Enable receiving of packets

• Bit 2 [1] – Enable status reporting (such as link lost)

• Bit 5:4 [00] – Notification method = SMBus Alert

The resulting MDEF filters are as follows:

Table 10-30 Example 3 MDEF Results

0

x

1

Manageability Decision Filter (MDEF)

2 3 4 5 6

L2 Unicast Address

Broadcast

Manageability VLAN

IP Address

L2 Unicast Address

Broadcast

Multicast

ARP Request

ARP Response

Neighbor Discovery

Port 0x298

Port 0x26F

Flex Port 15:0

Flex TCO 3:0

Filter

OR

OR

OR

OR

OR

OR

OR

OR

AND

OR

AND

AND

AND

AND x x

7

331520-004 905

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

10.5.2.4.4 Example 4 - Dedicated MAC and VLAN Tag

This example shows an alternate configuration; the BMC has a dedicated MAC and IP address, along with a VLAN tag of 0x32 is required for traffic to be sent to the BMC. This means that all traffic with VLAN a matching tag is sent to the BMC.

For demonstration purposes, the dedicated MAC address is calculated by reading the system MAC address and adding one do it, assume the system MAC is AABBCCDC. The IP address for this example is 1.2.3.4 and the VLAN tag will be 0x0032.

It is assumed the host is not using the same VLAN tag as the BMC. If they were to share the same VLAN tag then additional filtering would need to be configured to allow VLAN tagged non-unicast (such as ARP requests) to be sent to the host as well as the BMC using the manageability-to -host filter capability.

Additionally, the XSUM filtering is enabled.

10.5.2.4.4.1 Example 4 - Pseudo Code

Step 1:

- Disable existing filtering:

Receive Enable[00]

Using the simple form of the Receive Enable command, this prevents any packets from reaching the BMC by disabling filtering:

Receive Enable Control 0x00:

• Bit 0 [0] – Disable receiving of packets

Step 2:

- Read system MAC address:

Get System MAC Address []

Reads the system MAC address. Assume returned AABBCCDC for this example.

Step 3:

- Configure XSUM filter:

Update Manageability Filter Parameters [01, 00800000]

Use the Update Manageability Filter Parameters command to update Filters Enable settings (parameter 1). This set the Manageability Control (MANC) register.

MANC Register 0x00800000:

• Bit 23 [1] – XSUM Filter enable

Note:

Some of the following configuration steps manipulate the MANC register indirectly, this command sets all bits except XSUM to zero. It is important to either do this step before the others, or to read the value of the MANC and then write it back with only bit 32 changed. Also note that the XSUM enable bit can differ between Ethernet controllers, refer to product specific documentation.

Step 4:

- Configure VLAN 0 filter:

Update Manageability Filter Parameters [62, 0, 0032]

Use the Update Manageability Filter Parameters command to configure VLAN filters.

Parameter 0x62 indicates update to VLAN Filter, the 2 nd

parameter indicates which VLAN filter (0 in this case), the last parameter is the VLAN ID (0x0032).

906 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

Step 5:

- Enable VLAN 0 filter:

Update Manageability Filter Parameters [60, 00000100]

The previous step configured a VLAN filter, this step enables it.

Use the Update Manageability Filter Parameters command to enable the VLAN filter

(VLAN filter 0) configured in the previous step, this information is written to the

Manageability Filters Valid (MFVAL) register. See

Section 8.2.3.25.5

for more details about MFVAL.

MFVAL value of 00000100:

• Bit 8 [1] – VLAN Filter 0

Step 6:

- Configure MDEF[0]:

Update Manageability Filter Parameters [61, 0, 00000040]

Use the Update Manageability Filter Parameters command to update Decision Filters

(MDEF) (parameter 0x61). This updates MDEF[0], as indicated by the 2 nd

parameter (0).

MDEF value of 00000040:

• Bit 2 [1] – VLAN AND

Step 7:

- Enable filtering:

Receive Enable [85, AABBCCDD, 01020304, 00, 00, 00]

Using the advanced version Receive Enable command, the first parameter:

Receive Enable Control 0x85:

• Bit 0 [1] b – Enable receiving of packets

• Bit 2 [1] b – Enable status reporting (such as link lost)

• Bit 5:4 [00]b – Notification method = SMBus Alert

• Bit 7 [1]b – Use dedicated MAC

Second parameter is the MAC address: AABBCCDD.

Third parameter is the IP address: 01020304.

The last three parameters are zero when the notification method is SMBus Alert.

331520-004 907

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

Table 10-31 Example 3 MDEF Results

L2 Unicast Address

Broadcast

Manageability VLAN

IP Address

L2 Unicast Address

Broadcast

Multicast

ARP Request

ARP Response

Neighbor Discovery

Port 0x298

Port 0x26F

Flex Port 15:0

Flex TCO 3:0

Filter 0

OR

OR

OR

OR

OR

OR

OR

AND

AND

AND

AND

OR

OR

AND x

1

Manageability Decision Filter (MDEF)

2 3 4 5 6 7

x

908 331520-004

Manageability Programming Interfaces—Intel

®

82599 10 GbE Controller

10.5.2.5 SMBus Troubleshooting and Recommendations

This section outlines the most common issues found while working with pass-through using the SMBus sideband interface.

10.5.2.5.1 SMBus Commands Are Always NACK'd

There are several reasons why all commands sent to the 82599 from a MC could be

NACK'd. The following are most common:

• Invalid NVM Image — The image itself might be invalid or it could be a valid image and is not a pass-through image, as such SMBus connectivity is disabled.

• The MC is not using the correct SMBus address — Many MC vendors hard-code the

SMBus address(es) into their firmware. If the incorrect values are hard-coded, the

82599 does not respond.

• The SMBus address(es) can be dynamically set using the SMBus ARP mechanism.

• Bus Interference — the bus connecting the MC and the 82599 might be unstable, consult the reference schematics for correct pull-up resisters.

10.5.2.5.2 SMBus Clock Speed Is 16.6666 KHz

This can happen when the SMBus connecting the MC and the 82599 is also tied into another device (such as an ICH) that has a maximum clock speed of 16.6666 KHz. The solution is to not connect the SMBus between the 82599 and the MC to this device.

10.5.2.5.3 A Network Based Host Application Is Not Receiving any

Network Packets

Reports have been received about an application not receiving any network packets. The application in question was NFS under Linux. The problem was that the application was using the RMPC/RMCP+ IANA reserved port 0x26F (623) and the system was also configured for a shared MAC and IP address with the operating system and MC.

The management control to host configuration, in this situation, was setup not to send

RMCP traffic to the operating system (this is typically the correct configuration). This means that no traffic sent to port 623 was being routed.

The solution in this case is to configure the problematic application NOT to use the reserved port 0x26F.

10.5.2.5.4 Unable to Transmit Packets from the MC

If the MC has been transmitting and receiving data without issue for a period of time and then begins to receive NACKs from the 82599 when it attempts to write a packet, the problem is most likely due to the fact that the buffers internal to the 82599 are full of data that has been received from the network but has yet to be read by the MC.

Being an embedded device, the 82599 has limited buffers that are shared for receiving and transmitting data. If a MC does not keep the incoming data read, the 82599 can be filled up This prevents the MC form transmitting more data, resulting in NACKs.

331520-004 909

Intel

®

82599 10 GbE Controller—Manageability Programming Interfaces

If this situation occurs, the recommended solution is to have the MC issue a Receive

Enable command to disable more incoming data, read all the data from the 82599, and then use the Receive Enable command to enable incoming data.

10.5.2.5.5 SMBus Fragment Size

The SMBus specification indicates a maximum SMBus transaction size of 32 bytes. Most of the data passed between the 82599 and the MC over the SMBus is RMCP/RMCP+ traffic, which by its very nature (UDP traffic) is significantly larger than 32 bytes in length. Multiple SMBus transactions may therefore be required to move data from the

82599 to the MC or to send a data from the MC to the 82599.

Recognizing this bottleneck, the 82599 handles up to 240 bytes of data in a single transaction. This is a configurable setting in the NVM. The default value in the NVM images is 32, per the SMBus specification. If performance is an issue, increase this size.

10.5.2.5.6 Losing Link

Normal behavior for the Ethernet controller when the system powers down or performs a reset is for the link to temporarily go down and then back up again to re-negotiate the link speed. This behavior can have adverse affects on manageability.

For example if there is an active FTP or Serial Over LAN (SOL) session to the MC, this connection may be lost. In order to avoid this possible situation, the MC can use the

Management Control command detailed in Section 10.5.2.1.5

to ensure the link stays

active at all times.

This command is available when using the NC-SI sideband interface as well.

Care should be taken with this command, if the driver negotiates the maximum link speed, the link speed remains the same when the system powers down or resets. This may have undesirable power consumption consequences. Currently, when using NC-SI, the MC can re-negotiate the link speed. That functionality is not available when using the

SMBus interface.

10.5.2.5.7 Enable XSum Filtering

If XSum filtering is enabled, the MC does not need to perform the task of checking this checksum for incoming packets. Only packets that have a valid XSum is passed to the

MC. All others are silently discarded.

This is a way to offload some work from the MC.

10.5.2.5.8 Still Having Problems?

If problems still exist, contact your field representative. Be prepared to provide the following:

• A SMBus trace if possible

• A dump of the NVM image. This should be taken from the actual 82599, rather than the NVM image provided by Intel. Parts of the NVM image are changed after writing

(such as the physical NVM size).

910 331520-004

advertisement

Related manuals

advertisement

Table of contents