diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/flowspec.c | 10 | ||||
-rw-r--r-- | lib/net.h | 4 |
2 files changed, 4 insertions, 10 deletions
diff --git a/lib/flowspec.c b/lib/flowspec.c index ef19aa96..42770c50 100644 --- a/lib/flowspec.c +++ b/lib/flowspec.c @@ -436,7 +436,6 @@ flow_validate(const byte *nlri, uint len, int ipv6) enum flow_type type = 0; const byte *pos = nlri; const byte *end = nlri + len; - int met_dst_pfx = 0; while (pos < end) { @@ -448,8 +447,6 @@ flow_validate(const byte *nlri, uint len, int ipv6) switch (type) { case FLOW_TYPE_DST_PREFIX: - met_dst_pfx = 1; - /* Fall through */ case FLOW_TYPE_SRC_PREFIX: { uint pxlen = *pos++; @@ -556,9 +553,6 @@ flow_validate(const byte *nlri, uint len, int ipv6) if (pos != end) return FLOW_ST_NOT_COMPLETE; - if (!ipv6 && !met_dst_pfx) - return FLOW_ST_DEST_PREFIX_REQUIRED; - return FLOW_ST_VALID; } @@ -875,7 +869,7 @@ flow_builder4_finalize(struct flow_builder *fb, linpool *lpool) { byte *part = fb->data.data + fb->parts[FLOW_TYPE_DST_PREFIX].offset; prefix = flow_read_ip4_part(part); - pxlen = part[1]; + pxlen = flow_read_pxlen(part); } *f = NET_ADDR_FLOW4(prefix, pxlen, data_len); @@ -905,7 +899,7 @@ flow_builder6_finalize(struct flow_builder *fb, linpool *lpool) { byte *part = fb->data.data + fb->parts[FLOW_TYPE_DST_PREFIX].offset; prefix = flow_read_ip6_part(part); - pxlen = part[1]; + pxlen = flow_read_pxlen(part); } *n = NET_ADDR_FLOW6(prefix, pxlen, data_len); @@ -174,10 +174,10 @@ extern const u16 net_max_text_length[]; ((net_addr_roa6) { NET_ROA6, pxlen, sizeof(net_addr_roa6), prefix, max_pxlen, asn }) #define NET_ADDR_FLOW4(prefix,pxlen,dlen) \ - ((net_addr_flow4) { NET_FLOW4, pxlen, sizeof(net_addr_ip4) + dlen, prefix }) + ((net_addr_flow4) { NET_FLOW4, pxlen, sizeof(net_addr_flow4) + dlen, prefix }) #define NET_ADDR_FLOW6(prefix,pxlen,dlen) \ - ((net_addr_flow6) { NET_FLOW6, pxlen, sizeof(net_addr_ip6) + dlen, prefix }) + ((net_addr_flow6) { NET_FLOW6, pxlen, sizeof(net_addr_flow6) + dlen, prefix }) #define NET_ADDR_IP6_SADR(dst_prefix,dst_pxlen,src_prefix,src_pxlen) \ ((net_addr_ip6_sadr) { NET_IP6_SADR, dst_pxlen, sizeof(net_addr_ip6_sadr), dst_prefix, src_pxlen, src_prefix }) |