[BACK]Return to ip6_output.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / netinet6

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/netinet6/ip6_output.c between version 1.211 and 1.212

version 1.211, 2018/06/01 08:56:00 version 1.212, 2018/08/10 06:46:09
Line 302  ip6_output(
Line 302  ip6_output(
   
         if (needipsec &&          if (needipsec &&
             (m->m_pkthdr.csum_flags & (M_CSUM_UDPv6|M_CSUM_TCPv6)) != 0) {              (m->m_pkthdr.csum_flags & (M_CSUM_UDPv6|M_CSUM_TCPv6)) != 0) {
                 in6_delayed_cksum(m);                  in6_undefer_cksum_tcpudp(m);
                 m->m_pkthdr.csum_flags &= ~(M_CSUM_UDPv6|M_CSUM_TCPv6);                  m->m_pkthdr.csum_flags &= ~(M_CSUM_UDPv6|M_CSUM_TCPv6);
         }          }
   
Line 836  ip6_output(
Line 836  ip6_output(
                 if ((sw_csum & (M_CSUM_UDPv6|M_CSUM_TCPv6)) != 0) {                  if ((sw_csum & (M_CSUM_UDPv6|M_CSUM_TCPv6)) != 0) {
                         if (IN6_NEED_CHECKSUM(ifp,                          if (IN6_NEED_CHECKSUM(ifp,
                             sw_csum & (M_CSUM_UDPv6|M_CSUM_TCPv6))) {                              sw_csum & (M_CSUM_UDPv6|M_CSUM_TCPv6))) {
                                 in6_delayed_cksum(m);                                  in6_undefer_cksum_tcpudp(m);
                         }                          }
                         m->m_pkthdr.csum_flags &= ~(M_CSUM_UDPv6|M_CSUM_TCPv6);                          m->m_pkthdr.csum_flags &= ~(M_CSUM_UDPv6|M_CSUM_TCPv6);
                 }                  }
Line 914  ip6_output(
Line 914  ip6_output(
                         if (IN6_NEED_CHECKSUM(ifp,                          if (IN6_NEED_CHECKSUM(ifp,
                             m->m_pkthdr.csum_flags &                              m->m_pkthdr.csum_flags &
                             (M_CSUM_UDPv6|M_CSUM_TCPv6))) {                              (M_CSUM_UDPv6|M_CSUM_TCPv6))) {
                                 in6_delayed_cksum(m);                                  in6_undefer_cksum_tcpudp(m);
                         }                          }
                         m->m_pkthdr.csum_flags &= ~(M_CSUM_UDPv6|M_CSUM_TCPv6);                          m->m_pkthdr.csum_flags &= ~(M_CSUM_UDPv6|M_CSUM_TCPv6);
                 }                  }
Line 1072  ip6_copyexthdr(struct mbuf **mp, void *h
Line 1072  ip6_copyexthdr(struct mbuf **mp, void *h
 }  }
   
 /*  /*
  * Process a delayed payload checksum calculation.  
  */  
 void  
 in6_delayed_cksum(struct mbuf *m)  
 {  
         uint16_t csum, offset;  
   
         KASSERT((m->m_pkthdr.csum_flags & (M_CSUM_UDPv6|M_CSUM_TCPv6)) != 0);  
         KASSERT((~m->m_pkthdr.csum_flags & (M_CSUM_UDPv6|M_CSUM_TCPv6)) != 0);  
         KASSERT((m->m_pkthdr.csum_flags  
             & (M_CSUM_UDPv4|M_CSUM_TCPv4|M_CSUM_TSOv4)) == 0);  
   
         offset = M_CSUM_DATA_IPv6_IPHL(m->m_pkthdr.csum_data);  
         csum = in6_cksum(m, 0, offset, m->m_pkthdr.len - offset);  
         if (csum == 0 && (m->m_pkthdr.csum_flags & M_CSUM_UDPv6) != 0) {  
                 csum = 0xffff;  
         }  
   
         offset += M_CSUM_DATA_IPv6_OFFSET(m->m_pkthdr.csum_data);  
         if ((offset + sizeof(csum)) > m->m_len) {  
                 m_copyback(m, offset, sizeof(csum), &csum);  
         } else {  
                 *(uint16_t *)(mtod(m, char *) + offset) = csum;  
         }  
 }  
   
 /*  
  * Insert jumbo payload option.   * Insert jumbo payload option.
  */   */
 static int  static int

Legend:
Removed from v.1.211  
changed lines
  Added in v.1.212

CVSweb <webmaster@jp.NetBSD.org>