History

ICMPv6: treat dest unreachable codes 5 and 6 as EACCES, not EPROTO

RFC 4443 has defined two additional codes for ICMPv6 type 1 (destination unreachable) messages: 5 - Source address failed ingress/egress policy 6 - Reject route to destination Now they are treated as protocol error and icmpv6_err_convert() converts them to EPROTO. RFC 4443 says: "Codes 5 and 6 are more informative subsets of code 1." Treat codes 5 and 6 as code 1 (EACCES) Btw, connect() returning -EPROTO confuses firefox, so that fallback to other/IPv4 addresses does not work: https://bugzilla.mozilla.org/show_bug.cgi?id=910773

Jiri Bohac committed 13 years ago

Commit 61e76b11 parent a8787642 files · +11 −1Browse files

Showing the changes to include/uapi/linux (1 of 2 files). Show all

Unified · Split

include/uapi/linux/icmpv6.h+2−0
@@ -115,6 +115,8 @@ struct icmp6hdr { · 114 unmodified lines
115115 #define ICMPV6_NOT_NEIGHBOUR 2
116116 #define ICMPV6_ADDR_UNREACH 3
117117 #define ICMPV6_PORT_UNREACH 4
118+#define ICMPV6_POLICY_FAIL 5
119+#define ICMPV6_REJECT_ROUTE 6
118120
119121 /*
120122 * Codes for Time Exceeded