summaryrefslogtreecommitdiff
path: root/zebra/zapi_msg.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/zapi_msg.c')
-rw-r--r--zebra/zapi_msg.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index b0488b7559..e61e68b7fe 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -783,10 +783,7 @@ void zsend_rule_notify_owner(struct zebra_pbr_rule *rule,
stream_putl(s, rule->rule.seq);
stream_putl(s, rule->rule.priority);
stream_putl(s, rule->rule.unique);
- if (rule->ifp)
- stream_putl(s, rule->ifp->ifindex);
- else
- stream_putl(s, 0);
+ stream_putl(s, rule->rule.ifindex);
stream_putw_at(s, 0, stream_get_endp(s));
@@ -2294,7 +2291,6 @@ static inline void zread_rule(ZAPI_HANDLER_ARGS)
struct zebra_pbr_rule zpr;
struct stream *s;
uint32_t total, i;
- ifindex_t ifindex;
s = msg;
STREAM_GETL(s, total);
@@ -2319,17 +2315,20 @@ static inline void zread_rule(ZAPI_HANDLER_ARGS)
STREAM_GETW(s, zpr.rule.filter.dst_port);
STREAM_GETL(s, zpr.rule.filter.fwmark);
STREAM_GETL(s, zpr.rule.action.table);
- STREAM_GETL(s, ifindex);
+ STREAM_GETL(s, zpr.rule.ifindex);
- if (ifindex) {
- zpr.ifp = if_lookup_by_index_per_ns(
- zvrf->zns,
- ifindex);
- if (!zpr.ifp) {
+ if (zpr.rule.ifindex) {
+ struct interface *ifp;
+
+ ifp = if_lookup_by_index_per_ns(zvrf->zns,
+ zpr.rule.ifindex);
+ if (!ifp) {
zlog_debug("Failed to lookup ifindex: %u",
- ifindex);
+ zpr.rule.ifindex);
return;
}
+
+ strlcpy(zpr.ifname, ifp->name, sizeof(zpr.ifname));
}
if (!is_default_prefix(&zpr.rule.filter.src_ip))