emit_alu_K(SRL, 5);
                                break;
  #endif
 -                      case BPF_S_ANC_IFINDEX:
 +                      case BPF_ANC | SKF_AD_IFINDEX:
                                emit_skb_loadptr(dev, r_A);
                                emit_cmpi(r_A, 0);
-                               emit_branch(BNE_PTR, cleanup_addr + 4);
+                               emit_branch(BE_PTR, cleanup_addr + 4);
                                emit_nop();
                                emit_load32(r_A, struct net_device, ifindex, r_A);
                                break;
 -                      case BPF_S_ANC_MARK:
 +                      case BPF_ANC | SKF_AD_MARK:
                                emit_skb_load32(mark, r_A);
                                break;
 -                      case BPF_S_ANC_QUEUE:
 +                      case BPF_ANC | SKF_AD_QUEUE:
                                emit_skb_load16(queue_mapping, r_A);
                                break;
 -                      case BPF_S_ANC_HATYPE:
 +                      case BPF_ANC | SKF_AD_HATYPE:
                                emit_skb_loadptr(dev, r_A);
                                emit_cmpi(r_A, 0);
-                               emit_branch(BNE_PTR, cleanup_addr + 4);
+                               emit_branch(BE_PTR, cleanup_addr + 4);
                                emit_nop();
                                emit_load16(r_A, struct net_device, type, r_A);
                                break;
 
                                    .len = sizeof(struct ifla_vf_tx_rate) },
        [IFLA_VF_SPOOFCHK]      = { .type = NLA_BINARY,
                                    .len = sizeof(struct ifla_vf_spoofchk) },
 +      [IFLA_VF_RATE]          = { .type = NLA_BINARY,
 +                                  .len = sizeof(struct ifla_vf_rate) },
+       [IFLA_VF_LINK_STATE]    = { .type = NLA_BINARY,
+                                   .len = sizeof(struct ifla_vf_link_state) },
  };
  
  static const struct nla_policy ifla_port_policy[IFLA_PORT_MAX+1] = {
 
        if (unlikely(!proto))
                return ERR_PTR(-EINVAL);
  
 -      csum = !!can_checksum_protocol(features, proto);
 +      csum = !head_skb->encap_hdr_csum &&
 +          !!can_checksum_protocol(features, proto);
  
-       __skb_push(head_skb, doffset);
        headroom = skb_headroom(head_skb);
        pos = skb_headlen(head_skb);