linux/net/sched
Patrick McHardy 572a9d7b6f net: allow to propagate errors through ->ndo_hard_start_xmit()
Currently the ->ndo_hard_start_xmit() callbacks are only permitted to return
one of the NETDEV_TX codes. This prevents any kind of error propagation for
virtual devices, like queue congestion of the underlying device in case of
layered devices, or unreachability in case of tunnels.

This patches changes the NET_XMIT codes to avoid clashes with the NETDEV_TX
codes and changes the two callers of dev_hard_start_xmit() to expect either
errno codes, NET_XMIT codes or NETDEV_TX codes as return value.

In case of qdisc_restart(), all non NETDEV_TX codes are mapped to NETDEV_TX_OK
since no error propagation is possible when using qdiscs. In case of
dev_queue_xmit(), the error is propagated upwards.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-11-13 14:07:32 -08:00
..
act_api.c pkt_sched: gen_estimator: Dont report fake rate estimators 2009-10-07 01:07:42 -07:00
act_gact.c
act_ipt.c
act_mirred.c
act_nat.c
act_pedit.c pkt_sched: pedit use proper struct 2009-10-11 23:03:47 -07:00
act_police.c pkt_sched: Update drops stats in act_police 2009-06-17 18:56:45 -07:00
act_simple.c
act_skbedit.c pkt_sched: skbedit add support for setting mark 2009-10-22 21:56:42 -07:00
cls_api.c net_cls: Use __dev_get_by_index() 2009-11-05 22:34:21 -08:00
cls_basic.c
cls_cgroup.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
cls_flow.c net: skb->dst accessors 2009-06-03 02:51:04 -07:00
cls_fw.c
cls_route.c net: skb->dst accessors 2009-06-03 02:51:04 -07:00
cls_rsvp.c
cls_rsvp.h
cls_rsvp6.c
cls_tcindex.c
cls_u32.c
em_cmp.c
em_meta.c em_meta: avoid one dev_put() 2009-11-04 05:23:31 -08:00
em_nbyte.c
em_text.c
em_u32.c
ematch.c
Kconfig
Makefile net_sched: add classful multiqueue dummy scheduler 2009-09-06 02:07:05 -07:00
sch_api.c net: use rcu for network scheduler API 2009-11-10 22:26:30 -08:00
sch_atm.c net: restore gnet_stats_basic to previous definition 2009-08-17 21:33:49 -07:00
sch_blackhole.c
sch_cbq.c pkt_sched: gen_estimator: Dont report fake rate estimators 2009-10-07 01:07:42 -07:00
sch_drr.c pkt_sched: gen_estimator: Dont report fake rate estimators 2009-10-07 01:07:42 -07:00
sch_dsmark.c
sch_fifo.c net-sched: fix bfifo default limit 2009-05-06 16:45:07 -07:00
sch_generic.c net: allow to propagate errors through ->ndo_hard_start_xmit() 2009-11-13 14:07:32 -08:00
sch_gred.c
sch_hfsc.c pkt_sched: gen_estimator: Dont report fake rate estimators 2009-10-07 01:07:42 -07:00
sch_htb.c pkt_sched: gen_estimator: Dont report fake rate estimators 2009-10-07 01:07:42 -07:00
sch_ingress.c net_sched: make cls_ops->change and cls_ops->delete optional 2009-09-06 02:07:02 -07:00
sch_mq.c pkt_sched: Fix qstats.qlen updating in dump_stats 2009-09-17 10:26:07 -07:00
sch_multiq.c pkt_sched: Fix qstats.qlen updating in dump_stats 2009-09-17 10:26:07 -07:00
sch_netem.c net: sch_netem: Fix an inconsistency in ingress netem timestamps. 2009-04-20 02:14:59 -07:00
sch_prio.c pkt_sched: Fix qstats.qlen updating in dump_stats 2009-09-17 10:26:07 -07:00
sch_red.c net_sched: remove some unnecessary checks in classful schedulers 2009-09-06 02:07:02 -07:00
sch_sfq.c net_sched: make cls_ops->change and cls_ops->delete optional 2009-09-06 02:07:02 -07:00
sch_tbf.c net_sched: remove some unnecessary checks in classful schedulers 2009-09-06 02:07:02 -07:00
sch_teql.c netdev: convert pseudo-devices to netdev_tx_t 2009-09-01 01:13:07 -07:00