+=item B<PING_OPT_SOURCE>
+
+Set the source address to use. The value passed must be a char-pointer to a
+null-terminated string specifying either a numerical network address or
+network hostname. This option will ignore the address family setting (as
+set with B<PING_OPT_AF>) and will set the object's address family according to
+the source address assigned.
+
+=item B<PING_OPT_DEVICE>
+
+Set the outgoing network device to be used. The value passed must be a
+char-pointer to a null-terminated string specifying an interface name
+(e.E<nbsp>g. C<eth0>). Please note that this might not be supported by all
+operating systems. In that case, B<ping_setopt> sets the error to
+C<operation not supported>.
+
+=item B<PING_OPT_QOS>
+
+Sets the I<Quality of Service> flags that should be used when crafting ICMP and
+ICMPv6 packets. The memory pointed to by I<val> is interpreted as a C<uint8_t>.
+The byte is passed to L<setsockopt(2)> without modification, using the
+C<IP_TOS> (IPv4) or C<IPV6_TCLASS> (IPv6) option. It is the caller's
+responsibility to chose a valid bit combination. For details, read the L<ip(7)>
+and L<ipv6(7)> manual pages, as well as I<RFCE<nbsp>2474>.
+
+=item B<PING_OPT_MARK>
+
+Mark (as in netfilter) outgoing packets using the SO_MARK socket option. Takes
+an int* pointer as a value. Setting this requires CAP_NET_ADMIN under Linux.
+Fails with C<operation not supported> on platforms which don't have SO_MARK.
+