Print this page
Support route deletion entries in SVP_R_LOG_ACK.

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/varpd/svp/common/libvarpd_svp.h
          +++ new/usr/src/lib/varpd/svp/common/libvarpd_svp.h
↓ open down ↓ 245 lines elided ↑ open up ↑
 246  246  typedef void (*svp_vl3_lookup_f)(svp_t *, svp_status_t, const uint8_t *,
 247  247      const struct in6_addr *, const uint16_t, void *);
 248  248  typedef void (*svp_vl2_invalidation_f)(svp_t *, const uint8_t *);
 249  249  typedef void (*svp_vl3_inject_f)(svp_t *, const uint16_t,
 250  250      const struct in6_addr *, const uint8_t *, const uint8_t *);
 251  251  typedef void (*svp_shootdown_f)(svp_t *, const uint8_t *,
 252  252      const struct in6_addr *, const uint16_t uport);
 253  253  typedef void (*svp_route_lookup_f)(svp_t *, svp_status_t, uint32_t, uint32_t,
 254  254      uint16_t, uint8_t *, uint8_t *, uint16_t, uint8_t *, uint8_t, uint8_t,
 255  255      void *);
      256 +typedef void (*svp_route_shootdown_f)(svp_t *, uint8_t *, uint8_t *, uint8_t,
      257 +    uint8_t, uint16_t);
 256  258  
 257  259  typedef struct svp_cb {
 258  260          svp_vl2_lookup_f        scb_vl2_lookup;
 259  261          svp_vl3_lookup_f        scb_vl3_lookup;
 260  262          svp_vl2_invalidation_f  scb_vl2_invalidate;
 261  263          svp_vl3_inject_f        scb_vl3_inject;
 262  264          svp_shootdown_f         scb_shootdown;
 263  265          svp_route_lookup_f      scb_route_lookup;
      266 +        svp_route_shootdown_f   scb_route_shootdown;
 264  267  } svp_cb_t;
 265  268  
 266  269  /*
 267  270   * Core implementation structure.
 268  271   */
 269  272  struct svp {
 270  273          overlay_plugin_dest_t   svp_dest;       /* RO */
 271  274          varpd_provider_handle_t *svp_hdl;       /* RO */
 272  275          svp_cb_t                svp_cb;         /* RO */
 273  276          uint64_t                svp_vid;        /* RO */
↓ open down ↓ 75 lines elided ↑ open up ↑
 349  352  extern void svp_query_release(svp_query_t *);
 350  353  extern void svp_query_crc32(svp_req_t *, void *, size_t);
 351  354  extern id_t svp_id_alloc(void);
 352  355  
 353  356  /*
 354  357   * Shootdown related
 355  358   */
 356  359  extern void svp_remote_shootdown_vl3(svp_remote_t *, svp_log_vl3_t *,
 357  360      svp_sdlog_t *);
 358  361  extern void svp_remote_shootdown_vl2(svp_remote_t *, svp_log_vl2_t *);
      362 +extern void svp_remote_shootdown_route(svp_remote_t *, svp_log_route_t *);
 359  363  extern void svp_remote_log_request(svp_remote_t *, svp_query_t *, void *,
 360  364      size_t);
 361  365  extern void svp_remote_lrm_request(svp_remote_t *, svp_query_t *, void *,
 362  366      size_t);
 363      -extern void svp_shootdown_logr_cb(svp_remote_t *, svp_status_t, void *, size_t);
      367 +extern void svp_shootdown_logr_cb(svp_remote_t *, svp_status_t, void *, size_t,
      368 +    uint16_t);
 364  369  extern void svp_shootdown_lrm_cb(svp_remote_t *, svp_status_t);
 365  370  extern void svp_shootdown_vl3_cb(svp_status_t, svp_log_vl3_t *, svp_sdlog_t *);
 366  371  extern int svp_shootdown_init(svp_remote_t *);
 367  372  extern void svp_shootdown_fini(svp_remote_t *);
 368  373  extern void svp_shootdown_start(svp_remote_t *);
 369  374  
 370  375  #ifdef __cplusplus
 371  376  }
 372  377  #endif
 373  378  
 374  379  #endif /* _LIBVARPD_SVP_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX