]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/rt_socket.c
Merge pull request #5789 from donaldsharp/bgp_ebgp_reason
[mirror_frr.git] / zebra / rt_socket.c
index 8d8bdd0a6df839c09c31d89ff4b561ec722e1681..6909bcb13786ced869ece619831a3bbeb1eab4c9 100644 (file)
@@ -178,7 +178,7 @@ static int kernel_rtm(int cmd, const struct prefix *p,
                case NEXTHOP_TYPE_BLACKHOLE:
                        bh_type = nexthop->bh_type;
                        switch (p->family) {
-                       case AFI_IP: {
+                       case AF_INET: {
                                struct in_addr loopback;
                                loopback.s_addr = htonl(INADDR_LOOPBACK);
                                sin_gate.sin.sin_addr = loopback;
@@ -189,7 +189,8 @@ static int kernel_rtm(int cmd, const struct prefix *p,
                                gate = true;
                        }
                                break;
-                       case AFI_IP6:
+                       case AF_INET6:
+                               zlog_warn("v6 blackhole routes have not been programmed yet");
                                break;
                        }
                }
@@ -230,13 +231,13 @@ static int kernel_rtm(int cmd, const struct prefix *p,
                                        __func__, prefix_buf);
                        } else {
                                switch (p->family) {
-                               case AFI_IP:
+                               case AF_INET:
                                        inet_ntop(AF_INET,
                                                  &sin_gate.sin.sin_addr,
                                                  gate_buf, sizeof(gate_buf));
                                        break;
 
-                               case AFI_IP6:
+                               case AF_INET6:
                                        inet_ntop(AF_INET6,
                                                  &sin_gate.sin6.sin6_addr,
                                                  gate_buf, sizeof(gate_buf));
@@ -314,7 +315,7 @@ enum zebra_dplane_result kernel_route_update(struct zebra_dplane_ctx *ctx)
        type = dplane_ctx_get_type(ctx);
        old_type = dplane_ctx_get_old_type(ctx);
 
-       frr_elevate_privs(&zserv_privs) {
+       frr_with_privs(&zserv_privs) {
 
                if (dplane_ctx_get_op(ctx) == DPLANE_OP_ROUTE_DELETE) {
                        if (!RSYSTEM_ROUTE(type))
@@ -364,49 +365,35 @@ enum zebra_dplane_result kernel_route_update(struct zebra_dplane_ctx *ctx)
        return res;
 }
 
-int kernel_neigh_update(int add, int ifindex, uint32_t addr, char *lla,
-                       int llalen, ns_id_t ns_id)
+enum zebra_dplane_result kernel_nexthop_update(struct zebra_dplane_ctx *ctx)
 {
-       /* TODO */
-       return 0;
-}
-
-extern int kernel_get_ipmr_sg_stats(struct zebra_vrf *zvrf, void *mroute)
-{
-       return 0;
-}
-
-int kernel_add_vtep(vni_t vni, struct interface *ifp, struct in_addr *vtep_ip)
-{
-       return 0;
+       return ZEBRA_DPLANE_REQUEST_SUCCESS;
 }
 
-int kernel_del_vtep(vni_t vni, struct interface *ifp, struct in_addr *vtep_ip)
-{
-       return 0;
-}
-
-int kernel_add_mac(struct interface *ifp, vlanid_t vid, struct ethaddr *mac,
-                  struct in_addr vtep_ip, bool sticky)
+int kernel_neigh_update(int add, int ifindex, uint32_t addr, char *lla,
+                       int llalen, ns_id_t ns_id)
 {
+       /* TODO */
        return 0;
 }
 
-int kernel_del_mac(struct interface *ifp, vlanid_t vid, struct ethaddr *mac,
-                  struct in_addr vtep_ip)
+/* NYI on routing-socket platforms, but we've always returned 'success'... */
+enum zebra_dplane_result kernel_neigh_update_ctx(struct zebra_dplane_ctx *ctx)
 {
-       return 0;
+       return ZEBRA_DPLANE_REQUEST_SUCCESS;
 }
 
-int kernel_add_neigh(struct interface *ifp, struct ipaddr *ip,
-                    struct ethaddr *mac, uint8_t flags)
+extern int kernel_get_ipmr_sg_stats(struct zebra_vrf *zvrf, void *mroute)
 {
        return 0;
 }
 
-int kernel_del_neigh(struct interface *ifp, struct ipaddr *ip)
+/*
+ * Update MAC, using dataplane context object. No-op here for now.
+ */
+enum zebra_dplane_result kernel_mac_update_ctx(struct zebra_dplane_ctx *ctx)
 {
-       return 0;
+       return ZEBRA_DPLANE_REQUEST_SUCCESS;
 }
 
 extern int kernel_interface_set_master(struct interface *master,
@@ -415,7 +402,7 @@ extern int kernel_interface_set_master(struct interface *master,
        return 0;
 }
 
-uint32_t kernel_get_speed(struct interface *ifp)
+uint32_t kernel_get_speed(struct interface *ifp, int *error)
 {
        return ifp->speed;
 }