Print this page
Restore SVP_R_ROUTE_REQ, and all that goes with it.
Interpret sl3a_uport == 0 in SVP_R_VL3_ACK to indicate the VL3 IP is a next-hop router.
@@ -72,12 +72,12 @@
svp_vl2_ack_t sqd_vl2a;
svp_vl3_req_t sdq_vl3r;
svp_vl3_ack_t sdq_vl3a;
svp_log_req_t sdq_logr;
svp_lrm_ack_t sdq_lrma;
- svp_rvl3_req_t sqd_rvl3r;
- svp_rvl3_ack_t sqd_rvl3a;
+ svp_route_req_t sqd_rr;
+ svp_route_ack_t sqd_ra;
} svp_query_data_t;
typedef void (*svp_query_f)(svp_query_t *, void *);
typedef enum svp_query_state {
@@ -245,20 +245,21 @@
typedef void (*svp_vl2_invalidation_f)(svp_t *, const uint8_t *);
typedef void (*svp_vl3_inject_f)(svp_t *, const uint16_t,
const struct in6_addr *, const uint8_t *, const uint8_t *);
typedef void (*svp_shootdown_f)(svp_t *, const uint8_t *,
const struct in6_addr *, const uint16_t uport);
-/* XXX KEBE SAYS FILL ME IN! */
-typedef void (*svp_rvl3_lookup_f)(svp_t *, svp_status_t, void *);
+typedef void (*svp_route_lookup_f)(svp_t *, svp_status_t, uint32_t, uint32_t,
+ uint16_t, uint8_t *, uint8_t *, uint16_t, uint8_t *, uint8_t, uint8_t,
+ void *);
typedef struct svp_cb {
svp_vl2_lookup_f scb_vl2_lookup;
svp_vl3_lookup_f scb_vl3_lookup;
svp_vl2_invalidation_f scb_vl2_invalidate;
svp_vl3_inject_f scb_vl3_inject;
svp_shootdown_f scb_shootdown;
- svp_rvl3_lookup_f scb_rvl3_lookup;
+ svp_route_lookup_f scb_route_lookup;
} svp_cb_t;
/*
* Core implementation structure.
*/
@@ -274,11 +275,12 @@
uint16_t svp_port; /* svp_lock */
uint16_t svp_uport; /* svp_lock */
uint32_t svp_dcid; /* svp_lock (but write-once?) */
boolean_t svp_huip; /* svp_lock */
struct in6_addr svp_uip; /* svp_lock */
- struct ether_addr svp_router_mac; /* svp_lock (but write-once?) */
+ /* NOTE: lower-3 bytes are 0s. */
+ uint8_t svp_router_oui[6]; /* svp_lock (but write-once?) */
};
extern bunyan_logger_t *svp_bunyan;
extern int svp_remote_find(char *, uint16_t, struct in6_addr *,
@@ -288,12 +290,12 @@
extern void svp_remote_release(svp_remote_t *);
extern void svp_remote_vl3_lookup(svp_t *, svp_query_t *,
const struct sockaddr *, void *);
extern void svp_remote_vl2_lookup(svp_t *, svp_query_t *, const uint8_t *,
void *);
-extern void svp_remote_rvl3_lookup(svp_t *, svp_query_t *,
- const struct in6_addr *, const struct in6_addr *, uint32_t, uint32_t,
+extern void svp_remote_route_lookup(svp_t *, svp_query_t *,
+ const struct in6_addr *, const struct in6_addr *, uint32_t,
uint16_t, void *);
/*
* Init functions