linux/Documentation/networking
Jacob Keller 5d5b4128c4 devlink: introduce flash update overwrite mask
Sections of device flash may contain settings or device identifying
information. When performing a flash update, it is generally expected
that these settings and identifiers are not overwritten.

However, it may sometimes be useful to allow overwriting these fields
when performing a flash update. Some examples include, 1) customizing
the initial device config on first programming, such as overwriting
default device identifying information, or 2) reverting a device
configuration to known good state provided in the new firmware image, or
3) in case it is suspected that current firmware logic for managing the
preservation of fields during an update is broken.

Although some devices are able to completely separate these types of
settings and fields into separate components, this is not true for all
hardware.

To support controlling this behavior, a new
DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK is defined. This is an
nla_bitfield32 which will define what subset of fields in a component
should be overwritten during an update.

If no bits are specified, or of the overwrite mask is not provided, then
an update should not overwrite anything, and should maintain the
settings and identifiers as they are in the previous image.

If the overwrite mask has the DEVLINK_FLASH_OVERWRITE_SETTINGS bit set,
then the device should be configured to overwrite any of the settings in
the requested component with settings found in the provided image.

Similarly, if the DEVLINK_FLASH_OVERWRITE_IDENTIFIERS bit is set, the
device should be configured to overwrite any device identifiers in the
requested component with the identifiers from the image.

Multiple overwrite modes may be combined to indicate that a combination
of the set of fields that should be overwritten.

Drivers which support the new overwrite mask must set the
DEVLINK_SUPPORT_FLASH_UPDATE_OVERWRITE_MASK in the
supported_flash_update_params field of their devlink_ops.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-09-25 17:20:57 -07:00
..
caif docs: networking: convert caif files to ReST 2020-04-28 14:38:38 -07:00
device_drivers net: ena: update ena documentation 2020-09-21 13:54:23 -07:00
devlink devlink: introduce flash update overwrite mask 2020-09-25 17:20:57 -07:00
dsa doc: net: dsa: Fix typo in config code sample 2020-09-03 10:38:22 -07:00
mac80211_hwsim docs: net: convert two README files to ReST format 2019-07-31 13:31:56 -06:00
6lowpan.rst docs: networking: convert 6lowpan.txt to ReST 2020-02-28 14:52:36 +01:00
6pack.rst docs: networking: convert 6pack.txt to ReST 2020-04-28 14:38:38 -07:00
af_xdp.rst xsk: Documentation for XDP_SHARED_UMEM between queues and netdevs 2020-08-31 21:18:00 +02:00
alias.rst docs: networking: Convert alias.txt to rst 2018-07-18 15:28:27 -07:00
arcnet-hardware.rst docs: networking: arcnet-hardware.rst: don't duplicate chapter names 2020-05-01 12:24:43 -07:00
arcnet.rst Documentation: networking: arcnet: drop doubled word 2020-07-04 17:46:21 -07:00
atm.rst docs: networking: convert atm.txt to ReST 2020-04-28 14:38:38 -07:00
ax25.rst Documentation: networking: ax25: drop doubled word 2020-07-04 17:46:21 -07:00
bareudp.rst Documentation: bareudp: Corrected description of bareudp module. 2020-07-28 17:53:03 -07:00
batman-adv.rst batman-adv: Fix typos and grammar in documentation 2020-06-26 10:36:30 +02:00
bonding.rst docs: networking: bonding.rst resources section cleanup 2020-08-14 16:44:20 -07:00
bridge.rst docs: networking: Convert bridge.txt to rst 2018-07-18 15:28:27 -07:00
can_ucan_protocol.rst Documentation: networking: can_ucan_protocol: drop doubled words 2020-07-04 17:46:21 -07:00
can.rst docs: networking: convert netdevices.txt to ReST 2020-04-30 12:56:36 -07:00
cdc_mbim.rst docs: networking: convert cdc_mbim.txt to ReST 2020-04-28 14:38:39 -07:00
checksum-offloads.rst docs: networking: convert netdev-features.txt to ReST 2020-04-30 12:56:36 -07:00
dccp.rst net: dccp: Add SIOCOUTQ IOCTL support (send buffer fill) 2020-07-22 17:00:37 -07:00
dctcp.rst docs: networking: convert dctcp.txt to ReST 2020-04-28 14:38:39 -07:00
decnet.rst docs: networking: convert decnet.txt to ReST 2020-04-28 14:39:45 -07:00
dns_resolver.rst docs: networking: convert dns_resolver.txt to ReST 2020-04-28 14:39:46 -07:00
driver.rst docs: networking: convert driver.txt to ReST 2020-04-28 14:39:46 -07:00
eql.rst docs: networking: convert eql.txt to ReST 2020-04-28 14:39:46 -07:00
ethtool-netlink.rst Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-22 16:45:34 -07:00
failover.rst net: Introduce generic failover module 2018-05-28 22:59:54 -04:00
fib_trie.rst docs: networking: convert fib_trie.txt to ReST 2020-04-28 14:39:46 -07:00
filter.rst Documentation/bpf: Use valid and new links in index.rst 2020-07-31 18:17:51 +02:00
framerelay.rst docs: networking: convert framerelay.txt to ReST 2020-04-28 14:39:46 -07:00
gen_stats.rst docs: networking: convert gen_stats.txt to ReST 2020-04-28 14:39:46 -07:00
generic_netlink.rst docs: networking: convert generic_netlink.txt to ReST 2020-04-28 14:39:46 -07:00
generic-hdlc.rst docs: networking: convert generic-hdlc.txt to ReST 2020-04-28 14:39:46 -07:00
gtp.rst docs: networking: convert gtp.txt to ReST 2020-04-28 14:39:46 -07:00
ieee802154.rst docs: net: ieee802154: change link to new project URL 2020-06-19 22:08:09 +02:00
ila.rst docs: networking: convert ila.txt to ReST 2020-04-28 14:39:47 -07:00
index.rst net: tighten the definition of interface statistics 2020-09-07 15:08:05 -07:00
ip_dynaddr.rst docs: networking: convert ip_dynaddr.txt to ReST 2020-04-28 14:39:47 -07:00
ip-sysctl.rst Documentation: networking: ip-sysctl: drop doubled word 2020-07-04 17:46:21 -07:00
ipddp.rst docs: networking: convert ipddp.txt to ReST 2020-04-28 14:39:47 -07:00
ipsec.rst docs: networking: convert ipsec.txt to ReST 2020-04-28 14:39:47 -07:00
ipv6.rst docs: networking: convert ipv6.txt to ReST 2020-04-28 14:40:18 -07:00
ipvlan.rst docs: networking: convert ipvlan.txt to ReST 2020-04-28 14:40:18 -07:00
ipvs-sysctl.rst Documentation: networking: ipvs-sysctl: drop doubled word 2020-07-04 17:46:21 -07:00
j1939.rst can: j1939: fix address claim code example 2019-12-08 11:52:02 +01:00
kapi.rst net: phy: Document core PHY structures 2020-09-23 18:02:49 -07:00
kcm.rst docs: networking: convert kcm.txt to ReST 2020-04-28 14:40:19 -07:00
l2tp.rst docs: networking: add tracepoint info to l2tp.rst 2020-08-22 12:44:37 -07:00
lapb-module.rst docs: networking: convert lapb-module.txt to ReST 2020-04-30 12:56:35 -07:00
mac80211-auth-assoc-deauth.txt
mac80211-injection.rst doc: networking: wireless: fix wiki website url 2020-06-08 10:05:53 +02:00
mpls-sysctl.rst docs: networking: convert mpls-sysctl.txt to ReST 2020-04-30 12:56:36 -07:00
msg_zerocopy.rst doc: fix link to MSG_ZEROCOPY patchset 2019-03-18 09:50:21 -07:00
multiqueue.rst docs: networking: convert multiqueue.txt to ReST 2020-04-30 12:56:36 -07:00
net_dim.rst docs: networking: add full DIM API 2020-04-10 18:11:04 -07:00
net_failover.rst docs: networking: net_failover: Fix a few typos 2020-03-03 16:07:02 -08:00
netconsole.rst docs: networking: convert netconsole.txt to ReST 2020-04-30 12:56:36 -07:00
netdev-FAQ.rst doc/net: Update git https URLs in netdev-FAQ documentation 2020-01-03 12:33:54 -08:00
netdev-features.rst docs: networking: convert netdev-features.txt to ReST 2020-04-30 12:56:36 -07:00
netdevices.rst docs: networking: convert netdevices.txt to ReST 2020-04-30 12:56:36 -07:00
netfilter-sysctl.rst docs: networking: convert netfilter-sysctl.txt to ReST 2020-04-30 12:56:36 -07:00
netif-msg.rst docs: networking: convert netif-msg.txt to ReST 2020-04-30 12:56:36 -07:00
nf_conntrack-sysctl.rst docs: networking: convert nf_conntrack-sysctl.txt to ReST 2020-04-30 12:56:36 -07:00
nf_flowtable.rst docs: networking: convert nf_flowtable.txt to ReST 2020-04-30 12:56:36 -07:00
nfc.rst docs: networking: nfc: change to rst format 2019-11-23 11:00:19 -08:00
openvswitch.rst docs: networking: convert openvswitch.txt to ReST 2020-04-30 12:56:36 -07:00
operstates.rst docs: networking: convert operstates.txt to ReST 2020-04-30 12:56:37 -07:00
packet_mmap.rst docs: networking: convert timestamping.txt to ReST 2020-04-30 12:56:38 -07:00
page_pool.rst net: page_pool: Add documentation on page_pool API 2020-02-21 08:13:30 -08:00
phonet.rst docs: networking: convert phonet.txt to ReST 2020-04-30 12:56:37 -07:00
phy.rst docs: networking: phy: Rephrase paragraph for clarity 2020-02-23 20:42:47 -08:00
pktgen.rst docs: networking: convert pktgen.txt to ReST 2020-04-30 12:56:37 -07:00
plip.rst docs: networking: convert PLIP.txt to ReST 2020-04-30 12:56:37 -07:00
ppp_generic.rst docs: networking: convert ppp_generic.txt to ReST 2020-04-30 12:56:37 -07:00
proc_net_tcp.rst docs: networking: convert proc_net_tcp.txt to ReST 2020-04-30 12:56:37 -07:00
radiotap-headers.rst docs: networking: convert radiotap-headers.txt to ReST 2020-04-30 12:56:37 -07:00
rds.rst docs: networking: convert rds.txt to ReST 2020-04-30 12:56:37 -07:00
regulatory.rst doc: networking: wireless: fix wiki website url 2020-06-08 10:05:53 +02:00
rxrpc.rst Documentation: networking: rxrpc: drop doubled word 2020-07-04 17:46:21 -07:00
scaling.rst docs: add IRQ documentation at the core-api book 2020-05-15 12:00:56 -06:00
sctp.rst docs: networking: convert sctp.txt to ReST 2020-04-30 12:56:38 -07:00
secid.rst docs: networking: convert secid.txt to ReST 2020-04-30 12:56:38 -07:00
seg6-sysctl.rst docs: networking: convert seg6-sysctl.txt to ReST 2020-04-30 12:56:38 -07:00
segmentation-offloads.rst networking: : fix typos in code comments 2019-05-20 20:24:34 -04:00
sfp-phylink.rst doc: sfp-phylink: correct code indentation 2020-03-03 15:33:55 -08:00
snmp_counter.rst docs: networking: convert ip-sysctl.txt to ReST 2020-04-28 14:40:18 -07:00
statistics.rst docs: net: include the new ethtool pause stats in the stats doc 2020-09-15 13:26:28 -07:00
strparser.rst docs: networking: convert strparser.txt to ReST 2020-04-30 12:56:38 -07:00
switchdev.rst docs: networking: convert switchdev.txt to ReST 2020-04-30 12:56:38 -07:00
tc-actions-env-rules.rst docs: networking: convert tc-actions-env-rules.txt to ReST 2020-04-30 12:56:38 -07:00
tcp-thin.rst docs: networking: convert tcp-thin.txt to ReST 2020-04-30 12:56:38 -07:00
team.rst docs: networking: convert team.txt to ReST 2020-04-30 12:56:38 -07:00
timestamping.rst docs: networking: timestamping: add section for stacked PHC devices 2020-07-15 17:51:30 -07:00
tls-offload-layers.svg Documentation: add TLS offload documentation 2019-05-22 12:18:20 -07:00
tls-offload-reorder-bad.svg Documentation: add TLS offload documentation 2019-05-22 12:18:20 -07:00
tls-offload-reorder-good.svg Documentation: add TLS offload documentation 2019-05-22 12:18:20 -07:00
tls-offload.rst net/mlx5e: kTLS, Add kTLS RX stats 2020-06-27 14:00:23 -07:00
tls.rst net/tls: add TlsDeviceRxResync statistic 2019-10-05 16:29:00 -07:00
tproxy.rst docs: networking: convert tproxy.txt to ReST 2020-04-30 12:56:38 -07:00
tuntap.rst docs: networking: convert tuntap.txt to ReST 2020-05-01 12:24:40 -07:00
udplite.rst docs: networking: convert udplite.txt to ReST 2020-05-01 12:24:40 -07:00
vrf.rst docs: networking: convert vrf.txt to ReST 2020-05-01 12:24:40 -07:00
vxlan.rst docs: networking: convert vxlan.txt to ReST 2020-05-01 12:24:40 -07:00
x25-iface.rst docs: networking: convert x25-iface.txt to ReST 2020-05-01 12:24:40 -07:00
x25.rst docs: networking: convert x25.txt to ReST 2020-05-01 12:24:40 -07:00
xfrm_device.rst docs: networking: convert xfrm_device.txt to ReST 2020-05-01 12:24:40 -07:00
xfrm_proc.rst docs: networking: convert xfrm_proc.txt to ReST 2020-05-01 12:24:40 -07:00
xfrm_sync.rst docs: networking: convert xfrm_sync.txt to ReST 2020-05-01 12:24:41 -07:00
xfrm_sysctl.rst docs: networking: convert xfrm_sysctl.txt to ReST 2020-05-01 12:24:41 -07:00