summaryrefslogtreecommitdiffstats
path: root/src/plugins/stn/stn.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/stn/stn.c')
-rw-r--r--src/plugins/stn/stn.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/plugins/stn/stn.c b/src/plugins/stn/stn.c
index cab2cf10e01..760061fe23f 100644
--- a/src/plugins/stn/stn.c
+++ b/src/plugins/stn/stn.c
@@ -18,9 +18,8 @@
#include <vnet/plugin/plugin.h>
#include <vpp/app/version.h>
#include <vnet/ip/format.h>
+#include <vnet/ip/punt.h>
#include <vnet/ethernet/packet.h>
-#include <vnet/udp/udp.h>
-#include <vnet/tcp/tcp.h>
stn_main_t stn_main;
static vlib_node_registration_t stn_ip4_punt;
@@ -313,10 +312,23 @@ int stn_rule_add_del (stn_rule_add_del_args_t *args)
vnet_feature_enable_disable("ip4-punt", "stn-ip4-punt",
0, 1, 0, 0);
- udp_punt_unknown(vm, 0, 1);
- udp_punt_unknown(vm, 1, 1);
- tcp_punt_unknown(vm, 0, 1);
- tcp_punt_unknown(vm, 1, 1);
+ punt_reg_t pr = {
+ .punt = {
+ .l4 = {
+ .af = AF_IP4,
+ .port = ~0,
+ .protocol = IP_PROTOCOL_UDP,
+ },
+ },
+ .type = PUNT_TYPE_L4,
+ };
+ vnet_punt_add_del (vm, &pr, 1 /* is_add */);
+ pr.punt.l4.af = AF_IP6;
+ vnet_punt_add_del (vm, &pr, 1 /* is_add */);
+ pr.punt.l4.protocol = IP_PROTOCOL_TCP;
+ vnet_punt_add_del (vm, &pr, 1 /* is_add */);
+ pr.punt.l4.af = AF_IP4;
+ vnet_punt_add_del (vm, &pr, 1 /* is_add */);
}
}