zebra: move netfilter contexts to zebra dplane#8124
zebra: move netfilter contexts to zebra dplane#8124mjstapp merged 2 commits intoFRRouting:masterfrom
Conversation
polychaeta
left a comment
There was a problem hiding this comment.
Thanks for your contribution to FRR!
Click for style suggestions
To apply these suggestions:
curl -s https://gist.githubusercontent.com/polychaeta/4b1aade150bba1728ff2900e922823f7/raw/36d3e3ac1927af763572e1347dd193544747cf57/cr_8124_1613987661.diff | git apply
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index fd24ecd67..a7ceb56e4 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -877,8 +877,7 @@ void zsend_netfilter_notify_owner(const struct zebra_dplane_ctx *ctx,
if (IS_ZEBRA_DEBUG_PACKET)
zlog_debug("%s: Notifying %s id %u note %u", __func__,
zserv_command_string(cmd),
- dplane_ctx_netfilter_get_unique(ctx),
- note);
+ dplane_ctx_netfilter_get_unique(ctx), note);
for (ALL_LIST_ELEMENTS_RO(zrouter.client_list, node, client)) {
if (dplane_ctx_netfilter_get_sock(ctx) == client->sock)
@@ -893,8 +892,8 @@ void zsend_netfilter_notify_owner(const struct zebra_dplane_ctx *ctx,
zclient_create_header(s, cmd, VRF_DEFAULT);
stream_put(s, ¬e, sizeof(note));
stream_putl(s, dplane_ctx_rule_get_unique(ctx));
- if (cmd == ZEBRA_IPSET_NOTIFY_OWNER ||
- cmd == ZEBRA_IPSET_ENTRY_NOTIFY_OWNER) {
+ if (cmd == ZEBRA_IPSET_NOTIFY_OWNER
+ || cmd == ZEBRA_IPSET_ENTRY_NOTIFY_OWNER) {
stream_put(s, dplane_ctx_netfilter_get_ipset_name(ctx),
ZEBRA_IPSET_NAME_SIZE);
}
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index 8e65ebc6a..69645d75a 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -717,7 +717,8 @@ static void dplane_ctx_free_internal(struct zebra_dplane_ctx *ctx)
for (ALL_LIST_ELEMENTS(ctx->u.netfilter.ifname_list,
node, nnode, ifname)) {
- LISTNODE_DETACH(ctx->u.netfilter.ifname_list, node);
+ LISTNODE_DETACH(ctx->u.netfilter.ifname_list,
+ node);
XFREE(MTYPE_DP_IFACE, ifname);
}
list_delete(&ctx->u.netfilter.ifname_list);
@@ -1942,7 +1943,8 @@ uint32_t dplane_ctx_netfilter_get_unique(const struct zebra_dplane_ctx *ctx)
return ctx->u.netfilter.unique;
}
-uint32_t dplane_ctx_netfilter_get_interface_number(const struct zebra_dplane_ctx *ctx)
+uint32_t
+dplane_ctx_netfilter_get_interface_number(const struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
@@ -1952,8 +1954,9 @@ uint32_t dplane_ctx_netfilter_get_interface_number(const struct zebra_dplane_ctx
return listcount(ctx->u.netfilter.ifname_list);
}
-const char *dplane_ctx_netfilter_get_interface_val(const struct zebra_dplane_ctx *ctx,
- uint32_t rank)
+const char *
+dplane_ctx_netfilter_get_interface_val(const struct zebra_dplane_ctx *ctx,
+ uint32_t rank)
{
struct listnode *node;
uint32_t cnt = 0;
@@ -1979,7 +1982,8 @@ uint16_t dplane_ctx_netfilter_get_tcpflags(const struct zebra_dplane_ctx *ctx)
return ctx->u.netfilter.tcp_flags;
}
-uint16_t dplane_ctx_netfilter_get_tcpmaskflags(const struct zebra_dplane_ctx *ctx)
+uint16_t
+dplane_ctx_netfilter_get_tcpmaskflags(const struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
@@ -2070,42 +2074,48 @@ uint8_t *dplane_ctx_netfilter_get_ipset_name(const struct zebra_dplane_ctx *ctx)
return (uint8_t *)&ctx->u.netfilter.ipset_name;
}
-uint16_t dplane_ctx_netfilter_get_src_port_min(const struct zebra_dplane_ctx *ctx)
+uint16_t
+dplane_ctx_netfilter_get_src_port_min(const struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
return ctx->u.netfilter.src_port_min;
}
-uint16_t dplane_ctx_netfilter_get_src_port_max(const struct zebra_dplane_ctx *ctx)
+uint16_t
+dplane_ctx_netfilter_get_src_port_max(const struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
return ctx->u.netfilter.src_port_max;
}
-uint16_t dplane_ctx_netfilter_get_dst_port_min(const struct zebra_dplane_ctx *ctx)
+uint16_t
+dplane_ctx_netfilter_get_dst_port_min(const struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
return ctx->u.netfilter.dst_port_min;
}
-uint16_t dplane_ctx_netfilter_get_dst_port_max(const struct zebra_dplane_ctx *ctx)
+uint16_t
+dplane_ctx_netfilter_get_dst_port_max(const struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
return ctx->u.netfilter.dst_port_max;
}
-struct prefix *dplane_ctx_netfilter_get_src_prefix(const struct zebra_dplane_ctx *ctx)
+struct prefix *
+dplane_ctx_netfilter_get_src_prefix(const struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
return (struct prefix *)&ctx->u.netfilter.src_prefix;
}
-struct prefix *dplane_ctx_netfilter_get_dst_prefix(const struct zebra_dplane_ctx *ctx)
+struct prefix *
+dplane_ctx_netfilter_get_dst_prefix(const struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
@@ -2668,7 +2678,8 @@ static int dplane_ctx_rule_init(struct zebra_dplane_ctx *ctx,
}
/**
- * dplane_ctx_iptable_init() - Initialize a context block for a PBR iptable update.
+ * dplane_ctx_iptable_init() - Initialize a context block for a PBR iptable
+ * update.
*
* @ctx: Dataplane context to init
* @op: Operation being performed
@@ -2686,9 +2697,10 @@ static int dplane_ctx_iptable_init(struct zebra_dplane_ctx *ctx,
if (IS_ZEBRA_DEBUG_DPLANE_DETAIL) {
zlog_debug(
"init dplane ctx %s: Unique %u Fwmark %u Family %s Action %s",
- dplane_op2str(op), iptable->unique,
- iptable->fwmark, family2str(iptable->family),
- iptable->action == ZEBRA_IPTABLES_DROP ? "Drop" : "Forward");
+ dplane_op2str(op), iptable->unique, iptable->fwmark,
+ family2str(iptable->family),
+ iptable->action == ZEBRA_IPTABLES_DROP ? "Drop"
+ : "Forward");
}
ctx->zd_op = op;
@@ -2700,7 +2712,8 @@ static int dplane_ctx_iptable_init(struct zebra_dplane_ctx *ctx,
ctx->zd_vrf_id = iptable->vrf_id;
if (iptable->nb_interface > 0) {
ctx->u.netfilter.ifname_list = list_new();
- for (ALL_LIST_ELEMENTS_RO(iptable->interface_name_list, node, ifname)) {
+ for (ALL_LIST_ELEMENTS_RO(iptable->interface_name_list, node,
+ ifname)) {
listnode_add(ctx->u.netfilter.ifname_list,
XSTRDUP(MTYPE_DP_IFACE, ifname));
}
@@ -2708,19 +2721,20 @@ static int dplane_ctx_iptable_init(struct zebra_dplane_ctx *ctx,
ctx->u.netfilter.sock = iptable->sock;
ctx->u.netfilter.unique = iptable->unique;
- ctx->u.netfilter.type= iptable->type;
- ctx->u.netfilter.filter_bm= iptable->filter_bm;
- ctx->u.netfilter.fwmark= iptable->fwmark;
- ctx->u.netfilter.action= iptable->action;
- ctx->u.netfilter.pkt_len_min= iptable->pkt_len_min;
- ctx->u.netfilter.pkt_len_max= iptable->pkt_len_max;
- ctx->u.netfilter.tcp_flags= iptable->tcp_flags;
- ctx->u.netfilter.tcp_mask_flags= iptable->tcp_mask_flags;
- ctx->u.netfilter.dscp_value= iptable->dscp_value;
- ctx->u.netfilter.fragment= iptable->fragment;
- ctx->u.netfilter.protocol= iptable->protocol;
- ctx->u.netfilter.family= iptable->family;
- memcpy(ctx->u.netfilter.ipset_name, iptable->ipset_name, ZEBRA_IPSET_NAME_SIZE);
+ ctx->u.netfilter.type = iptable->type;
+ ctx->u.netfilter.filter_bm = iptable->filter_bm;
+ ctx->u.netfilter.fwmark = iptable->fwmark;
+ ctx->u.netfilter.action = iptable->action;
+ ctx->u.netfilter.pkt_len_min = iptable->pkt_len_min;
+ ctx->u.netfilter.pkt_len_max = iptable->pkt_len_max;
+ ctx->u.netfilter.tcp_flags = iptable->tcp_flags;
+ ctx->u.netfilter.tcp_mask_flags = iptable->tcp_mask_flags;
+ ctx->u.netfilter.dscp_value = iptable->dscp_value;
+ ctx->u.netfilter.fragment = iptable->fragment;
+ ctx->u.netfilter.protocol = iptable->protocol;
+ ctx->u.netfilter.family = iptable->family;
+ memcpy(ctx->u.netfilter.ipset_name, iptable->ipset_name,
+ ZEBRA_IPSET_NAME_SIZE);
return AOK;
}
@@ -2739,11 +2753,10 @@ static int dplane_ctx_ipset_init(struct zebra_dplane_ctx *ctx,
struct zebra_pbr_ipset *ipset)
{
if (IS_ZEBRA_DEBUG_DPLANE_DETAIL) {
- zlog_debug(
- "init dplane ctx %s: %s Unique %u Family %s Type %s",
- dplane_op2str(op), ipset->ipset_name, ipset->unique,
- family2str(ipset->family),
- zebra_pbr_ipset_type2str(ipset->type));
+ zlog_debug("init dplane ctx %s: %s Unique %u Family %s Type %s",
+ dplane_op2str(op), ipset->ipset_name, ipset->unique,
+ family2str(ipset->family),
+ zebra_pbr_ipset_type2str(ipset->type));
}
ctx->zd_op = op;
@@ -2758,12 +2771,14 @@ static int dplane_ctx_ipset_init(struct zebra_dplane_ctx *ctx,
ctx->u.netfilter.unique = ipset->unique;
ctx->u.netfilter.type = ipset->type;
ctx->u.netfilter.family = ipset->family;
- memcpy(ctx->u.netfilter.ipset_name, ipset->ipset_name, ZEBRA_IPSET_NAME_SIZE);
+ memcpy(ctx->u.netfilter.ipset_name, ipset->ipset_name,
+ ZEBRA_IPSET_NAME_SIZE);
return AOK;
}
/**
- * dplane_ctx_ipset_entry_init() - Initialize a context block for a PBR ipset update.
+ * dplane_ctx_ipset_entry_init() - Initialize a context block for a PBR ipset
+ * update.
*
* @ctx: Dataplane context to init
* @op: Operation being performed
@@ -2771,18 +2786,17 @@ static int dplane_ctx_ipset_init(struct zebra_dplane_ctx *ctx,
*
* Return: Result status
*/
-static int dplane_ctx_ipset_entry_init(struct zebra_dplane_ctx *ctx,
- enum dplane_op_e op,
- struct zebra_pbr_ipset_entry *ipset_entry)
+static int
+dplane_ctx_ipset_entry_init(struct zebra_dplane_ctx *ctx, enum dplane_op_e op,
+ struct zebra_pbr_ipset_entry *ipset_entry)
{
struct zebra_pbr_ipset *ipset;
ipset = ipset_entry->backpointer;
if (IS_ZEBRA_DEBUG_DPLANE_DETAIL) {
- zlog_debug(
- "init dplane ctx %s: %s Unique %u filter %u",
- dplane_op2str(op), ipset->ipset_name, ipset_entry->unique,
- ipset_entry->filter_bm);
+ zlog_debug("init dplane ctx %s: %s Unique %u filter %u",
+ dplane_op2str(op), ipset->ipset_name,
+ ipset_entry->unique, ipset_entry->filter_bm);
}
ctx->zd_op = op;
@@ -2797,7 +2811,8 @@ static int dplane_ctx_ipset_entry_init(struct zebra_dplane_ctx *ctx,
ctx->u.netfilter.unique = ipset_entry->unique;
ctx->u.netfilter.type = ipset->type;
ctx->u.netfilter.family = ipset->family;
- memcpy(ctx->u.netfilter.ipset_name, ipset->ipset_name, ZEBRA_IPSET_NAME_SIZE);
+ memcpy(ctx->u.netfilter.ipset_name, ipset->ipset_name,
+ ZEBRA_IPSET_NAME_SIZE);
ctx->u.netfilter.protocol = ipset_entry->proto;
ctx->u.netfilter.filter_bm = ipset_entry->filter_bm;
@@ -4037,12 +4052,14 @@ done:
return result;
}
-enum zebra_dplane_result dplane_pbr_iptable_add(struct zebra_pbr_iptable *iptable)
+enum zebra_dplane_result
+dplane_pbr_iptable_add(struct zebra_pbr_iptable *iptable)
{
return iptable_update_internal(DPLANE_OP_IPTABLE_ADD, iptable);
}
-enum zebra_dplane_result dplane_pbr_iptable_delete(struct zebra_pbr_iptable *iptable)
+enum zebra_dplane_result
+dplane_pbr_iptable_delete(struct zebra_pbr_iptable *iptable)
{
return iptable_update_internal(DPLANE_OP_IPTABLE_DELETE, iptable);
}
@@ -4094,7 +4111,8 @@ enum zebra_dplane_result dplane_pbr_ipset_delete(struct zebra_pbr_ipset *ipset)
* Common helper api for ipset updates
*/
static enum zebra_dplane_result
-ipset_entry_update_internal(enum dplane_op_e op, struct zebra_pbr_ipset_entry *ipset_entry)
+ipset_entry_update_internal(enum dplane_op_e op,
+ struct zebra_pbr_ipset_entry *ipset_entry)
{
enum zebra_dplane_result result = ZEBRA_DPLANE_REQUEST_FAILURE;
struct zebra_dplane_ctx *ctx;
@@ -4115,20 +4133,22 @@ done:
if (ret == AOK)
result = ZEBRA_DPLANE_REQUEST_QUEUED;
else {
- atomic_fetch_add_explicit(&zdplane_info.dg_ipset_entry_errors, 1,
- memory_order_relaxed);
+ atomic_fetch_add_explicit(&zdplane_info.dg_ipset_entry_errors,
+ 1, memory_order_relaxed);
dplane_ctx_free(&ctx);
}
return result;
}
-enum zebra_dplane_result dplane_pbr_ipset_entry_add(struct zebra_pbr_ipset_entry *ipset)
+enum zebra_dplane_result
+dplane_pbr_ipset_entry_add(struct zebra_pbr_ipset_entry *ipset)
{
return ipset_entry_update_internal(DPLANE_OP_IPSET_ENTRY_ADD, ipset);
}
-enum zebra_dplane_result dplane_pbr_ipset_entry_delete(struct zebra_pbr_ipset_entry *ipset)
+enum zebra_dplane_result
+dplane_pbr_ipset_entry_delete(struct zebra_pbr_ipset_entry *ipset)
{
return ipset_entry_update_internal(DPLANE_OP_IPSET_ENTRY_DELETE, ipset);
}
@@ -4648,9 +4668,10 @@ static void kernel_dplane_log_detail(struct zebra_dplane_ctx *ctx)
break;
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE:
- zlog_debug("Dplane ipset entry update op %s, unique(%u), ctx %p",
- dplane_op2str(dplane_ctx_get_op(ctx)),
- dplane_ctx_netfilter_get_unique(ctx), ctx);
+ zlog_debug(
+ "Dplane ipset entry update op %s, unique(%u), ctx %p",
+ dplane_op2str(dplane_ctx_get_op(ctx)),
+ dplane_ctx_netfilter_get_unique(ctx), ctx);
break;
}
}
@@ -4751,8 +4772,9 @@ static void kernel_dplane_handle_result(struct zebra_dplane_ctx *ctx)
case DPLANE_OP_IPTABLE_ADD:
case DPLANE_OP_IPTABLE_DELETE:
if (res != ZEBRA_DPLANE_REQUEST_SUCCESS)
- atomic_fetch_add_explicit(&zdplane_info.dg_iptable_errors,
- 1, memory_order_relaxed);
+ atomic_fetch_add_explicit(
+ &zdplane_info.dg_iptable_errors, 1,
+ memory_order_relaxed);
break;
case DPLANE_OP_IPSET_ADD:
@@ -4765,8 +4787,9 @@ static void kernel_dplane_handle_result(struct zebra_dplane_ctx *ctx)
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE:
if (res != ZEBRA_DPLANE_REQUEST_SUCCESS)
- atomic_fetch_add_explicit(&zdplane_info.dg_ipset_entry_errors,
- 1, memory_order_relaxed);
+ atomic_fetch_add_explicit(
+ &zdplane_info.dg_ipset_entry_errors, 1,
+ memory_order_relaxed);
break;
/* Ignore 'notifications' - no-op */
@@ -4785,7 +4808,8 @@ static void kernel_dplane_handle_result(struct zebra_dplane_ctx *ctx)
}
}
-static void kernel_dplane_process_iptable(struct zebra_dplane_provider *prov, struct zebra_dplane_ctx *ctx)
+static void kernel_dplane_process_iptable(struct zebra_dplane_provider *prov,
+ struct zebra_dplane_ctx *ctx)
{
zebra_pbr_process_iptable(ctx);
dplane_provider_enqueue_out_ctx(prov, ctx);
@@ -4798,8 +4822,9 @@ static void kernel_dplane_process_ipset(struct zebra_dplane_provider *prov,
dplane_provider_enqueue_out_ctx(prov, ctx);
}
-static void kernel_dplane_process_ipset_entry(struct zebra_dplane_provider *prov,
- struct zebra_dplane_ctx *ctx)
+static void
+kernel_dplane_process_ipset_entry(struct zebra_dplane_provider *prov,
+ struct zebra_dplane_ctx *ctx)
{
zebra_pbr_process_ipset_entry(ctx);
dplane_provider_enqueue_out_ctx(prov, ctx);
@@ -4829,14 +4854,15 @@ static int kernel_dplane_process_func(struct zebra_dplane_provider *prov)
if (IS_ZEBRA_DEBUG_DPLANE_DETAIL)
kernel_dplane_log_detail(ctx);
- if ((dplane_ctx_get_op(ctx) == DPLANE_OP_IPTABLE_ADD ||
- dplane_ctx_get_op(ctx) == DPLANE_OP_IPTABLE_DELETE))
+ if ((dplane_ctx_get_op(ctx) == DPLANE_OP_IPTABLE_ADD
+ || dplane_ctx_get_op(ctx) == DPLANE_OP_IPTABLE_DELETE))
kernel_dplane_process_iptable(prov, ctx);
- else if ((dplane_ctx_get_op(ctx) == DPLANE_OP_IPSET_ADD ||
- dplane_ctx_get_op(ctx) == DPLANE_OP_IPSET_DELETE))
+ else if ((dplane_ctx_get_op(ctx) == DPLANE_OP_IPSET_ADD
+ || dplane_ctx_get_op(ctx) == DPLANE_OP_IPSET_DELETE))
kernel_dplane_process_ipset(prov, ctx);
- else if ((dplane_ctx_get_op(ctx) == DPLANE_OP_IPSET_ENTRY_ADD ||
- dplane_ctx_get_op(ctx) == DPLANE_OP_IPSET_ENTRY_DELETE))
+ else if ((dplane_ctx_get_op(ctx) == DPLANE_OP_IPSET_ENTRY_ADD
+ || dplane_ctx_get_op(ctx)
+ == DPLANE_OP_IPSET_ENTRY_DELETE))
kernel_dplane_process_ipset_entry(prov, ctx);
else
TAILQ_INSERT_TAIL(&work_list, ctx, zd_q_entries);
diff --git a/zebra/zebra_dplane.h b/zebra/zebra_dplane.h
index 585238188..3f07c78f5 100644
--- a/zebra/zebra_dplane.h
+++ b/zebra/zebra_dplane.h
@@ -488,11 +488,14 @@ dplane_ctx_rule_get_old_dst_ip(const struct zebra_dplane_ctx *ctx);
/* Accessors for policy based routing iptable information */
int dplane_ctx_netfilter_get_sock(const struct zebra_dplane_ctx *ctx);
uint32_t dplane_ctx_netfilter_get_unique(const struct zebra_dplane_ctx *ctx);
-uint32_t dplane_ctx_netfilter_get_interface_number(const struct zebra_dplane_ctx *ctx);
-const char *dplane_ctx_netfilter_get_interface_val(const struct zebra_dplane_ctx *ctx,
- uint32_t rank);
+uint32_t
+dplane_ctx_netfilter_get_interface_number(const struct zebra_dplane_ctx *ctx);
+const char *
+dplane_ctx_netfilter_get_interface_val(const struct zebra_dplane_ctx *ctx,
+ uint32_t rank);
uint16_t dplane_ctx_netfilter_get_tcpflags(const struct zebra_dplane_ctx *ctx);
-uint16_t dplane_ctx_netfilter_get_tcpmaskflags(const struct zebra_dplane_ctx *ctx);
+uint16_t
+dplane_ctx_netfilter_get_tcpmaskflags(const struct zebra_dplane_ctx *ctx);
uint16_t dplane_ctx_netfilter_get_pktlenmin(const struct zebra_dplane_ctx *ctx);
uint16_t dplane_ctx_netfilter_get_pktlenmax(const struct zebra_dplane_ctx *ctx);
uint32_t dplane_ctx_netfilter_get_type(const struct zebra_dplane_ctx *ctx);
@@ -504,13 +507,20 @@ uint8_t dplane_ctx_netfilter_get_dscpvalue(const struct zebra_dplane_ctx *ctx);
uint8_t dplane_ctx_netfilter_get_protocol(const struct zebra_dplane_ctx *ctx);
uint16_t dplane_ctx_netfilter_get_flowlabel(const struct zebra_dplane_ctx *ctx);
uint8_t dplane_ctx_netfilter_get_family(const struct zebra_dplane_ctx *ctx);
-uint8_t *dplane_ctx_netfilter_get_ipset_name(const struct zebra_dplane_ctx *ctx);
-uint16_t dplane_ctx_netfilter_get_src_port_min(const struct zebra_dplane_ctx *ctx);
-uint16_t dplane_ctx_netfilter_get_src_port_max(const struct zebra_dplane_ctx *ctx);
-uint16_t dplane_ctx_netfilter_get_dst_port_min(const struct zebra_dplane_ctx *ctx);
-uint16_t dplane_ctx_netfilter_get_dst_port_max(const struct zebra_dplane_ctx *ctx);
-struct prefix *dplane_ctx_netfilter_get_src_prefix(const struct zebra_dplane_ctx *ctx);
-struct prefix *dplane_ctx_netfilter_get_dst_prefix(const struct zebra_dplane_ctx *ctx);
+uint8_t *
+dplane_ctx_netfilter_get_ipset_name(const struct zebra_dplane_ctx *ctx);
+uint16_t
+dplane_ctx_netfilter_get_src_port_min(const struct zebra_dplane_ctx *ctx);
+uint16_t
+dplane_ctx_netfilter_get_src_port_max(const struct zebra_dplane_ctx *ctx);
+uint16_t
+dplane_ctx_netfilter_get_dst_port_min(const struct zebra_dplane_ctx *ctx);
+uint16_t
+dplane_ctx_netfilter_get_dst_port_max(const struct zebra_dplane_ctx *ctx);
+struct prefix *
+dplane_ctx_netfilter_get_src_prefix(const struct zebra_dplane_ctx *ctx);
+struct prefix *
+dplane_ctx_netfilter_get_dst_prefix(const struct zebra_dplane_ctx *ctx);
/* Accessors for bridge port information */
uint32_t dplane_ctx_get_br_port_flags(const struct zebra_dplane_ctx *ctx);
@@ -681,8 +691,10 @@ dplane_pbr_rule_update(struct zebra_pbr_rule *old_rule,
struct zebra_pbr_rule *new_rule);
/* iptable */
struct zebra_pbr_iptable;
-enum zebra_dplane_result dplane_pbr_iptable_add(struct zebra_pbr_iptable *iptable);
-enum zebra_dplane_result dplane_pbr_iptable_delete(struct zebra_pbr_iptable *iptable);
+enum zebra_dplane_result
+dplane_pbr_iptable_add(struct zebra_pbr_iptable *iptable);
+enum zebra_dplane_result
+dplane_pbr_iptable_delete(struct zebra_pbr_iptable *iptable);
/* ipset */
struct zebra_pbr_ipset;
@@ -691,8 +703,10 @@ enum zebra_dplane_result dplane_pbr_ipset_delete(struct zebra_pbr_ipset *ipset);
/* ipset entry */
struct zebra_pbr_ipset_entry;
-enum zebra_dplane_result dplane_pbr_ipset_entry_add(struct zebra_pbr_ipset_entry *ipset);
-enum zebra_dplane_result dplane_pbr_ipset_entry_delete(struct zebra_pbr_ipset_entry *ipset);
+enum zebra_dplane_result
+dplane_pbr_ipset_entry_add(struct zebra_pbr_ipset_entry *ipset);
+enum zebra_dplane_result
+dplane_pbr_ipset_entry_delete(struct zebra_pbr_ipset_entry *ipset);
/* Encode route information into data plane context. */
int dplane_ctx_route_init(struct zebra_dplane_ctx *ctx, enum dplane_op_e op,
diff --git a/zebra/zebra_pbr.c b/zebra/zebra_pbr.c
index b36a508d0..f0f3349ea 100644
--- a/zebra/zebra_pbr.c
+++ b/zebra/zebra_pbr.c
@@ -578,8 +578,10 @@ void zebra_pbr_process_iptable(struct zebra_dplane_ctx *ctx)
ipt.interface_name_list = list_new();
for (i = 0; i < ipt.nb_interface; i++) {
- listnode_add(ipt.interface_name_list,
- (void *)dplane_ctx_netfilter_get_interface_val(ctx, i));
+ listnode_add(
+ ipt.interface_name_list,
+ (void *)dplane_ctx_netfilter_get_interface_val(
+ ctx, i));
}
}
ret = hook_call(zebra_pbr_iptable_update, mode, &ipt);
@@ -909,35 +911,39 @@ void zebra_pbr_dplane_result(struct zebra_dplane_ctx *ctx)
? ZAPI_RULE_REMOVED
: ZAPI_RULE_FAIL_REMOVE);
else if (op == DPLANE_OP_IPTABLE_ADD)
- zsend_netfilter_notify_owner(ctx, ZEBRA_IPTABLE_NOTIFY_OWNER,
- res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPTABLE_INSTALLED :
- ZAPI_IPTABLE_FAIL_INSTALL);
+ zsend_netfilter_notify_owner(
+ ctx, ZEBRA_IPTABLE_NOTIFY_OWNER,
+ res == ZEBRA_DPLANE_REQUEST_SUCCESS
+ ? ZAPI_IPTABLE_INSTALLED
+ : ZAPI_IPTABLE_FAIL_INSTALL);
else if (op == DPLANE_OP_IPTABLE_DELETE)
- zsend_netfilter_notify_owner(ctx, ZEBRA_IPTABLE_NOTIFY_OWNER,
- res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPTABLE_REMOVED :
- ZAPI_IPTABLE_FAIL_REMOVE);
+ zsend_netfilter_notify_owner(
+ ctx, ZEBRA_IPTABLE_NOTIFY_OWNER,
+ res == ZEBRA_DPLANE_REQUEST_SUCCESS
+ ? ZAPI_IPTABLE_REMOVED
+ : ZAPI_IPTABLE_FAIL_REMOVE);
else if (op == DPLANE_OP_IPSET_ADD)
zsend_netfilter_notify_owner(ctx, ZEBRA_IPSET_NOTIFY_OWNER,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_INSTALLED :
- ZAPI_IPSET_FAIL_INSTALL);
+ ? ZAPI_IPSET_INSTALLED
+ : ZAPI_IPSET_FAIL_INSTALL);
else if (op == DPLANE_OP_IPSET_DELETE)
zsend_netfilter_notify_owner(ctx, ZEBRA_IPSET_NOTIFY_OWNER,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_REMOVED :
- ZAPI_IPSET_FAIL_REMOVE);
+ ? ZAPI_IPSET_REMOVED
+ : ZAPI_IPSET_FAIL_REMOVE);
else if (op == DPLANE_OP_IPSET_ENTRY_ADD)
- zsend_netfilter_notify_owner(ctx, ZEBRA_IPSET_ENTRY_NOTIFY_OWNER,
- res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_ENTRY_INSTALLED :
- ZAPI_IPSET_ENTRY_FAIL_INSTALL);
+ zsend_netfilter_notify_owner(
+ ctx, ZEBRA_IPSET_ENTRY_NOTIFY_OWNER,
+ res == ZEBRA_DPLANE_REQUEST_SUCCESS
+ ? ZAPI_IPSET_ENTRY_INSTALLED
+ : ZAPI_IPSET_ENTRY_FAIL_INSTALL);
else if (op == DPLANE_OP_IPSET_ENTRY_DELETE) {
- zsend_netfilter_notify_owner(ctx, ZEBRA_IPSET_ENTRY_NOTIFY_OWNER,
- res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_ENTRY_REMOVED :
- ZAPI_IPSET_ENTRY_FAIL_REMOVE);
+ zsend_netfilter_notify_owner(
+ ctx, ZEBRA_IPSET_ENTRY_NOTIFY_OWNER,
+ res == ZEBRA_DPLANE_REQUEST_SUCCESS
+ ? ZAPI_IPSET_ENTRY_REMOVED
+ : ZAPI_IPSET_ENTRY_FAIL_REMOVE);
} else
flog_err(
EC_ZEBRA_PBR_RULE_UPDATE,
If you are a new contributor to FRR, please see our contributing guidelines.
After making changes, you do not need to create a new PR. You should perform an amend or interactive rebase followed by a force push.
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: FailedOpenBSD 6 amd64 build: Failed (click for details)Make failed for OpenBSD 6 amd64 build: OpenBSD 6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17241/artifact/CI011BUILD/config.status/config.status Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsOpenBSD 6 amd64 build: Failed (click for details)Make failed for OpenBSD 6 amd64 build: OpenBSD 6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17241/artifact/CI011BUILD/config.status/config.status |
f8afa5d to
1c34702
Compare
polychaeta
left a comment
There was a problem hiding this comment.
Thanks for your contribution to FRR!
Click for style suggestions
To apply these suggestions:
curl -s https://gist.githubusercontent.com/polychaeta/aada8debb96b35ece9f64adb163dd72e/raw/dd54176b66166173bdc0792b4a193663835cc1c9/cr_8124_1613992090.diff | git apply
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index fd24ecd67..a7ceb56e4 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -877,8 +877,7 @@ void zsend_netfilter_notify_owner(const struct zebra_dplane_ctx *ctx,
if (IS_ZEBRA_DEBUG_PACKET)
zlog_debug("%s: Notifying %s id %u note %u", __func__,
zserv_command_string(cmd),
- dplane_ctx_netfilter_get_unique(ctx),
- note);
+ dplane_ctx_netfilter_get_unique(ctx), note);
for (ALL_LIST_ELEMENTS_RO(zrouter.client_list, node, client)) {
if (dplane_ctx_netfilter_get_sock(ctx) == client->sock)
@@ -893,8 +892,8 @@ void zsend_netfilter_notify_owner(const struct zebra_dplane_ctx *ctx,
zclient_create_header(s, cmd, VRF_DEFAULT);
stream_put(s, ¬e, sizeof(note));
stream_putl(s, dplane_ctx_rule_get_unique(ctx));
- if (cmd == ZEBRA_IPSET_NOTIFY_OWNER ||
- cmd == ZEBRA_IPSET_ENTRY_NOTIFY_OWNER) {
+ if (cmd == ZEBRA_IPSET_NOTIFY_OWNER
+ || cmd == ZEBRA_IPSET_ENTRY_NOTIFY_OWNER) {
stream_put(s, dplane_ctx_netfilter_get_ipset_name(ctx),
ZEBRA_IPSET_NAME_SIZE);
}
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index 1d32f59ec..69645d75a 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -717,7 +717,8 @@ static void dplane_ctx_free_internal(struct zebra_dplane_ctx *ctx)
for (ALL_LIST_ELEMENTS(ctx->u.netfilter.ifname_list,
node, nnode, ifname)) {
- LISTNODE_DETACH(ctx->u.netfilter.ifname_list, node);
+ LISTNODE_DETACH(ctx->u.netfilter.ifname_list,
+ node);
XFREE(MTYPE_DP_IFACE, ifname);
}
list_delete(&ctx->u.netfilter.ifname_list);
@@ -1955,7 +1956,7 @@ dplane_ctx_netfilter_get_interface_number(const struct zebra_dplane_ctx *ctx)
const char *
dplane_ctx_netfilter_get_interface_val(const struct zebra_dplane_ctx *ctx,
- uint32_t rank)
+ uint32_t rank)
{
struct listnode *node;
uint32_t cnt = 0;
@@ -2699,7 +2700,7 @@ static int dplane_ctx_iptable_init(struct zebra_dplane_ctx *ctx,
dplane_op2str(op), iptable->unique, iptable->fwmark,
family2str(iptable->family),
iptable->action == ZEBRA_IPTABLES_DROP ? "Drop"
- :"Forward");
+ : "Forward");
}
ctx->zd_op = op;
@@ -2785,8 +2786,9 @@ static int dplane_ctx_ipset_init(struct zebra_dplane_ctx *ctx,
*
* Return: Result status
*/
-static int dplane_ctx_ipset_entry_init(struct zebra_dplane_ctx *ctx, enum dplane_op_e op,
- struct zebra_pbr_ipset_entry *ipset_entry)
+static int
+dplane_ctx_ipset_entry_init(struct zebra_dplane_ctx *ctx, enum dplane_op_e op,
+ struct zebra_pbr_ipset_entry *ipset_entry)
{
struct zebra_pbr_ipset *ipset;
@@ -2794,7 +2796,7 @@ static int dplane_ctx_ipset_entry_init(struct zebra_dplane_ctx *ctx, enum dplane
if (IS_ZEBRA_DEBUG_DPLANE_DETAIL) {
zlog_debug("init dplane ctx %s: %s Unique %u filter %u",
dplane_op2str(op), ipset->ipset_name,
- ipset_entry->unique, ipset_entry->filter_bm);
+ ipset_entry->unique, ipset_entry->filter_bm);
}
ctx->zd_op = op;
@@ -4131,8 +4133,8 @@ done:
if (ret == AOK)
result = ZEBRA_DPLANE_REQUEST_QUEUED;
else {
- atomic_fetch_add_explicit(&zdplane_info.dg_ipset_entry_errors, 1,
- memory_order_relaxed);
+ atomic_fetch_add_explicit(&zdplane_info.dg_ipset_entry_errors,
+ 1, memory_order_relaxed);
dplane_ctx_free(&ctx);
}
@@ -4666,9 +4668,10 @@ static void kernel_dplane_log_detail(struct zebra_dplane_ctx *ctx)
break;
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE:
- zlog_debug("Dplane ipset entry update op %s, unique(%u), ctx %p",
- dplane_op2str(dplane_ctx_get_op(ctx)),
- dplane_ctx_netfilter_get_unique(ctx), ctx);
+ zlog_debug(
+ "Dplane ipset entry update op %s, unique(%u), ctx %p",
+ dplane_op2str(dplane_ctx_get_op(ctx)),
+ dplane_ctx_netfilter_get_unique(ctx), ctx);
break;
}
}
diff --git a/zebra/zebra_dplane.h b/zebra/zebra_dplane.h
index d6171c220..3f07c78f5 100644
--- a/zebra/zebra_dplane.h
+++ b/zebra/zebra_dplane.h
@@ -492,7 +492,7 @@ uint32_t
dplane_ctx_netfilter_get_interface_number(const struct zebra_dplane_ctx *ctx);
const char *
dplane_ctx_netfilter_get_interface_val(const struct zebra_dplane_ctx *ctx,
- uint32_t rank);
+ uint32_t rank);
uint16_t dplane_ctx_netfilter_get_tcpflags(const struct zebra_dplane_ctx *ctx);
uint16_t
dplane_ctx_netfilter_get_tcpmaskflags(const struct zebra_dplane_ctx *ctx);
diff --git a/zebra/zebra_pbr.c b/zebra/zebra_pbr.c
index 748bb98cf..f0f3349ea 100644
--- a/zebra/zebra_pbr.c
+++ b/zebra/zebra_pbr.c
@@ -914,36 +914,36 @@ void zebra_pbr_dplane_result(struct zebra_dplane_ctx *ctx)
zsend_netfilter_notify_owner(
ctx, ZEBRA_IPTABLE_NOTIFY_OWNER,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPTABLE_INSTALLED :
- ZAPI_IPTABLE_FAIL_INSTALL);
+ ? ZAPI_IPTABLE_INSTALLED
+ : ZAPI_IPTABLE_FAIL_INSTALL);
else if (op == DPLANE_OP_IPTABLE_DELETE)
zsend_netfilter_notify_owner(
ctx, ZEBRA_IPTABLE_NOTIFY_OWNER,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPTABLE_REMOVED :
- ZAPI_IPTABLE_FAIL_REMOVE);
+ ? ZAPI_IPTABLE_REMOVED
+ : ZAPI_IPTABLE_FAIL_REMOVE);
else if (op == DPLANE_OP_IPSET_ADD)
zsend_netfilter_notify_owner(ctx, ZEBRA_IPSET_NOTIFY_OWNER,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_INSTALLED :
- ZAPI_IPSET_FAIL_INSTALL);
+ ? ZAPI_IPSET_INSTALLED
+ : ZAPI_IPSET_FAIL_INSTALL);
else if (op == DPLANE_OP_IPSET_DELETE)
zsend_netfilter_notify_owner(ctx, ZEBRA_IPSET_NOTIFY_OWNER,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_REMOVED :
- ZAPI_IPSET_FAIL_REMOVE);
+ ? ZAPI_IPSET_REMOVED
+ : ZAPI_IPSET_FAIL_REMOVE);
else if (op == DPLANE_OP_IPSET_ENTRY_ADD)
zsend_netfilter_notify_owner(
ctx, ZEBRA_IPSET_ENTRY_NOTIFY_OWNER,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_ENTRY_INSTALLED :
- ZAPI_IPSET_ENTRY_FAIL_INSTALL);
+ ? ZAPI_IPSET_ENTRY_INSTALLED
+ : ZAPI_IPSET_ENTRY_FAIL_INSTALL);
else if (op == DPLANE_OP_IPSET_ENTRY_DELETE) {
zsend_netfilter_notify_owner(
ctx, ZEBRA_IPSET_ENTRY_NOTIFY_OWNER,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_ENTRY_REMOVED :
- ZAPI_IPSET_ENTRY_FAIL_REMOVE);
+ ? ZAPI_IPSET_ENTRY_REMOVED
+ : ZAPI_IPSET_ENTRY_FAIL_REMOVE);
} else
flog_err(
EC_ZEBRA_PBR_RULE_UPDATE,
If you are a new contributor to FRR, please see our contributing guidelines.
After making changes, you do not need to create a new PR. You should perform an amend or interactive rebase followed by a force push.
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDTest incomplete. See below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: IncompleteOpenBSD 6 amd64 build: Failed (click for details)Make failed for OpenBSD 6 amd64 build: OpenBSD 6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17243/artifact/CI011BUILD/config.status/config.status DetailsOpenBSD 6 amd64 build: Failed (click for details)Make failed for OpenBSD 6 amd64 build: OpenBSD 6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17243/artifact/CI011BUILD/config.status/config.status Ubuntu 18.04 arm7 build: Incomplete(check logs for details)Successful on other platforms/tests
|
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
1c34702 to
489056a
Compare
polychaeta
left a comment
There was a problem hiding this comment.
Thanks for your contribution to FRR!
Click for style suggestions
To apply these suggestions:
curl -s https://gist.githubusercontent.com/polychaeta/aaa9af513c441536ec193c6c200bca07/raw/768b887874ec57adb9f66e01150bf12aeb777de1/cr_8124_1613999161.diff | git apply
diff --git a/lib/zclient.c b/lib/zclient.c
index 0918ea78d..008b94907 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -1560,7 +1560,7 @@ bool zapi_ipset_notify_decode(struct stream *s, uint32_t *unique,
if (zclient_debug)
zlog_debug("%s: %u", __func__, uni);
*unique = uni;
- *note = (enum zapi_ipset_notify_owner )notew;
+ *note = (enum zapi_ipset_notify_owner)notew;
return true;
stream_failure:
@@ -1583,7 +1583,7 @@ bool zapi_ipset_entry_notify_decode(struct stream *s, uint32_t *unique,
if (zclient_debug)
zlog_debug("%s: %u", __func__, uni);
*unique = uni;
- *note = (enum zapi_ipset_entry_notify_owner )notew;
+ *note = (enum zapi_ipset_entry_notify_owner)notew;
return true;
@@ -1605,7 +1605,7 @@ bool zapi_iptable_notify_decode(struct stream *s,
if (zclient_debug)
zlog_debug("%s: %u", __func__, uni);
*unique = uni;
- *note = (enum zapi_iptable_notify_owner )notew;
+ *note = (enum zapi_iptable_notify_owner)notew;
return true;
If you are a new contributor to FRR, please see our contributing guidelines.
After making changes, you do not need to create a new PR. You should perform an amend or interactive rebase followed by a force push.
489056a to
6f44903
Compare
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: FailedDebian 10 amd64 build: Failed (click for details)Debian 10 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/DEB10BUILD/config.log/config.log.gzMake failed for Debian 10 amd64 build: Debian 10 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/DEB10BUILD/config.status/config.status Debian 8 amd64 build: Failed (click for details)Debian 8 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI008BLD/config.log/config.log.gzMake failed for Debian 8 amd64 build: Debian 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI008BLD/config.status/config.status FreeBSD 11 amd64 build: Failed (click for details)Make failed for FreeBSD 11 amd64 build: FreeBSD 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI009BUILD/config.status/config.status Fedora 29 amd64 build: Failed (click for details)Make failed for Fedora 29 amd64 build: Fedora 29 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/F29BUILD/config.status/config.status OpenBSD 6 amd64 build: Failed (click for details)Make failed for OpenBSD 6 amd64 build: OpenBSD 6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI011BUILD/config.status/config.status Ubuntu 18.04 arm8 build: Failed (click for details)Ubuntu 18.04 arm8 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U18ARM8BUILD/config.status/config.status Ubuntu 18.04 arm8 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U18ARM8BUILD/config.log/config.log.gzMake failed for Ubuntu 18.04 arm8 build: Ubuntu 18.04 amd64 build: Failed (click for details)Make failed for Ubuntu 18.04 amd64 build: Ubuntu 18.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U1804AMD64/config.status/config.status FreeBSD 12 amd64 build: Failed (click for details)Make failed for FreeBSD 12 amd64 build: FreeBSD 12 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/FBSD12AMD64/config.status/config.status CentOS 8 amd64 build: Failed (click for details)CentOS 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CENTOS8BUILD/config.status/config.statusMake failed for CentOS 8 amd64 build: CentOS 8 amd64 build: Unknown Log <config.log.gz> Ubuntu 16.04 arm7 build: Failed (click for details)Ubuntu 16.04 arm7 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI101BUILD/config.status/config.status Ubuntu 16.04 arm7 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI101BUILD/config.log/config.log.gzMake failed for Ubuntu 16.04 arm7 build: Debian 9 amd64 build: Failed (click for details)Make failed for Debian 9 amd64 build: Debian 9 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI021BUILD/config.status/config.status Ubuntu 18.04 ppc64le build: Failed (click for details)Make failed for Ubuntu 18.04 ppc64le build: Ubuntu 18.04 ppc64le build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U1804PPC64LEBUILD/config.status/config.status NetBSD 8 amd64 build: Failed (click for details)NetBSD 8 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI012BUILD/config.log/config.log.gzMake failed for NetBSD 8 amd64 build: NetBSD 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI012BUILD/config.status/config.status Ubuntu 16.04 amd64 build: Failed (click for details)Make failed for Ubuntu 16.04 amd64 build: Ubuntu 16.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI014BUILD/config.status/config.status Ubuntu 18.04 arm7 build: Failed (click for details)Make failed for Ubuntu 18.04 arm7 build: Ubuntu 18.04 arm7 build: Unknown Log <config.log.gz> Ubuntu 16.04 arm8 build: Failed (click for details)Make failed for Ubuntu 16.04 arm8 build: Ubuntu 16.04 arm8 build: Unknown Log <config.log.gz> Ubuntu 20.04 amd64 build: Failed (click for details)Ubuntu 20.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U2004AMD64BUILD/config.status/config.statusMake failed for Ubuntu 20.04 amd64 build: Ubuntu 20.04 amd64 build: Unknown Log <config.log.gz> Ubuntu 16.04 i386 build: Failed (click for details)Make failed for Ubuntu 16.04 i386 build: Ubuntu 16.04 i386 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U1604I386/config.status/config.status Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsDebian 10 amd64 build: Failed (click for details)Debian 10 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/DEB10BUILD/config.log/config.log.gzMake failed for Debian 10 amd64 build: Debian 10 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/DEB10BUILD/config.status/config.status Debian 8 amd64 build: Failed (click for details)Debian 8 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI008BLD/config.log/config.log.gzMake failed for Debian 8 amd64 build: Debian 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI008BLD/config.status/config.status FreeBSD 11 amd64 build: Failed (click for details)Make failed for FreeBSD 11 amd64 build: FreeBSD 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI009BUILD/config.status/config.status Fedora 29 amd64 build: Failed (click for details)Make failed for Fedora 29 amd64 build: Fedora 29 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/F29BUILD/config.status/config.status OpenBSD 6 amd64 build: Failed (click for details)Make failed for OpenBSD 6 amd64 build: OpenBSD 6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI011BUILD/config.status/config.status Ubuntu 18.04 arm8 build: Failed (click for details)Ubuntu 18.04 arm8 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U18ARM8BUILD/config.status/config.status Ubuntu 18.04 arm8 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U18ARM8BUILD/config.log/config.log.gzMake failed for Ubuntu 18.04 arm8 build: Ubuntu 18.04 amd64 build: Failed (click for details)Make failed for Ubuntu 18.04 amd64 build: Ubuntu 18.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U1804AMD64/config.status/config.status FreeBSD 12 amd64 build: Failed (click for details)Make failed for FreeBSD 12 amd64 build: FreeBSD 12 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/FBSD12AMD64/config.status/config.status CentOS 8 amd64 build: Failed (click for details)CentOS 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CENTOS8BUILD/config.status/config.statusMake failed for CentOS 8 amd64 build: CentOS 8 amd64 build: Unknown Log <config.log.gz> Ubuntu 16.04 arm7 build: Failed (click for details)Ubuntu 16.04 arm7 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI101BUILD/config.status/config.status Ubuntu 16.04 arm7 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI101BUILD/config.log/config.log.gzMake failed for Ubuntu 16.04 arm7 build: Debian 9 amd64 build: Failed (click for details)Make failed for Debian 9 amd64 build: Debian 9 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI021BUILD/config.status/config.status Ubuntu 18.04 ppc64le build: Failed (click for details)Make failed for Ubuntu 18.04 ppc64le build: Ubuntu 18.04 ppc64le build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U1804PPC64LEBUILD/config.status/config.status NetBSD 8 amd64 build: Failed (click for details)NetBSD 8 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI012BUILD/config.log/config.log.gzMake failed for NetBSD 8 amd64 build: NetBSD 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI012BUILD/config.status/config.status Ubuntu 16.04 amd64 build: Failed (click for details)Make failed for Ubuntu 16.04 amd64 build: Ubuntu 16.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/CI014BUILD/config.status/config.status Ubuntu 18.04 arm7 build: Failed (click for details)Make failed for Ubuntu 18.04 arm7 build: Ubuntu 18.04 arm7 build: Unknown Log <config.log.gz> Ubuntu 16.04 arm8 build: Failed (click for details)Make failed for Ubuntu 16.04 arm8 build: Ubuntu 16.04 arm8 build: Unknown Log <config.log.gz> Ubuntu 20.04 amd64 build: Failed (click for details)Ubuntu 20.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U2004AMD64BUILD/config.status/config.statusMake failed for Ubuntu 20.04 amd64 build: Ubuntu 20.04 amd64 build: Unknown Log <config.log.gz> Ubuntu 16.04 i386 build: Failed (click for details)Make failed for Ubuntu 16.04 i386 build: Ubuntu 16.04 i386 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17244/artifact/U1604I386/config.status/config.status |
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: FailedDebian 8 amd64 build: Failed (click for details)Debian 8 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CI008BLD/config.log/config.log.gzMake failed for Debian 8 amd64 build: Debian 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CI008BLD/config.status/config.status Debian 10 amd64 build: Failed (click for details)Debian 10 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/DEB10BUILD/config.log/config.log.gzMake failed for Debian 10 amd64 build: Debian 10 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/DEB10BUILD/config.status/config.status FreeBSD 11 amd64 build: Failed (click for details)Make failed for FreeBSD 11 amd64 build: FreeBSD 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CI009BUILD/config.status/config.status OpenBSD 6 amd64 build: Failed (click for details)Make failed for OpenBSD 6 amd64 build: OpenBSD 6 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CI011BUILD/config.status/config.status Ubuntu 18.04 arm8 build: Failed (click for details)Ubuntu 18.04 arm8 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/U18ARM8BUILD/config.status/config.status Ubuntu 18.04 arm8 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/U18ARM8BUILD/config.log/config.log.gzMake failed for Ubuntu 18.04 arm8 build: Ubuntu 16.04 amd64 build: Failed (click for details)Make failed for Ubuntu 16.04 amd64 build: Ubuntu 16.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CI014BUILD/config.status/config.status Ubuntu 18.04 amd64 build: Failed (click for details)Make failed for Ubuntu 18.04 amd64 build: Ubuntu 18.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/U1804AMD64/config.status/config.status FreeBSD 12 amd64 build: Failed (click for details)Make failed for FreeBSD 12 amd64 build: FreeBSD 12 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/FBSD12AMD64/config.status/config.status CentOS 8 amd64 build: Failed (click for details)CentOS 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CENTOS8BUILD/config.status/config.statusMake failed for CentOS 8 amd64 build: CentOS 8 amd64 build: Unknown Log <config.log.gz> Ubuntu 16.04 arm7 build: Failed (click for details)Ubuntu 16.04 arm7 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CI101BUILD/config.status/config.status Ubuntu 16.04 arm7 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CI101BUILD/config.log/config.log.gzMake failed for Ubuntu 16.04 arm7 build: Ubuntu 18.04 ppc64le build: Failed (click for details)Make failed for Ubuntu 18.04 ppc64le build: Ubuntu 18.04 ppc64le build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/U1804PPC64LEBUILD/config.status/config.status Ubuntu 20.04 amd64 build: Failed (click for details)Ubuntu 20.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/U2004AMD64BUILD/config.status/config.statusMake failed for Ubuntu 20.04 amd64 build: Ubuntu 20.04 amd64 build: Unknown Log <config.log.gz> Ubuntu 18.04 arm7 build: Failed (click for details)Make failed for Ubuntu 18.04 arm7 build: Ubuntu 18.04 arm7 build: Unknown Log <config.log.gz> NetBSD 8 amd64 build: Failed (click for details)NetBSD 8 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CI012BUILD/config.log/config.log.gzMake failed for NetBSD 8 amd64 build: NetBSD 8 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CI012BUILD/config.status/config.status Debian 9 amd64 build: Failed (click for details)Make failed for Debian 9 amd64 build: Debian 9 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/CI021BUILD/config.status/config.status Ubuntu 16.04 arm8 build: Failed (click for details)Make failed for Ubuntu 16.04 arm8 build: Ubuntu 16.04 arm8 build: Unknown Log <config.log.gz> Fedora 29 amd64 build: Failed (click for details)Make failed for Fedora 29 amd64 build: Fedora 29 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/F29BUILD/config.status/config.status Ubuntu 16.04 i386 build: Failed (click for details)Make failed for Ubuntu 16.04 i386 build: Ubuntu 16.04 i386 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17245/artifact/U1604I386/config.status/config.status Successful on other platforms/tests
|
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
6f44903 to
7046d80
Compare
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17248/ This is a comment from an automated CI system. CLANG Static Analyzer Summary
4 Static Analyzer issues remaining.See details at |
zebra/zebra_pbr.c
Outdated
| ctx, i)); | ||
| } | ||
| } | ||
| ret = hook_call(zebra_pbr_iptable_update, mode, &ipt); |
There was a problem hiding this comment.
I don't see an implementation of this in the code, just these hook calls - how are these objects being programmed?
There was a problem hiding this comment.
there was an old pull request proposed that was relying on shell scripts.
obviously, because that was not an ABI API, the pull request was refused, though I was confident.
like what has been done for FPM, I think we have to prepare the zebra_dplane module handle queries that are not purely netlink based. 2 examples:
- this hook script
- as an other subject, zebra dplane should handle "ip forwarding" vty call. today, onlinux we use fopen().. but I think this should be also handled in zebra dplane too.
zebra/zebra_dplane.c
Outdated
| struct dplane_ctx_rule old; | ||
| }; | ||
|
|
||
| struct dplane_netfilter_info { |
There was a problem hiding this comment.
It might clean up the accessor apis if this just held a zebra_pbr_ipset_entry and maybe _table, instead of a large number of individual attributes?
There was a problem hiding this comment.
Actually, I dont think; because when you handle ipset attributes, you may need to know on which iptable entry it is referenced. This is why I reused the same structure to handle both ipset and iptable objects.
any objections?
There was a problem hiding this comment.
what I meant was that you've got code that moves one attribute at a time to 'init' the fields here, and then accessors that access one field at a time to reconstruct ... an ipset, iptable, etc for processing. if you just did a union of the three structs here, populated them directly in the 'init' step, and then had three accessors to re-populate them, you'd save a lot of lines? you might still need special handling for things like the array of names, but you'd reduce the footprint quite a bit.
There was a problem hiding this comment.
ok, I got what you mean.
let restart from scratch by using 3 new apis :
dplane_iptable_get()
dplane_ipset_get()
dplane_ipset_entry_get()
| dplane_ctx_rule_get_dst_ip(const struct zebra_dplane_ctx *ctx); | ||
| const struct prefix * | ||
| dplane_ctx_rule_get_old_dst_ip(const struct zebra_dplane_ctx *ctx); | ||
| /* Accessors for policy based routing iptable information */ |
There was a problem hiding this comment.
Same comment here about attribute-by-attribute accessors: wouldn't it be cleaner to just have a get_pbr_ipset() accessor, a _get_pbr_iptable() accessor, that gets a group of values into the pbr struct at once?
There was a problem hiding this comment.
again, at the very least, wouldn't it make more sense to have more compact accessors - at least that would encapsulate the code required to init the pbr structs?
There was a problem hiding this comment.
hmm, no, I didn't mean "get a pointer from inside the context" - I just meant "load up a pbr struct from info inside the context" - like:
bool dplane_ctx_get_pbr_iptable(const struct zebra_dplane_ctx *ctx,
struct zebra_pbr_iptable *table);
You can store the bits and pieces inside the context in various ways, but this lets you extract them in the way that is most meaningful and compact?
There was a problem hiding this comment.
ok, I tried to reflect this in the new proposed pull request .
zebra/zapi_msg.h
Outdated
| extern void zsend_iptable_notify_owner(struct zebra_pbr_iptable *iptable, | ||
| enum zapi_iptable_notify_owner note); | ||
|
|
||
| extern void zsend_netfilter_notify_owner(const struct zebra_dplane_ctx *ctx, |
There was a problem hiding this comment.
can 'ctx' be 'const' here?
There was a problem hiding this comment.
I think yes, like for zsend_rule_notify_owner.
7046d80 to
65f0ef2
Compare
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests Ubuntu 18.04 arm8 part 4: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 4: No useful log foundSuccessful on other platforms/tests
CLANG Static Analyzer Summary
4 Static Analyzer issues remaining.See details at |
zebra/zebra_dplane.c
Outdated
| struct dplane_ctx_rule old; | ||
| }; | ||
|
|
||
| struct dplane_netfilter_info { |
There was a problem hiding this comment.
what I meant was that you've got code that moves one attribute at a time to 'init' the fields here, and then accessors that access one field at a time to reconstruct ... an ipset, iptable, etc for processing. if you just did a union of the three structs here, populated them directly in the 'init' step, and then had three accessors to re-populate them, you'd save a lot of lines? you might still need special handling for things like the array of names, but you'd reduce the footprint quite a bit.
| dplane_ctx_rule_get_dst_ip(const struct zebra_dplane_ctx *ctx); | ||
| const struct prefix * | ||
| dplane_ctx_rule_get_old_dst_ip(const struct zebra_dplane_ctx *ctx); | ||
| /* Accessors for policy based routing iptable information */ |
There was a problem hiding this comment.
again, at the very least, wouldn't it make more sense to have more compact accessors - at least that would encapsulate the code required to init the pbr structs?
65f0ef2 to
85e7e3e
Compare
polychaeta
left a comment
There was a problem hiding this comment.
Thanks for your contribution to FRR!
Click for style suggestions
To apply these suggestions:
curl -s https://gist.githubusercontent.com/polychaeta/0db356c29dd5ff300a9299edd3a58fd0/raw/6e7950099b329e037b443f3abd525e233e8af2b3/cr_8124_1614603476.diff | git apply
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index fa994638b..7ae25f257 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -866,7 +866,8 @@ void zsend_rule_notify_owner(const struct zebra_dplane_ctx *ctx,
zserv_send_message(client, s);
}
-void zsend_iptable_notify_owner(const struct zebra_dplane_ctx *ctx, uint16_t note)
+void zsend_iptable_notify_owner(const struct zebra_dplane_ctx *ctx,
+ uint16_t note)
{
struct listnode *node;
struct zserv *client;
@@ -900,8 +901,7 @@ void zsend_iptable_notify_owner(const struct zebra_dplane_ctx *ctx, uint16_t not
zserv_send_message(client, s);
}
-void zsend_ipset_notify_owner(const struct zebra_dplane_ctx *ctx,
- uint16_t note)
+void zsend_ipset_notify_owner(const struct zebra_dplane_ctx *ctx, uint16_t note)
{
struct listnode *node;
struct zserv *client;
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index 9f8429b60..148f60efe 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -682,10 +682,12 @@ static void dplane_ctx_free_internal(struct zebra_dplane_ctx *ctx)
struct listnode *node, *nnode;
char *ifname;
- for (ALL_LIST_ELEMENTS(ctx->u.iptable.interface_name_list,
- node, nnode, ifname)) {
- LISTNODE_DETACH(ctx->u.iptable.interface_name_list,
- node);
+ for (ALL_LIST_ELEMENTS(
+ ctx->u.iptable.interface_name_list, node,
+ nnode, ifname)) {
+ LISTNODE_DETACH(
+ ctx->u.iptable.interface_name_list,
+ node);
XFREE(MTYPE_DP_NETFILTER, ifname);
}
list_delete(&ctx->u.iptable.interface_name_list);
@@ -1903,8 +1905,7 @@ dplane_ctx_iptable_get(const struct zebra_dplane_ctx *ctx)
return (struct zebra_pbr_iptable *)&ctx->u.iptable;
}
-struct zebra_pbr_ipset *
-dplane_ctx_ipset_get(const struct zebra_dplane_ctx *ctx)
+struct zebra_pbr_ipset *dplane_ctx_ipset_get(const struct zebra_dplane_ctx *ctx)
{
DPLANE_CTX_VALID(ctx);
@@ -2582,12 +2583,15 @@ dplane_ctx_ipset_entry_init(struct zebra_dplane_ctx *ctx, enum dplane_op_e op,
ctx->zd_vrf_id = ipset->vrf_id;
- memcpy(&ctx->u.ipset_entry, ipset_entry, sizeof(struct zebra_pbr_ipset_entry));
+ memcpy(&ctx->u.ipset_entry, ipset_entry,
+ sizeof(struct zebra_pbr_ipset_entry));
ctx->u.ipset_entry.backpointer = NULL;
- ctx->u.ipset_entry.info = XCALLOC(MTYPE_DP_NETFILTER,
- sizeof(struct zebra_pbr_ipset_backpointer_info));
+ ctx->u.ipset_entry.info =
+ XCALLOC(MTYPE_DP_NETFILTER,
+ sizeof(struct zebra_pbr_ipset_backpointer_info));
ctx->u.ipset_entry.info->type = ipset->type;
- memcpy(ctx->u.ipset_entry.info->ipset_name, ipset->ipset_name, ZEBRA_IPSET_NAME_SIZE);
+ memcpy(ctx->u.ipset_entry.info->ipset_name, ipset->ipset_name,
+ ZEBRA_IPSET_NAME_SIZE);
return AOK;
}
@@ -4439,42 +4443,37 @@ static void kernel_dplane_log_detail(struct zebra_dplane_ctx *ctx)
break;
case DPLANE_OP_IPTABLE_ADD:
- case DPLANE_OP_IPTABLE_DELETE:
- {
- struct zebra_pbr_iptable *ipt = dplane_ctx_iptable_get(ctx);
- uint32_t unique = 0;
-
- if (ipt)
- unique = ipt->unique;
- zlog_debug("Dplane iptable update op %s, unique(%u), ctx %p",
- dplane_op2str(dplane_ctx_get_op(ctx)), unique, ctx);
- }
- break;
+ case DPLANE_OP_IPTABLE_DELETE: {
+ struct zebra_pbr_iptable *ipt = dplane_ctx_iptable_get(ctx);
+ uint32_t unique = 0;
+
+ if (ipt)
+ unique = ipt->unique;
+ zlog_debug("Dplane iptable update op %s, unique(%u), ctx %p",
+ dplane_op2str(dplane_ctx_get_op(ctx)), unique, ctx);
+ } break;
case DPLANE_OP_IPSET_ADD:
- case DPLANE_OP_IPSET_DELETE:
- {
- struct zebra_pbr_ipset *ipset = dplane_ctx_ipset_get(ctx);
- uint32_t unique = 0;
-
- if (ipset)
- unique = ipset->unique;
- zlog_debug("Dplane ipset update op %s, unique(%u), ctx %p",
- dplane_op2str(dplane_ctx_get_op(ctx)), unique, ctx);
- }
- break;
+ case DPLANE_OP_IPSET_DELETE: {
+ struct zebra_pbr_ipset *ipset = dplane_ctx_ipset_get(ctx);
+ uint32_t unique = 0;
+
+ if (ipset)
+ unique = ipset->unique;
+ zlog_debug("Dplane ipset update op %s, unique(%u), ctx %p",
+ dplane_op2str(dplane_ctx_get_op(ctx)), unique, ctx);
+ } break;
case DPLANE_OP_IPSET_ENTRY_ADD:
- case DPLANE_OP_IPSET_ENTRY_DELETE:
- {
- struct zebra_pbr_ipset_entry *ipent = dplane_ctx_ipset_entry_get(ctx);
- uint32_t unique = 0;
-
- if (ipent)
- unique = ipent->unique;
- zlog_debug(
- "Dplane ipset entry update op %s, unique(%u), ctx %p",
- dplane_op2str(dplane_ctx_get_op(ctx)), unique, ctx);
- }
- break;
+ case DPLANE_OP_IPSET_ENTRY_DELETE: {
+ struct zebra_pbr_ipset_entry *ipent =
+ dplane_ctx_ipset_entry_get(ctx);
+ uint32_t unique = 0;
+
+ if (ipent)
+ unique = ipent->unique;
+ zlog_debug(
+ "Dplane ipset entry update op %s, unique(%u), ctx %p",
+ dplane_op2str(dplane_ctx_get_op(ctx)), unique, ctx);
+ } break;
}
}
diff --git a/zebra/zebra_pbr.c b/zebra/zebra_pbr.c
index f7ff44c6c..2fe543af8 100644
--- a/zebra/zebra_pbr.c
+++ b/zebra/zebra_pbr.c
@@ -599,7 +599,8 @@ void zebra_pbr_process_ipset_entry(struct zebra_dplane_ctx *ctx)
dplane_ctx_set_status(ctx, ZEBRA_DPLANE_REQUEST_FAILURE);
return;
}
- memcpy(&ipset.ipset_name, ipset_entry->info->ipset_name, ZEBRA_IPSET_NAME_SIZE);
+ memcpy(&ipset.ipset_name, ipset_entry->info->ipset_name,
+ ZEBRA_IPSET_NAME_SIZE);
ipset_entry->backpointer = &ipset;
ret = hook_call(zebra_pbr_ipset_entry_update, mode, ipset_entry);
@@ -865,33 +866,35 @@ void zebra_pbr_dplane_result(struct zebra_dplane_ctx *ctx)
? ZAPI_RULE_REMOVED
: ZAPI_RULE_FAIL_REMOVE);
else if (op == DPLANE_OP_IPTABLE_ADD)
- zsend_iptable_notify_owner(
- ctx, res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPTABLE_INSTALLED
- : ZAPI_IPTABLE_FAIL_INSTALL);
+ zsend_iptable_notify_owner(ctx,
+ res == ZEBRA_DPLANE_REQUEST_SUCCESS
+ ? ZAPI_IPTABLE_INSTALLED
+ : ZAPI_IPTABLE_FAIL_INSTALL);
else if (op == DPLANE_OP_IPTABLE_DELETE)
- zsend_iptable_notify_owner(
- ctx, res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPTABLE_REMOVED
- : ZAPI_IPTABLE_FAIL_REMOVE);
+ zsend_iptable_notify_owner(ctx,
+ res == ZEBRA_DPLANE_REQUEST_SUCCESS
+ ? ZAPI_IPTABLE_REMOVED
+ : ZAPI_IPTABLE_FAIL_REMOVE);
else if (op == DPLANE_OP_IPSET_ADD)
- zsend_ipset_notify_owner(ctx, res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_INSTALLED
- : ZAPI_IPSET_FAIL_INSTALL);
+ zsend_ipset_notify_owner(ctx,
+ res == ZEBRA_DPLANE_REQUEST_SUCCESS
+ ? ZAPI_IPSET_INSTALLED
+ : ZAPI_IPSET_FAIL_INSTALL);
else if (op == DPLANE_OP_IPSET_DELETE)
- zsend_ipset_notify_owner(ctx, res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_REMOVED
- : ZAPI_IPSET_FAIL_REMOVE);
+ zsend_ipset_notify_owner(ctx,
+ res == ZEBRA_DPLANE_REQUEST_SUCCESS
+ ? ZAPI_IPSET_REMOVED
+ : ZAPI_IPSET_FAIL_REMOVE);
else if (op == DPLANE_OP_IPSET_ENTRY_ADD)
zsend_ipset_entry_notify_owner(
ctx, res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_ENTRY_INSTALLED
- : ZAPI_IPSET_ENTRY_FAIL_INSTALL);
+ ? ZAPI_IPSET_ENTRY_INSTALLED
+ : ZAPI_IPSET_ENTRY_FAIL_INSTALL);
else if (op == DPLANE_OP_IPSET_ENTRY_DELETE) {
zsend_ipset_entry_notify_owner(
ctx, res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPSET_ENTRY_REMOVED
- : ZAPI_IPSET_ENTRY_FAIL_REMOVE);
+ ? ZAPI_IPSET_ENTRY_REMOVED
+ : ZAPI_IPSET_ENTRY_FAIL_REMOVE);
} else
flog_err(
EC_ZEBRA_PBR_RULE_UPDATE,
If you are a new contributor to FRR, please see our contributing guidelines.
After making changes, you do not need to create a new PR. You should perform an amend or interactive rebase followed by a force push.
85e7e3e to
e5cebe3
Compare
polychaeta
left a comment
There was a problem hiding this comment.
Thanks for your contribution to FRR!
Click for style suggestions
To apply these suggestions:
curl -s https://gist.githubusercontent.com/polychaeta/1015f5c06ad8e441a7aeb0c925e0e044/raw/ffa4dad79559993d4fee04adafa2c5dbb7140d36/cr_8124_1614605005.diff | git apply
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index d403784ab..7ae25f257 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -866,7 +866,8 @@ void zsend_rule_notify_owner(const struct zebra_dplane_ctx *ctx,
zserv_send_message(client, s);
}
-void zsend_iptable_notify_owner(const struct zebra_dplane_ctx *ctx, uint16_t note)
+void zsend_iptable_notify_owner(const struct zebra_dplane_ctx *ctx,
+ uint16_t note)
{
struct listnode *node;
struct zserv *client;
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index 0eeddb391..02d06a039 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -683,8 +683,8 @@ static void dplane_ctx_free_internal(struct zebra_dplane_ctx *ctx)
char *ifname;
for (ALL_LIST_ELEMENTS(
- ctx->u.iptable.interface_name_list,
- node, nnode, ifname)) {
+ ctx->u.iptable.interface_name_list, node,
+ nnode, ifname)) {
LISTNODE_DETACH(
ctx->u.iptable.interface_name_list,
node);
@@ -4466,14 +4466,15 @@ static void kernel_dplane_log_detail(struct zebra_dplane_ctx *ctx)
} break;
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE: {
- struct zebra_pbr_ipset_entry *ipent = dplane_ctx_ipset_entry_get(ctx);
+ struct zebra_pbr_ipset_entry *ipent =
+ dplane_ctx_ipset_entry_get(ctx);
uint32_t unique = 0;
if (ipent)
unique = ipent->unique;
zlog_debug(
- "Dplane ipset entry update op %s, unique(%u), ctx %p",
- dplane_op2str(dplane_ctx_get_op(ctx)), unique, ctx);
+ "Dplane ipset entry update op %s, unique(%u), ctx %p",
+ dplane_op2str(dplane_ctx_get_op(ctx)), unique, ctx);
} break;
}
}
diff --git a/zebra/zebra_pbr.c b/zebra/zebra_pbr.c
index 181adc9f2..e53da5232 100644
--- a/zebra/zebra_pbr.c
+++ b/zebra/zebra_pbr.c
@@ -868,13 +868,13 @@ void zebra_pbr_dplane_result(struct zebra_dplane_ctx *ctx)
else if (op == DPLANE_OP_IPTABLE_ADD)
zsend_iptable_notify_owner(ctx,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPTABLE_INSTALLED
- : ZAPI_IPTABLE_FAIL_INSTALL);
+ ? ZAPI_IPTABLE_INSTALLED
+ : ZAPI_IPTABLE_FAIL_INSTALL);
else if (op == DPLANE_OP_IPTABLE_DELETE)
zsend_iptable_notify_owner(ctx,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPTABLE_REMOVED
- : ZAPI_IPTABLE_FAIL_REMOVE);
+ ? ZAPI_IPTABLE_REMOVED
+ : ZAPI_IPTABLE_FAIL_REMOVE);
else if (op == DPLANE_OP_IPSET_ADD)
zsend_ipset_notify_owner(ctx,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
If you are a new contributor to FRR, please see our contributing guidelines.
After making changes, you do not need to create a new PR. You should perform an amend or interactive rebase followed by a force push.
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests Ubuntu 16.04 i386 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604I386-17371/test Topology Tests failed for Topotests Ubuntu 16.04 i386 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17371/artifact/TP3U1604I386/ErrorLog/log_topotests.txt Topotests Ubuntu 18.04 arm8 part 3: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 3: No useful log foundCentOS 7 rpm pkg check: Failed (click for details)CentOS 7 rpm pkg check: No useful log foundTopotests Ubuntu 18.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1804AMD64-17371/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17371/artifact/TP3U1804AMD64/ErrorLog/log_topotests.txt Topotests Ubuntu 16.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604AMD64-17371/test Topology Tests failed for Topotests Ubuntu 16.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17371/artifact/TP3U1604AMD64/ErrorLog/log_topotests.txt Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsTopotests Ubuntu 16.04 i386 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604I386-17371/test Topology Tests failed for Topotests Ubuntu 16.04 i386 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17371/artifact/TP3U1604I386/ErrorLog/log_topotests.txt Topotests Ubuntu 18.04 arm8 part 3: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 3: No useful log foundCentOS 7 rpm pkg check: Failed (click for details)CentOS 7 rpm pkg check: No useful log foundTopotests Ubuntu 18.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1804AMD64-17371/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17371/artifact/TP3U1804AMD64/ErrorLog/log_topotests.txt Topotests Ubuntu 16.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604AMD64-17371/test Topology Tests failed for Topotests Ubuntu 16.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17371/artifact/TP3U1604AMD64/ErrorLog/log_topotests.txt CLANG Static Analyzer Summary
4 Static Analyzer issues remaining.See details at |
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests Ubuntu 16.04 i386 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604I386-17372/test Topology Tests failed for Topotests Ubuntu 16.04 i386 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17372/artifact/TP3U1604I386/ErrorLog/log_topotests.txt Topotests Ubuntu 18.04 arm8 part 3: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 3: No useful log foundCentOS 7 rpm pkg check: Failed (click for details)CentOS 7 rpm pkg check: No useful log foundTopotests Ubuntu 18.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1804AMD64-17372/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17372/artifact/TP3U1804AMD64/ErrorLog/log_topotests.txt Topotests Ubuntu 16.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604AMD64-17372/test Topology Tests failed for Topotests Ubuntu 16.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17372/artifact/TP3U1604AMD64/ErrorLog/log_topotests.txt Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsTopotests Ubuntu 16.04 i386 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604I386-17372/test Topology Tests failed for Topotests Ubuntu 16.04 i386 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17372/artifact/TP3U1604I386/ErrorLog/log_topotests.txt Topotests Ubuntu 18.04 arm8 part 3: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 3: No useful log foundCentOS 7 rpm pkg check: Failed (click for details)CentOS 7 rpm pkg check: No useful log foundTopotests Ubuntu 18.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1804AMD64-17372/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17372/artifact/TP3U1804AMD64/ErrorLog/log_topotests.txt Topotests Ubuntu 16.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604AMD64-17372/test Topology Tests failed for Topotests Ubuntu 16.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17372/artifact/TP3U1604AMD64/ErrorLog/log_topotests.txt CLANG Static Analyzer Summary
4 Static Analyzer issues remaining.See details at |
e5cebe3 to
c2b3105
Compare
polychaeta
left a comment
There was a problem hiding this comment.
Thanks for your contribution to FRR!
Click for style suggestions
To apply these suggestions:
curl -s https://gist.githubusercontent.com/polychaeta/9a224dd684d089e265982200c85ed407/raw/ffa4dad79559993d4fee04adafa2c5dbb7140d36/cr_8124_1614672448.diff | git apply
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index d403784ab..7ae25f257 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -866,7 +866,8 @@ void zsend_rule_notify_owner(const struct zebra_dplane_ctx *ctx,
zserv_send_message(client, s);
}
-void zsend_iptable_notify_owner(const struct zebra_dplane_ctx *ctx, uint16_t note)
+void zsend_iptable_notify_owner(const struct zebra_dplane_ctx *ctx,
+ uint16_t note)
{
struct listnode *node;
struct zserv *client;
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index 0eeddb391..02d06a039 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -683,8 +683,8 @@ static void dplane_ctx_free_internal(struct zebra_dplane_ctx *ctx)
char *ifname;
for (ALL_LIST_ELEMENTS(
- ctx->u.iptable.interface_name_list,
- node, nnode, ifname)) {
+ ctx->u.iptable.interface_name_list, node,
+ nnode, ifname)) {
LISTNODE_DETACH(
ctx->u.iptable.interface_name_list,
node);
@@ -4466,14 +4466,15 @@ static void kernel_dplane_log_detail(struct zebra_dplane_ctx *ctx)
} break;
case DPLANE_OP_IPSET_ENTRY_ADD:
case DPLANE_OP_IPSET_ENTRY_DELETE: {
- struct zebra_pbr_ipset_entry *ipent = dplane_ctx_ipset_entry_get(ctx);
+ struct zebra_pbr_ipset_entry *ipent =
+ dplane_ctx_ipset_entry_get(ctx);
uint32_t unique = 0;
if (ipent)
unique = ipent->unique;
zlog_debug(
- "Dplane ipset entry update op %s, unique(%u), ctx %p",
- dplane_op2str(dplane_ctx_get_op(ctx)), unique, ctx);
+ "Dplane ipset entry update op %s, unique(%u), ctx %p",
+ dplane_op2str(dplane_ctx_get_op(ctx)), unique, ctx);
} break;
}
}
diff --git a/zebra/zebra_pbr.c b/zebra/zebra_pbr.c
index 181adc9f2..e53da5232 100644
--- a/zebra/zebra_pbr.c
+++ b/zebra/zebra_pbr.c
@@ -868,13 +868,13 @@ void zebra_pbr_dplane_result(struct zebra_dplane_ctx *ctx)
else if (op == DPLANE_OP_IPTABLE_ADD)
zsend_iptable_notify_owner(ctx,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPTABLE_INSTALLED
- : ZAPI_IPTABLE_FAIL_INSTALL);
+ ? ZAPI_IPTABLE_INSTALLED
+ : ZAPI_IPTABLE_FAIL_INSTALL);
else if (op == DPLANE_OP_IPTABLE_DELETE)
zsend_iptable_notify_owner(ctx,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
- ? ZAPI_IPTABLE_REMOVED
- : ZAPI_IPTABLE_FAIL_REMOVE);
+ ? ZAPI_IPTABLE_REMOVED
+ : ZAPI_IPTABLE_FAIL_REMOVE);
else if (op == DPLANE_OP_IPSET_ADD)
zsend_ipset_notify_owner(ctx,
res == ZEBRA_DPLANE_REQUEST_SUCCESS
If you are a new contributor to FRR, please see our contributing guidelines.
After making changes, you do not need to create a new PR. You should perform an amend or interactive rebase followed by a force push.
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests Ubuntu 18.04 arm8 part 3: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 3: No useful log foundTopotests Ubuntu 16.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604AMD64-17402/test Topology Tests failed for Topotests Ubuntu 16.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17402/artifact/TP3U1604AMD64/ErrorLog/log_topotests.txt Topotests Ubuntu 18.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1804AMD64-17402/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17402/artifact/TP3U1804AMD64/ErrorLog/log_topotests.txt Topotests Ubuntu 16.04 i386 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604I386-17402/test Topology Tests failed for Topotests Ubuntu 16.04 i386 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17402/artifact/TP3U1604I386/ErrorLog/log_topotests.txt Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsTopotests Ubuntu 18.04 arm8 part 3: Failed (click for details)Topotests Ubuntu 18.04 arm8 part 3: No useful log foundTopotests Ubuntu 16.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604AMD64-17402/test Topology Tests failed for Topotests Ubuntu 16.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17402/artifact/TP3U1604AMD64/ErrorLog/log_topotests.txt Topotests Ubuntu 18.04 amd64 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1804AMD64-17402/test Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17402/artifact/TP3U1804AMD64/ErrorLog/log_topotests.txt Topotests Ubuntu 16.04 i386 part 3: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TP3U1604I386-17402/test Topology Tests failed for Topotests Ubuntu 16.04 i386 part 3: see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17402/artifact/TP3U1604I386/ErrorLog/log_topotests.txt |
c2b3105 to
8de30f8
Compare
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17438/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings |
8de30f8 to
01da5ba
Compare
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
The iptable processing was not handled in remote dataplane, and was directly processed by the thread in charge of zapi calls. Now that call can be handled in the zebra_dplane separate thread. once a zebra_dplane_ctx is allocated for iptable handling, the hook call is performed later. Subsequently, a return code may be triggered to zclient interface if any problem occurs when calling the hook call. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
01da5ba to
fae5f26
Compare
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17473/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings |
fae5f26 to
e21694c
Compare
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17475/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings |
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
e21694c to
681efca
Compare
Outdated results 💚Basic BGPD CI results: SUCCESS, 0 tests failed
For details, please contact louberger |
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17478/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings |
Continuous Integration Result: SUCCESSFULContinuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17480/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings |
mjstapp
left a comment
There was a problem hiding this comment.
just had a couple of questions
like it has been done for iptable contexts, a zebra dplane context is created for each ipset/ipset entry event. The zebra_dplane_ctx job is then enqueued and processed by separate thread. Like it has been done for zebra_pbr_iptable context, the ipset and ipset entry contexts are encapsulated into an union of structures in zebra_dplane_ctx. There is a specificity in that when storing ipset_entry structure, there was a backpointer pointer to the ipset structure that is necessary to get some complementary information before calling the hook. The proposal is to use an ipset_entry_info structure next to the ipset_entry, in the zebra_dplane context. That information is used for ipset_entry processing. The ipset name and the ipset type are the only fields necessary. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
681efca to
ef52423
Compare
💚 Basic BGPD CI results: SUCCESS, 0 tests failedResults table
For details, please contact louberger |
Continuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-17564/ This is a comment from an automated CI system. Warnings Generated during build:Checkout code: Successful with additional warnings |
mjstapp
left a comment
There was a problem hiding this comment.
Looks good to me now, thanks
this is a part of work not addressed by GSOC2020, that needed to be done so that zebra dplane handles netfilter contexts ( for BGP flowspec)