11 Jul, 2012
1 commit
-
Signed-off-by: Ben Hutchings
Signed-off-by: David S. Miller
22 Jun, 2012
1 commit
-
A small regression was introduced in the reply command of
dcbnl_pg_setcfg(). User space apps may be expecting the
DCB_ATTR_PG_CFG attribute to be returned with the patch
below TX or RX variants are returned.commit 7be994138b188387691322921c08e19bddf6d3c5
Author: Thomas Graf
Date: Wed Jun 13 02:54:55 2012 +0000dcbnl: Shorten all command handling functions
This patch reverts this behavior and returns DCB_ATTR_PG_CFG
Signed-off-by: John Fastabend
Acked-by: Thomas Graf
Signed-off-by: David S. Miller
14 Jun, 2012
10 commits
-
Signed-off-by: Thomas Graf
Signed-off-by: David S. Miller -
Signed-off-by: Thomas Graf
Signed-off-by: David S. Miller -
Signed-off-by: Thomas Graf
Signed-off-by: David S. Miller -
Signed-off-by: Thomas Graf
Signed-off-by: David S. Miller -
Signed-off-by: Thomas Graf
Signed-off-by: David S. Miller -
EMSGSIZE - ran out of space while constructing message
EOPNOTSUPP - driver/hardware does not support operation
ENODEV - network device not found
EINVAL - invalid messageSigned-off-by: Thomas Graf
Signed-off-by: David S. Miller -
Signed-off-by: Thomas Graf
Signed-off-by: David S. Miller -
Signed-off-by: Thomas Graf
Signed-off-by: David S. Miller -
Allocating and sending the skb in dcb_doit() allows for much
shorter and cleaner command handling functions.The huge switch statement is replaced with an array based definition
of the handling function and reply message type.Signed-off-by: Thomas Graf
Signed-off-by: David S. Miller -
There is no need to allocate and send the reply message in each
handling function separately. Instead, the reply skb can be allocated
and sent in dcb_doit() directly.Signed-off-by: Thomas Graf
Signed-off-by: David S. Miller
26 Apr, 2012
1 commit
-
This adds code to trigger CEE events when an APP change or setall
command is made from user space. This simplifies user space code
significantly by creating a single interface to listen on that
works with both firmware and userland agents.And if we end up with multiple agents this keeps every thing in
sync userland agents, firmware agents, and kernel notifier consumers.For an example agent that listens for these events see:
https://github.com/jrfastab/cgdcbxd
cgdcbxd is a daemon used to monitor DCB netlink events and manage
the net_prio control group sub-system.Signed-off-by: John Fastabend
Acked-by: Shmulik Ravid
Signed-off-by: David S. Miller
05 Apr, 2012
1 commit
-
Although not specified in 8021Qaz spec, it could be useful to enable drivers
whose HW supports setting a rate limit for an ETS TC. This patch adds this
optional attribute to DCB netlink. To use it, drivers should implement and
register the callbacks ieee_setmaxrate and ieee_getmaxrate. The units are 64
bits long and specified in Kbps to enable usage over both slow and very fast
networks.Signed-off-by: Amir Vadai
Signed-off-by: David S. Miller
02 Apr, 2012
1 commit
-
These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.Signed-off-by: David S. Miller
01 Nov, 2011
2 commits
-
These files are non modular, but need to export symbols using
the macros now living in export.h -- call out the include so
that things won't break when we remove the implicit presence
of module.h from everywhere.Signed-off-by: Paul Gortmaker
-
With calls to modular infrastructure, these files really
needs the full module.h header. Call it out so some of the
cleanups of implicit and unrequired includes elsewhere can be
cleaned up.Signed-off-by: Paul Gortmaker
07 Oct, 2011
2 commits
-
Add DCBX mode to event notifiers so listeners can learn
currently enabled mode.Signed-off-by: John Fastabend
Signed-off-by: David S. Miller -
Use ifindex instead of ifname in the DCB app ring. This makes for a smaller
data structure and faster comparisons. It also avoids possible issues when
a net device is renamed.Signed-off-by: Mark Rustad
Signed-off-by: John Fastabend
Signed-off-by: David S. Miller
09 Jul, 2011
1 commit
-
We need to release "dcb_lock" which we took on the previous line.
Signed-off-by: Dan Carpenter
Signed-off-by: David S. Miller
06 Jul, 2011
2 commits
-
This patch add an unsolicited notification of the DCBX negotiated
parameters for the CEE flavor of the DCBX protocol. The notification
message is identical to the aggregated CEE get operation and holds all
the pertinent local and peer information. The notification routine is
exported so it can be invoked by drivers supporting an embedded DCBX
stack.Signed-off-by: Shmulik Ravid
Signed-off-by: David S. Miller -
The following couple of patches add dcbnl an unsolicited notification of
the the DCB configuration for the CEE flavor of the DCBX protocol. This
is useful when the user-mode DCB client is not responsible for
conducting and resolving the DCBX negotiation (either because the DCBX
stack is embedded in the HW or the negotiation is handled by another
agent in the host), but still needs to get the negotiated parameters.
This functionality already exists for the IEEE flavor of the DCBX
protocol and these patches add it to the older CEE flavor.The first patch extends the CEE attribute GET operation to include not
only the peer information, but also all the pertinent local
configuration (negotiated parameters). The second patch adds and export
a CEE specific notification routine.Signed-off-by: Shmulik Ravid
Signed-off-by: David S. Miller
23 Jun, 2011
1 commit
-
These sk_buff structs were allocated with nlmsg_new() so they should
be freed with nlmsg_free().Signed-off-by: Dan Carpenter
Signed-off-by: David S. Miller
22 Jun, 2011
7 commits
-
Missing error checking before nla_parse_nested().
Reported-by: Mark Rustad
Signed-off-by: John Fastabend
Signed-off-by: David S. Miller -
Incorrect return type on dcb_setapp() this routine
returns negative error codes. All call sites of
dcb_setapp() assign the return value to an int already
so no need to update drivers.Signed-off-by: John Fastabend
Signed-off-by: David S. Miller -
With multiple APP entries per selector and protocol drivers
or stacks may want to pick a specific value or stripe traffic
across many priorities. Also if an APP entry in use is
deleted the stack/driver may want to choose from the existing
APP entries.To facilitate this and avoid having duplicate code to walk
the APP ring provide a routine dcb_ieee_getapp_mask() to
return a u8 bitmask of all priorities set for the specified
selector and protocol. This routine and bitmask is a helper
for DCB kernel users.Signed-off-by: John Fastabend
Signed-off-by: David S. Miller -
Now that we allow multiple IEEE App entries we need a way
to remove specific entries. To do this add the ieee_dcb_delapp()
routine.Additionaly drivers may need to remove the APP entry from
their firmware tables. Add dcb ops routine to handle this.Signed-off-by: John Fastabend
Signed-off-by: David S. Miller -
This adds a setapp routine for IEEE802.1Qaz encoded APP data types.
The IEEE 802.1Qaz spec encodes the priority bits differently and
allows for multiple APP data entries of the same selector and
protocol. Trying to force these to use the same set routines was
becoming tedious. Furthermore, userspace could probably enforce
the correct semantics, but expecting drivers to do this seems
error prone in the firmware case.For these reasons add ieee_dcb_setapp() that understands the
IEEE 802.1Qaz encoded form.Signed-off-by: John Fastabend
Signed-off-by: David S. Miller -
Now that dcbnl is being used in many cases by more
than a single agent it is beneficial to be notified
when some entity either driver or user space has
changed the DCB attributes.Today applications either end up polling the interface
or relying on a user space database to maintain the DCB
state and post events. Polling is a poor solution for
obvious reasons. And relying on a user space database
has its own downside. Namely it has created strange
boot dependencies requiring the database be populated
before any applications dependent on DCB attributes
starts or the application goes into a polling loop.
Populating the database requires negotiating link
setting with the peer and can take anywhere from less
than a second up to a few seconds depending on the switch
implementation.Perhaps more importantly if another application or an
embedded agent sets a DCB link attribute the database
has no way of knowing other than polling the kernel.
This prevents applications from responding quickly to
changes in link events which at least in the FCoE case
and probably any other protocols expecting a lossless
link may result in IO errors.By adding a multicast group for DCB we have clean way
to disseminate kernel DCB link attributes up to user
space. Avoiding the need for user space to maintain
a coherant database and disperse events that potentially
do not reflect the current link state.Signed-off-by: John Fastabend
Signed-off-by: David S. Miller -
Adding the capabilities bitmask to the get_ieee response allows
user space to determine the current DCBX mode. Either CEE or IEEE
this is useful with devices that support switching between modes
where knowing the current state is relevant.Derived from work by Mark Rustad
Signed-off-by: John Fastabend
Signed-off-by: David S. Miller
10 Jun, 2011
1 commit
-
The message size allocated for rtnl ifinfo dumps was limited to
a single page. This is not enough for additional interface info
available with devices that support SR-IOV and caused a bug in
which VF info would not be displayed if more than approximately
40 VFs were created per interface.Implement a new function pointer for the rtnl_register service that will
calculate the amount of data required for the ifinfo dump and allocate
enough data to satisfy the request.Signed-off-by: Greg Rose
Signed-off-by: Jeff Kirsher
15 Mar, 2011
1 commit
-
Signed-off-by: Mark Rustad
Signed-off-by: John Fastabend
Signed-off-by: David S. Miller
04 Mar, 2011
1 commit
-
Conflicts:
drivers/net/bnx2x/bnx2x.h
03 Mar, 2011
3 commits
-
This patch adds the support for retrieving the remote or peer DCBX
configuration via dcbnl for embedded DCBX stacks supporting the CEE DCBX
standard.Signed-off-by: Shmulik Ravid
Signed-off-by: David S. Miller -
These 2 patches add the support for retrieving the remote or peer DCBX
configuration via dcbnl for embedded DCBX stacks. The peer configuration
is part of the DCBX MIB and is useful for debugging and diagnostics of
the overall DCB configuration. The first patch add this support for IEEE
802.1Qaz standard the second patch add the same support for the older
CEE standard. Diff for v2 - the peer-app-info is CEE specific.Signed-off-by: Shmulik Ravid
Signed-off-by: David S. Miller -
The incorrect ops routine was being tested for in
DCB_ATTR_IEEE_PFC attributes. This patch corrects
it.Currently, every driver implementing ieee_setets also
implements ieee_setpfc so this bug is not actualized
yet.Signed-off-by: John Fastabend
Signed-off-by: David S. Miller
14 Feb, 2011
2 commits
-
nla_nest_start() may return NULL. If it does then we'll blow up in
nla_nest_end() when we dereference the pointer.Signed-off-by: Jesper Juhl
Signed-off-by: David S. Miller -
The app_data priority may not be the same for all net devices.
In order for stacks with application notifiers to identify the
specific net device dcb_app_type should be passed in the ptr.This allows handlers to use dev_get_by_name() to pin priority
to net devices.Signed-off-by: John Fastabend
Signed-off-by: David S. Miller
25 Jan, 2011
1 commit
-
The IEEE get/set app handlers use generic routines and do not
require the net_device to implement the dcbnl_ops routines. This
patch makes it symmetric so user space and drivers do not have
to handle the CEE version and IEEE DCBx versions differently.Signed-off-by: John Fastabend
Signed-off-by: David S. Miller
07 Jan, 2011
1 commit
-
The original code has a use after free bug because it's not using the
_safe() version of the list_for_each_entry() macro.Signed-off-by: Dan Carpenter
Signed-off-by: David S. Miller