Print this page
First attempt at further IPsec cluster cleanup

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/sadb.h
          +++ new/usr/src/uts/common/inet/sadb.h
↓ open down ↓ 138 lines elided ↑ open up ↑
 139  139  #define ipsa_auth_alg ipsa_authkeydata.sak_algid
 140  140          ipsa_key_t ipsa_encrkeydata;
 141  141  #define ipsa_encrkey ipsa_encrkeydata.sak_key
 142  142  #define ipsa_encrkeylen ipsa_encrkeydata.sak_keylen
 143  143  #define ipsa_encrkeybits ipsa_encrkeydata.sak_keybits
 144  144  #define ipsa_encr_alg ipsa_encrkeydata.sak_algid
 145  145  
 146  146          struct ipsid_s *ipsa_src_cid;   /* Source certificate identity */
 147  147          struct ipsid_s *ipsa_dst_cid;   /* Destination certificate identity */
 148  148          mblk_t  *ipsa_lpkt;     /* Packet received while larval (CAS me) */
 149      -        mblk_t  *ipsa_bpkt_head;        /* Packets received while idle */
 150      -        mblk_t  *ipsa_bpkt_tail;
 151      -#define SADB_MAX_IDLEPKTS       100
 152      -        uint8_t ipsa_mblkcnt;   /* Number of packets received while idle */
 153  149  
 154  150          /*
 155  151           * PF_KEYv2 supports a replay window size of 255.  Hence there is a
 156  152           * need a bit vector to support a replay window of 255.  256 is a nice
 157  153           * round number, so I support that.
 158  154           *
 159  155           * Use an array of uint64_t for best performance on 64-bit
 160  156           * processors.  (And hope that 32-bit compilers can handle things
 161  157           * okay.)  The " >> 6 " is to get the appropriate number of 64-bit
 162  158           * ints.
↓ open down ↓ 281 lines elided ↑ open up ↑
 444  440  #define ESP_ADD_SETTABLE_FLAGS (AH_ADD_SETTABLE_FLAGS | IPSA_F_NATT | \
 445  441          SADB_X_SAFLAGS_EALG1 | SADB_X_SAFLAGS_EALG2)
 446  442  
 447  443  
 448  444  
 449  445  /* SA states are important for handling UPDATE PF_KEY messages. */
 450  446  #define IPSA_STATE_LARVAL               SADB_SASTATE_LARVAL
 451  447  #define IPSA_STATE_MATURE               SADB_SASTATE_MATURE
 452  448  #define IPSA_STATE_DYING                SADB_SASTATE_DYING
 453  449  #define IPSA_STATE_DEAD                 SADB_SASTATE_DEAD
 454      -#define IPSA_STATE_IDLE                 SADB_X_SASTATE_IDLE
 455      -#define IPSA_STATE_ACTIVE_ELSEWHERE     SADB_X_SASTATE_ACTIVE_ELSEWHERE
      450 +/* Deprecated */
      451 +/* #define      IPSA_STATE_IDLE                 SADB_X_SASTATE_IDLE */
      452 +/* #define      IPSA_STATE_ACTIVE_ELSEWHERE SADB_X_SASTATE_ACTIVE_ELSEWHERE */
 456  453  
 457  454  /*
 458  455   * NOTE:  If the document authors do things right in defining algorithms, we'll
 459  456   *        probably have flags for what all is here w.r.t. replay, ESP w/HMAC,
 460  457   *        etc.
 461  458   */
 462  459  
 463  460  #define IPSA_T_ACQUIRE  SEC_TYPE_NONE   /* If this typed returned, sa needed */
 464  461  #define IPSA_T_AH       SEC_TYPE_AH     /* IPsec AH association */
 465  462  #define IPSA_T_ESP      SEC_TYPE_ESP    /* IPsec ESP association */
