Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
IPv4/6 reassembly
[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
9bf19ed
..
6b72437
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)
{
@@
-484,7
+492,7
@@
else \
{ \
(p) = ip6_ext_next_header((p)); \
} \
{ \
(p) = ip6_ext_next_header((p)); \
} \
- if (
ip6_ext_hdr((p)->next_hdr) == (t))
\
+ if (
((p)->next_hdr) == (t))
\
{ \
(m) = (void *)(ip6_ext_next_header((p))); \
} \
{ \
(m) = (void *)(ip6_ext_next_header((p))); \
} \
@@
-511,6
+519,9
@@
typedef CLIB_PACKED (struct {
#define ip6_frag_hdr_offset(hdr) \
(clib_net_to_host_u16((hdr)->fragment_offset_and_more) >> 3)
#define ip6_frag_hdr_offset(hdr) \
(clib_net_to_host_u16((hdr)->fragment_offset_and_more) >> 3)
+#define ip6_frag_hdr_offset_bytes(hdr) \
+ (8 * ip6_frag_hdr_offset(hdr))
+
#define ip6_frag_hdr_more(hdr) \
(clib_net_to_host_u16((hdr)->fragment_offset_and_more) & 0x1)
#define ip6_frag_hdr_more(hdr) \
(clib_net_to_host_u16((hdr)->fragment_offset_and_more) & 0x1)