Linux Kernel
3.7.1
|
Go to the source code of this file.
Data Structures | |
struct | gxio_mpipe_notif_group_bits_t |
struct | gxio_mpipe_rules_stacks_t |
struct | gxio_mpipe_rules_dmac_t |
struct | _gxio_mpipe_link_name_t |
struct | _gxio_mpipe_symbol_name_t |
struct | _gxio_mpipe_link_mac_t |
struct | gxio_mpipe_rules_rule_t |
struct | gxio_mpipe_rules_list_t |
struct | gxio_mpipe_stats_t |
Typedefs | |
typedef MPIPE_LBL_INIT_DAT_BSTS_TBL_t | gxio_mpipe_bucket_info_t |
typedef uint16_t | gxio_mpipe_rules_vlan_t |
#define GXIO_MPIPE_LINK_100M 0x0000000000000002UL |
Link can run, should run, or is running at 100 Mbps.
Definition at line 457 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_10G 0x0000000000000008UL |
Link can run, should run, or is running at 10 Gbps.
Definition at line 463 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_10M 0x0000000000000001UL |
Link can run, should run, or is running at 10 Mbps.
Definition at line 454 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_1G 0x0000000000000004UL |
Link can run, should run, or is running at 1 Gbps.
Definition at line 460 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_20G 0x0000000000000010UL |
Link can run, should run, or is running at 20 Gbps.
Definition at line 466 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_25G 0x0000000000000020UL |
Link can run, should run, or is running at 25 Gbps.
Definition at line 469 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_50G 0x0000000000000040UL |
Link can run, should run, or is running at 50 Gbps.
Definition at line 472 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_ANYSPEED 0x0000000000000800UL |
#define GXIO_MPIPE_LINK_AUTO_DOWN 0x00000800UL |
Do not change the desired state of the link as part of the open operation; when the link is closed or this process exits, if no other process has the link open, set the desired state of the link to down. No more than one of GXIO_MPIPE_LINK_AUTO_UP, GXIO_MPIPE_LINK_AUTO_UPDOWN, GXIO_MPIPE_LINK_AUTO_DOWN, or GXIO_MPIPE_LINK_AUTO_NONE may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_AUTO_UPDOWN is assumed.
Definition at line 335 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_AUTO_NONE 0x00001000UL |
Do not change the desired state of the link as part of the open operation; do not change the desired state of the link when it is closed or the process exits. No more than one of GXIO_MPIPE_LINK_AUTO_UP, GXIO_MPIPE_LINK_AUTO_UPDOWN, GXIO_MPIPE_LINK_AUTO_DOWN, or GXIO_MPIPE_LINK_AUTO_NONE may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_AUTO_UPDOWN is assumed.
Definition at line 345 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_AUTO_UP 0x00000200UL |
Set the desired state of the link to up, allowing any speeds which are supported by the link hardware, as part of this open operation; do not change the desired state of the link when it is closed or the process exits. No more than one of GXIO_MPIPE_LINK_AUTO_UP, GXIO_MPIPE_LINK_AUTO_UPDOWN, GXIO_MPIPE_LINK_AUTO_DOWN, or GXIO_MPIPE_LINK_AUTO_NONE may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_AUTO_UPDOWN is assumed.
Definition at line 314 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_AUTO_UPDOWN 0x00000400UL |
Set the desired state of the link to up, allowing any speeds which are supported by the link hardware, as part of this open operation; when the link is closed or this process exits, if no other process has the link open, set the desired state of the link to down. No more than one of GXIO_MPIPE_LINK_AUTO_UP, GXIO_MPIPE_LINK_AUTO_UPDOWN, GXIO_MPIPE_LINK_AUTO_DOWN, or GXIO_MPIPE_LINK_AUTO_NONE may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_AUTO_UPDOWN is assumed.
Definition at line 325 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_CTL 0x00000040UL |
Request shared control permission – that is, the ability to modify link attributes, and read and write MAC and MDIO registers – on the specified link. Other processes may also request shared control permission on the same link.
No more than one of GXIO_MPIPE_LINK_CTL, GXIO_MPIPE_LINK_NO_CTL, or GXIO_MPIPE_LINK_EXCL_CTL may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_CTL is assumed.
Definition at line 281 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_CURRENT_STATE 0x070000 |
Current link state. The value is a combination of link state flags, ORed together, that indicate the current state of the hardware. If the link is down, the value ANDed with ::GXIO_MPIPE_LINK_SPEED will be zero; if the link is up, the value ANDed with ::GXIO_MPIPE_LINK_SPEED will result in exactly one of the speed values, indicating the current speed. This attribute may only be retrieved with gxio_mpipe_link_get_attr(); it may not be modified.
Definition at line 429 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_DATA 0x00000001UL |
Request shared data permission – that is, the ability to send and receive packets – on the specified link. Other processes may also request shared data permission on the same link.
No more than one of GXIO_MPIPE_LINK_DATA, GXIO_MPIPE_LINK_NO_DATA, or GXIO_MPIPE_LINK_EXCL_DATA may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_DATA is assumed.
Definition at line 214 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_DESIRED_STATE 0x080000 |
Desired link state. The value is a conbination of flags, which specify the desired state for the link. With gxio_mpipe_link_set_attr(), this will, in the background, attempt to bring up the link using whichever of the requested flags are reasonable, or take down the link if the flags are zero. The actual link up or down operation may happen after this call completes. If the link state changes in the future, the system will continue to try to get back to the desired link state; for instance, if the link is brought up successfully, and then the network cable is disconnected, the link will go down. However, the desired state of the link is still up, so if the cable is reconnected, the link will be brought up again.
With gxio_mpipe_link_set_attr(), this will indicate the desired state for the link, as set with a previous gxio_mpipe_link_set_attr() call, or implicitly by a gxio_mpipe_link_open() or link close operation. This may not reflect the current state of the link; to get that, use GXIO_MPIPE_LINK_CURRENT_STATE.
Definition at line 449 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_DISCARD_IF_DOWN 0x050000 |
Determine whether to discard egress packets on link down. If this value is nonzero, packets sent on this link while the link is down will be discarded. If this value is zero, no packets will be sent on this link while it is down. The default value is one.
Definition at line 414 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_EXCL_CTL 0x00000100UL |
Request exclusive control permission – that is, the ability to modify link attributes, and read and write MAC and MDIO registers – on the specified link. No other processes may request control permission on this link, and if any process already has control permission on it, this open will fail.
Requesting exclusive control permission is not always a good idea, since it prevents programs like mpipe-link from configuring the link.
No more than one of GXIO_MPIPE_LINK_CTL, GXIO_MPIPE_LINK_NO_CTL, or GXIO_MPIPE_LINK_EXCL_CTL may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_CTL is assumed.
Definition at line 304 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_EXCL_DATA 0x00000004UL |
Request exclusive data permission – that is, the ability to send and receive packets – on the specified link. No other processes may request data permission on this link, and if any process already has data permission on it, this open will fail.
No more than one of GXIO_MPIPE_LINK_DATA, GXIO_MPIPE_LINK_NO_DATA, or GXIO_MPIPE_LINK_EXCL_DATA may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_DATA is assumed.
Definition at line 233 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_EXCL_STATS 0x00000020UL |
Request exclusive stats permission – that is, the ability to read and write registers which contain link statistics, and to get link attributes – on the specified link. No other processes may request stats permission on this link, and if any process already has stats permission on it, this open will fail.
Requesting exclusive stats permission is normally a very bad idea, since it prevents programs like mpipe-stat from providing information on this link. Applications should only do this if they use MAC statistics registers, and cannot tolerate any of the clear-on-read registers being reset by other statistics programs.
No more than one of GXIO_MPIPE_LINK_STATS, GXIO_MPIPE_LINK_NO_STATS, or GXIO_MPIPE_LINK_EXCL_STATS may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_STATS is assumed.
Definition at line 270 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_FDX 0x0000000000010000UL |
Link can run, should run, or is running in full-duplex mode. If neither GXIO_MPIPE_LINK_FDX nor GXIO_MPIPE_LINK_HDX are specified in a set of desired state flags, both are assumed.
Definition at line 510 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_HDX 0x0000000000020000UL |
Link can run, should run, or is running in half-duplex mode. If neither GXIO_MPIPE_LINK_FDX nor GXIO_MPIPE_LINK_HDX are specified in a set of desired state flags, both are assumed.
Definition at line 515 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_LOOP_EXT 0x0000000000004000UL |
Link can run, should run, or is running in external loopback mode. This requires that an external loopback plug be installed on the Ethernet port. Note that only some links require that this be configured via the gxio_mpipe_link routines; other links can do external loopack with the plug and no special configuration.
Definition at line 502 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_LOOP_MAC 0x0000000000001000UL |
Link can run, should run, or is running in MAC loopback mode. This loops transmitted packets back to the receiver, inside the Tile Processor.
Definition at line 490 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_LOOP_MASK 0x000000000000F000UL |
All legal loopback types.
Definition at line 505 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_LOOP_PHY 0x0000000000002000UL |
#define GXIO_MPIPE_LINK_MAC 0x040000 |
Interface MAC address. The value is a 6-byte MAC address, in the least significant 48 bits of the value; in other words, an address which would be printed as '12:34:56:78:90:AB' in IEEE 802 canonical format would be returned as 0x12345678ab.
Depending upon the overall system design, a MAC address may or may not be available for each interface. Note that the interface's MAC address does not limit the packets received on its channel, although the classifier's rules could be configured to do that. Similarly, the MAC address is not used when transmitting packets, although applications could certainly decide to use the assigned address as a source MAC address when doing so. This attribute may only be retrieved with gxio_mpipe_link_get_attr(); it may not be modified.
Definition at line 408 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_NAME_LEN 32 |
Maximum number of characters in a link name.
Definition at line 168 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_NO_CTL 0x00000080UL |
Do not request control permission on the specified link.
No more than one of GXIO_MPIPE_LINK_CTL, GXIO_MPIPE_LINK_NO_CTL, or GXIO_MPIPE_LINK_EXCL_CTL may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_CTL is assumed.
Definition at line 289 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_NO_DATA 0x00000002UL |
Do not request data permission on the specified link.
No more than one of GXIO_MPIPE_LINK_DATA, GXIO_MPIPE_LINK_NO_DATA, or GXIO_MPIPE_LINK_EXCL_DATA may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_DATA is assumed.
Definition at line 222 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_NO_STATS 0x00000010UL |
Do not request stats permission on the specified link.
No more than one of GXIO_MPIPE_LINK_STATS, GXIO_MPIPE_LINK_NO_STATS, or GXIO_MPIPE_LINK_EXCL_STATS may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_STATS is assumed.
Definition at line 252 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_POSSIBLE_STATE 0x060000 |
Possible link state. The value is a combination of link state flags, ORed together, that indicate link modes which are actually supported by the hardware. This attribute may only be retrieved with gxio_mpipe_link_get_attr(); it may not be modified.
Definition at line 420 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_RECEIVE_JUMBO 0x010000 |
#define GXIO_MPIPE_LINK_RECEIVE_PAUSE 0x030000 |
Determine whether to suspend output on the receipt of pause frames. If the value is nonzero, mPIPE shim will suspend output on the link's channel when a pause frame is received. If the value is zero, pause frames will be ignored. The default value is zero.
Definition at line 392 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_SEND_PAUSE 0x020000 |
Determine whether to send pause frames on this link if the mPIPE packet FIFO is nearly full. If the value is zero, pause frames are not sent. If the value is nonzero, it is the delay value which will be sent in any pause frames which are output, in units of 512 bit times.
Bear in mind that in almost all circumstances, the mPIPE packet FIFO will never fill up, since mPIPE will empty it as fast as or faster than the incoming data rate, by either delivering or dropping packets. The only situation in which this is not true is if the memory and cache subsystem is extremely heavily loaded, and mPIPE cannot perform DMA of packet data to memory in a timely fashion. In particular, pause frames will not be sent if packets cannot be delivered because NotifRings are full, buckets are full, or buffers are not available in a buffer stack.
Definition at line 386 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_SPEED_MASK 0x0000000000000FFFUL |
All legal link speeds. This value is provided for use in extracting the speed-related subset of the link state flags; it is not intended to be set directly as a value for one of the GXIO_MPIPE_LINK_xxx_STATE attributes. A link is up or is requested to be up if its current or desired state, respectively, ANDED with this value, is nonzero.
Definition at line 485 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_STATS 0x00000008UL |
Request shared stats permission – that is, the ability to read and write registers which contain link statistics, and to get link attributes – on the specified link. Other processes may also request shared stats permission on the same link.
No more than one of GXIO_MPIPE_LINK_STATS, GXIO_MPIPE_LINK_NO_STATS, or GXIO_MPIPE_LINK_EXCL_STATS may be specifed in a gxio_mpipe_link_open() call. If none are specified, GXIO_MPIPE_LINK_STATS is assumed.
Definition at line 244 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_LINK_WAIT 0x00002000UL |
Request that this open call not complete until the network link is up. The process will wait as long as necessary for this to happen; applications which wish to abandon waiting for the link after a specific time period should not specify this flag when opening a link, but should instead call gxio_mpipe_link_wait() afterward. The link must be opened with stats permission. Note that this flag by itself does not change the desired link state; if other open flags or previous link state changes have not requested a desired state of up, the open call will never complete. This flag is not available to kernel clients.
Definition at line 358 of file drv_mpipe_intf.h.
#define GXIO_MPIPE_SYMBOL_NAME_LEN 128 |
Maximum number of characters in a symbol name.
Definition at line 182 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_BUFFER_STACKS_BITS MPIPE_MMIO_INIT_DAT_GX36_1__BUFFER_STACK_MASK_WIDTH |
Number of buffer stack chunks available (32).
Definition at line 80 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_BUFFER_STACKS_RES_PER_BIT (HV_MPIPE_NUM_BUFFER_STACKS / HV_MPIPE_ALLOC_BUFFER_STACKS_BITS) |
Granularity of buffer stack allocation (1).
Definition at line 84 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_EDMA_RINGS_BITS MPIPE_MMIO_INIT_DAT_GX36_1__EDMA_POST_MASK_WIDTH |
Number of eDMA ring chunks available (24).
Definition at line 120 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_EDMA_RINGS_RES_PER_BIT (HV_MPIPE_NUM_EDMA_RINGS / HV_MPIPE_ALLOC_EDMA_RINGS_BITS) |
Granularity of eDMA ring allocation (1).
Definition at line 124 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_FIXED 0x01 |
A flag bit indicating a fixed resource allocation.
Definition at line 54 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_HI_BUCKETS_BITS MPIPE_MMIO_INIT_DAT_GX36_0__BUCKET_RELEASE_MASK_HI_WIDTH |
Number of hi bucket chunks available (16).
Definition at line 112 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_HI_BUCKETS_RES_PER_BIT (HV_MPIPE_NUM_HI_BUCKETS / HV_MPIPE_ALLOC_HI_BUCKETS_BITS) |
Granularity of hi bucket allocation (4).
Definition at line 116 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_LO_BUCKETS_BITS MPIPE_MMIO_INIT_DAT_GX36_0__BUCKET_RELEASE_MASK_LO_WIDTH |
Number of lo bucket chunks available (16).
Definition at line 104 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_LO_BUCKETS_RES_PER_BIT (HV_MPIPE_NUM_LO_BUCKETS / HV_MPIPE_ALLOC_LO_BUCKETS_BITS) |
Granularity of lo bucket allocation (256).
Definition at line 108 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_NOTIF_GROUPS_BITS HV_MPIPE_NUM_NOTIF_GROUPS |
Number of NotifGroup chunks available (32).
Definition at line 96 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_NOTIF_GROUPS_RES_PER_BIT (HV_MPIPE_NUM_NOTIF_GROUPS / HV_MPIPE_ALLOC_NOTIF_GROUPS_BITS) |
Granularity of NotifGroup allocation (1).
Definition at line 100 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_NOTIF_RINGS_BITS MPIPE_MMIO_INIT_DAT_GX36_0__NOTIF_RING_MASK_WIDTH |
Number of NotifRing chunks available (32).
Definition at line 88 of file drv_mpipe_intf.h.
#define HV_MPIPE_ALLOC_NOTIF_RINGS_RES_PER_BIT (HV_MPIPE_NUM_NOTIF_RINGS / HV_MPIPE_ALLOC_NOTIF_RINGS_BITS) |
Granularity of NotifRing allocation (8).
Definition at line 92 of file drv_mpipe_intf.h.
#define HV_MPIPE_CONFIG_MMIO_OFFSET (MPIPE_MMIO_ADDR__REGION_VAL_CFG << MPIPE_MMIO_ADDR__REGION_SHIFT) |
Offset for the config register MMIO region.
Definition at line 57 of file drv_mpipe_intf.h.
#define HV_MPIPE_CONFIG_MMIO_SIZE (64 * 1024) |
Size of the config register MMIO region.
Definition at line 61 of file drv_mpipe_intf.h.
#define HV_MPIPE_FAST_MMIO_OFFSET (MPIPE_MMIO_ADDR__REGION_VAL_IDMA << MPIPE_MMIO_ADDR__REGION_SHIFT) |
Offset for the config register MMIO region.
Definition at line 64 of file drv_mpipe_intf.h.
#define HV_MPIPE_FAST_MMIO_SIZE |
Size of the fast register MMIO region (IDMA, EDMA, buffer stack).
Definition at line 68 of file drv_mpipe_intf.h.
#define HV_MPIPE_NUM_BUCKETS (MPIPE_NUM_BUCKETS) |
Number of buckets (4160).
Definition at line 37 of file drv_mpipe_intf.h.
#define HV_MPIPE_NUM_BUFFER_STACKS (MPIPE_MMIO_INIT_DAT_GX36_1__BUFFER_STACK_MASK_WIDTH) |
Interface definitions for the mpipe driver.Number of buffer stacks (32).
Definition at line 27 of file drv_mpipe_intf.h.
#define HV_MPIPE_NUM_EDMA_RINGS (MPIPE_MMIO_INIT_DAT_GX36_1__EDMA_POST_MASK_WIDTH) |
Number of edma rings (24).
Definition at line 47 of file drv_mpipe_intf.h.
#define HV_MPIPE_NUM_HI_BUCKETS (HV_MPIPE_NUM_BUCKETS - HV_MPIPE_NUM_LO_BUCKETS) |
Number of "hi" buckets (64).
Definition at line 43 of file drv_mpipe_intf.h.
#define HV_MPIPE_NUM_LO_BUCKETS 4096 |
Number of "lo" buckets (4096).
Definition at line 40 of file drv_mpipe_intf.h.
#define HV_MPIPE_NUM_NOTIF_GROUPS (MPIPE_NUM_NOTIF_GROUPS) |
Number of NotifGroups (32).
Definition at line 34 of file drv_mpipe_intf.h.
#define HV_MPIPE_NUM_NOTIF_RINGS (MPIPE_NUM_NOTIF_RINGS) |
Number of NotifRings (256).
Definition at line 31 of file drv_mpipe_intf.h.
Another name for MPIPE_LBL_INIT_DAT_BSTS_TBL_t.
Definition at line 140 of file drv_mpipe_intf.h.
typedef uint16_t gxio_mpipe_rules_vlan_t |
A vlan.
Definition at line 163 of file drv_mpipe_intf.h.