Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
DES-CBC/3DES-CBC support for VPP IPSec Core
[vpp.git]
/
src
/
vnet
/
ip
/
ip6_packet.h
diff --git
a/src/vnet/ip/ip6_packet.h
b/src/vnet/ip/ip6_packet.h
index
bb7d703
..
c0c745e
100644
(file)
--- a/
src/vnet/ip/ip6_packet.h
+++ b/
src/vnet/ip/ip6_packet.h
@@
-82,21
+82,23
@@
typedef CLIB_PACKED (union {
#define ip46_address_is_equal(a1, a2) (((a1)->as_u64[0] == (a2)->as_u64[0]) \
&& ((a1)->as_u64[1] == (a2)->as_u64[1]))
#define ip46_address_is_equal(a1, a2) (((a1)->as_u64[0] == (a2)->as_u64[0]) \
&& ((a1)->as_u64[1] == (a2)->as_u64[1]))
-always_inline
void
-
ip46_from_addr_buf (u32 is_ipv6, u8 * buf, ip46_address_t * ip
)
+always_inline
ip46_address_t
+
to_ip46 (u32 is_ipv6, u8 * buf
)
{
{
+ ip46_address_t ip;
if (is_ipv6)
if (is_ipv6)
- ip
->
ip6 = *((ip6_address_t *) buf);
+ ip
.
ip6 = *((ip6_address_t *) buf);
else
else
- ip46_address_set_ip4 (ip, (ip4_address_t *) buf);
+ ip46_address_set_ip4 (&ip, (ip4_address_t *) buf);
+ return ip;
}
}
+
always_inline void
ip6_addr_fib_init (ip6_address_fib_t * addr_fib, ip6_address_t * address,
u32 fib_index)
{
always_inline void
ip6_addr_fib_init (ip6_address_fib_t * addr_fib, ip6_address_t * address,
u32 fib_index)
{
- addr_fib->ip6_addr.as_u64[0] = address->as_u64[0];
- addr_fib->ip6_addr.as_u64[1] = address->as_u64[1];
+ addr_fib->ip6_addr = *address;
addr_fib->fib_index = fib_index;
}
addr_fib->fib_index = fib_index;
}
@@
-339,6
+341,12
@@
typedef struct
ip6_address_t src_address, dst_address;
} ip6_header_t;
ip6_address_t src_address, dst_address;
} ip6_header_t;
+always_inline u8
+ip6_traffic_class (ip6_header_t * i)
+{
+ return (i->ip_version_traffic_class_and_flow_label & 0x0FF00000) >> 20;
+}
+
always_inline void *
ip6_next_header (ip6_header_t * i)
{
always_inline void *
ip6_next_header (ip6_header_t * i)
{