MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ipv6_addr_cpy

Function ipv6_addr_cpy

dpdk/examples/ipsec-secgw/flow.c:111–130  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109}
110
111static int
112ipv6_addr_cpy(uint8_t *spec, uint8_t *mask, char *token,
113 struct parse_status *status)
114{
115 struct in6_addr ip;
116 uint32_t depth, i;
117
118 APP_CHECK(parse_ipv6_addr(token, &ip, &depth) == 0, status,
119 "unrecognized input \"%s\", expect valid ipv6 address", token);
120 if (status->status < 0)
121 return -1;
122
123 memcpy(mask, &rte_flow_item_ipv6_mask.hdr.src_addr, sizeof(ip));
124 memcpy(spec, ip.s6_addr, sizeof(struct in6_addr));
125
126 for (i = 0; i < depth && (i%8 <= sizeof(struct in6_addr)); i++)
127 mask[i/8] &= ~(1 << (7-i%8));
128
129 return 0;
130}
131
132void
133parse_flow_tokens(char **tokens, uint32_t n_tokens,

Callers 1

parse_flow_tokensFunction · 0.85

Calls 2

parse_ipv6_addrFunction · 0.70
memcpyFunction · 0.50

Tested by

no test coverage detected