↓ open down ↓ 286 lines elided ↑ open up ↑
 752  749  int sadb_addrset(ire_t *);
 753  750  int sadb_delget_sa(mblk_t *, keysock_in_t *, sadbp_t *, int *, queue_t *,
 754  751      uint8_t);
 755  752  
 756  753  int sadb_purge_sa(mblk_t *, keysock_in_t *, sadb_t *, int *, queue_t *);
 757  754  int sadb_common_add(queue_t *, mblk_t *, sadb_msg_t *,
 758  755      keysock_in_t *, isaf_t *, isaf_t *, ipsa_t *, boolean_t, boolean_t, int *,
 759  756      netstack_t *, sadbp_t *);
 760  757  void sadb_set_usetime(ipsa_t *);
 761  758  boolean_t sadb_age_bytes(queue_t *, ipsa_t *, uint64_t, boolean_t);
 762      -int sadb_update_sa(mblk_t *, keysock_in_t *, mblk_t **, sadbp_t *,
      759 +int sadb_update_sa(mblk_t *, keysock_in_t *, sadbp_t *,
 763  760      int *, queue_t *, int (*)(mblk_t *, keysock_in_t *, int *, netstack_t *),
 764  761      netstack_t *, uint8_t);
 765  762  void sadb_acquire(mblk_t *, ip_xmit_attr_t *, boolean_t, boolean_t);
 766  763  void gcm_params_init(ipsa_t *, uchar_t *, uint_t, uchar_t *, ipsa_cm_mech_t *,
 767  764      crypto_data_t *);
 768  765  void ccm_params_init(ipsa_t *, uchar_t *, uint_t, uchar_t *, ipsa_cm_mech_t *,
 769  766      crypto_data_t *);
 770  767  void cbc_params_init(ipsa_t *, uchar_t *, uint_t, uchar_t *, ipsa_cm_mech_t *,
 771  768      crypto_data_t *);
 772  769  
 773  770  void sadb_destroy_acquire(ipsacq_t *, netstack_t *);
 774  771  struct ipsec_stack;
 775  772  mblk_t *sadb_setup_acquire(ipsacq_t *, uint8_t, struct ipsec_stack *);
 776      -ipsa_t *sadb_getspi(keysock_in_t *, uint32_t, int *, netstack_t *, uint_t);
      773 +ipsa_t *sadb_getspi(keysock_in_t *, uint32_t, int *, netstack_t *);
 777  774  void sadb_in_acquire(sadb_msg_t *, sadbp_t *, queue_t *, netstack_t *);
 778  775  boolean_t sadb_replay_check(ipsa_t *, uint32_t);
 779  776  boolean_t sadb_replay_peek(ipsa_t *, uint32_t);
 780  777  int sadb_dump(queue_t *, mblk_t *, keysock_in_t *, sadb_t *);
 781  778  void sadb_replay_delete(ipsa_t *);
 782  779  void sadb_ager(sadb_t *, queue_t *, int, netstack_t *);
 783  780  
 784  781  timeout_id_t sadb_retimeout(hrtime_t, queue_t *, void (*)(void *), void *,
 785  782      uint_t *, uint_t, short);
 786  783  void sadb_sa_refrele(void *target);
 787  784  mblk_t *sadb_set_lpkt(ipsa_t *, mblk_t *, ip_recv_attr_t *);
 788  785  mblk_t *sadb_clear_lpkt(ipsa_t *);
 789      -void sadb_buf_pkt(ipsa_t *, mblk_t *, ip_recv_attr_t *);
 790      -void sadb_clear_buf_pkt(void *ipkt);
 791  786  
 792      -/* Note that buf_pkt is the product of ip_recv_attr_to_mblk() */
 793      -#define HANDLE_BUF_PKT(taskq, stack, dropper, buf_pkt)                  \
 794      -{                                                                       \
 795      -        if (buf_pkt != NULL) {                                          \
 796      -                if (taskq_dispatch(taskq, sadb_clear_buf_pkt,           \
 797      -                    (void *) buf_pkt, TQ_NOSLEEP) == 0) {               \
 798      -                    /* Dispatch was unsuccessful drop the packets. */   \
 799      -                        mblk_t          *tmp;                           \
 800      -                        while (buf_pkt != NULL) {                       \
 801      -                                tmp = buf_pkt->b_next;                  \
 802      -                                buf_pkt->b_next = NULL;                 \
 803      -                                buf_pkt = ip_recv_attr_free_mblk(buf_pkt); \
 804      -                                ip_drop_packet(buf_pkt, B_TRUE, NULL,   \
 805      -                                    DROPPER(stack,                      \
 806      -                                    ipds_sadb_inidle_timeout),          \
 807      -                                    &dropper);                          \
 808      -                                buf_pkt = tmp;                          \
 809      -                        }                                               \
 810      -                }                                                       \
 811      -        }                                                               \
 812      -}                                                                       \
 813      -
 814  787  /*
 815  788   * Two IPsec rate-limiting routines.
 816  789   */
 817  790  /*PRINTFLIKE6*/
 818  791  extern void ipsec_rl_strlog(netstack_t *, short, short, char,
 819  792      ushort_t, char *, ...)
 820  793      __KPRINTFLIKE(6);
 821  794  extern void ipsec_assocfailure(short, short, char, ushort_t, char *, uint32_t,
 822  795      void *, int, netstack_t *);
 823  796  
↓ open down ↓ 158 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX