- clib_memcpy(&p.raddr.start, mp->remote_address_start, 16);
- clib_memcpy(&p.raddr.stop, mp->remote_address_stop, 16);
- clib_memcpy(&p.laddr.start, mp->local_address_start, 16);
- clib_memcpy(&p.laddr.stop, mp->local_address_stop, 16);
-
+ if (mp->is_ipv6) {
+ clib_memcpy(&p.raddr.start, mp->remote_address_start, 16);
+ clib_memcpy(&p.raddr.stop, mp->remote_address_stop, 16);
+ clib_memcpy(&p.laddr.start, mp->local_address_start, 16);
+ clib_memcpy(&p.laddr.stop, mp->local_address_stop, 16);
+ } else {
+ clib_memcpy(&p.raddr.start.ip4.data, mp->remote_address_start, 4);
+ clib_memcpy(&p.raddr.stop.ip4.data, mp->remote_address_stop, 4);
+ clib_memcpy(&p.laddr.start.ip4.data, mp->local_address_start, 4);
+ clib_memcpy(&p.laddr.stop.ip4.data, mp->local_address_stop, 4);
+ }