Hi,
I'm writing a test app to send ICMPv6 packets.
When I try to set the IPV6_DONTFRAG socket option, I get the error "operation not permitted" (EPERM).
I am able to set the IPV6_DONTFRAG socket option on UDP sockets running IPv6. I am also able to set the IP_DONTFRAG socket option on ICMPv4 sockets.
To summarize:
Another example, if the following command, I get that output
If I run
the pings start to be sent, but according to a packet capture, they are fragmented. It seems like the socket option is not set/not followed?
Thanks
I'm writing a test app to send ICMPv6 packets.
When I try to set the IPV6_DONTFRAG socket option, I get the error "operation not permitted" (EPERM).
I am able to set the IPV6_DONTFRAG socket option on UDP sockets running IPv6. I am also able to set the IP_DONTFRAG socket option on ICMPv4 sockets.
To summarize:
UDP - IPV4, don't fragment option can be set
UDP - IPV6, don't fragment option can be set
ICMP - IPV4, don't fragment option can be set
ICMP - IPV6, don't fragment option can't be set
Another example, if the following command, I get that output
Code Block language ~ % ping6 -D www.google.com ping6: IPV6_DONTFRAG: Operation not permitted
If I run
Code Block language sudo ping6 -D -s 1600 www.google.com
the pings start to be sent, but according to a packet capture, they are fragmented. It seems like the socket option is not set/not followed?
Thanks