/* This function exists only for tap drivers that must support broken *clientsrequestingUFOwithoutspecifyinganIPv6fragmentID. * *Thisissimilartoipv6_select_ident()butweuseanindependenthash *seedtolimitinformationleakage. * *Thenetworkheadermustbesetbeforecallingthis.
*/
__be32 ipv6_proxy_select_ident(struct net *net, struct sk_buff *skb)
{ struct in6_addr buf[2]; struct in6_addr *addrs;
u32 id;
int __ip6_local_out(struct net *net, struct sock *sk, struct sk_buff *skb)
{ int len;
len = skb->len - sizeof(struct ipv6hdr); if (len > IPV6_MAXPLEN)
len = 0;
ipv6_hdr(skb)->payload_len = htons(len);
IP6CB(skb)->nhoff = offsetof(struct ipv6hdr, nexthdr);
/* if egress device is enslaved to an L3 master device pass the *skbtoitshandlerforprocessing
*/
skb = l3mdev_ip6_out(sk, skb); if (unlikely(!skb)) return0;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.