static int ixgbe_set_tx_csum(struct net_device *netdev, u32 data)
 {
-       if (data)
+       struct ixgbe_adapter *adapter = netdev_priv(netdev);
+
+       if (data) {
                netdev->features |= (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM);
-       else
+               if (adapter->hw.mac.type == ixgbe_mac_82599EB)
+                       netdev->features |= NETIF_F_SCTP_CSUM;
+       } else {
                netdev->features &= ~(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM);
+               if (adapter->hw.mac.type == ixgbe_mac_82599EB)
+                       netdev->features &= ~NETIF_F_SCTP_CSUM;
+       }
 
        return 0;
 }
 
                                if (ip_hdr(skb)->protocol == IPPROTO_TCP)
                                        type_tucmd_mlhl |=
                                                IXGBE_ADVTXD_TUCMD_L4T_TCP;
+                               else if (ip_hdr(skb)->protocol == IPPROTO_SCTP)
+                                       type_tucmd_mlhl |=
+                                               IXGBE_ADVTXD_TUCMD_L4T_SCTP;
                                break;
                        case cpu_to_be16(ETH_P_IPV6):
                                /* XXX what about other V6 headers?? */
                                if (ipv6_hdr(skb)->nexthdr == IPPROTO_TCP)
                                        type_tucmd_mlhl |=
                                                IXGBE_ADVTXD_TUCMD_L4T_TCP;
+                               else if (ipv6_hdr(skb)->nexthdr == IPPROTO_SCTP)
+                                       type_tucmd_mlhl |=
+                                               IXGBE_ADVTXD_TUCMD_L4T_SCTP;
                                break;
                        default:
                                if (unlikely(net_ratelimit())) {
        netdev->features |= NETIF_F_TSO6;
        netdev->features |= NETIF_F_GRO;
 
+       if (adapter->hw.mac.type == ixgbe_mac_82599EB)
+               netdev->features |= NETIF_F_SCTP_CSUM;
+
        netdev->vlan_features |= NETIF_F_TSO;
        netdev->vlan_features |= NETIF_F_TSO6;
        netdev->vlan_features |= NETIF_F_IP_CSUM;