19
19
#include <uapi/linux/fou.h>
20
20
#include <uapi/linux/genetlink.h>
21
21
22
+ #include "fou_nl.h"
23
+
22
24
struct fou {
23
25
struct socket * sock ;
24
26
u8 protocol ;
@@ -640,20 +642,6 @@ static int fou_destroy(struct net *net, struct fou_cfg *cfg)
640
642
641
643
static struct genl_family fou_nl_family ;
642
644
643
- static const struct nla_policy fou_nl_policy [FOU_ATTR_MAX + 1 ] = {
644
- [FOU_ATTR_PORT ] = { .type = NLA_U16 , },
645
- [FOU_ATTR_AF ] = { .type = NLA_U8 , },
646
- [FOU_ATTR_IPPROTO ] = { .type = NLA_U8 , },
647
- [FOU_ATTR_TYPE ] = { .type = NLA_U8 , },
648
- [FOU_ATTR_REMCSUM_NOPARTIAL ] = { .type = NLA_FLAG , },
649
- [FOU_ATTR_LOCAL_V4 ] = { .type = NLA_U32 , },
650
- [FOU_ATTR_PEER_V4 ] = { .type = NLA_U32 , },
651
- [FOU_ATTR_LOCAL_V6 ] = { .len = sizeof (struct in6_addr ), },
652
- [FOU_ATTR_PEER_V6 ] = { .len = sizeof (struct in6_addr ), },
653
- [FOU_ATTR_PEER_PORT ] = { .type = NLA_U16 , },
654
- [FOU_ATTR_IFINDEX ] = { .type = NLA_S32 , },
655
- };
656
-
657
645
static int parse_nl_config (struct genl_info * info ,
658
646
struct fou_cfg * cfg )
659
647
{
@@ -745,7 +733,7 @@ static int parse_nl_config(struct genl_info *info,
745
733
return 0 ;
746
734
}
747
735
748
- static int fou_nl_cmd_add_port (struct sk_buff * skb , struct genl_info * info )
736
+ int fou_nl_add_doit (struct sk_buff * skb , struct genl_info * info )
749
737
{
750
738
struct net * net = genl_info_net (info );
751
739
struct fou_cfg cfg ;
@@ -758,7 +746,7 @@ static int fou_nl_cmd_add_port(struct sk_buff *skb, struct genl_info *info)
758
746
return fou_create (net , & cfg , NULL );
759
747
}
760
748
761
- static int fou_nl_cmd_rm_port (struct sk_buff * skb , struct genl_info * info )
749
+ int fou_nl_del_doit (struct sk_buff * skb , struct genl_info * info )
762
750
{
763
751
struct net * net = genl_info_net (info );
764
752
struct fou_cfg cfg ;
@@ -827,7 +815,7 @@ static int fou_dump_info(struct fou *fou, u32 portid, u32 seq,
827
815
return - EMSGSIZE ;
828
816
}
829
817
830
- static int fou_nl_cmd_get_port (struct sk_buff * skb , struct genl_info * info )
818
+ int fou_nl_get_doit (struct sk_buff * skb , struct genl_info * info )
831
819
{
832
820
struct net * net = genl_info_net (info );
833
821
struct fou_net * fn = net_generic (net , fou_net_id );
@@ -874,7 +862,7 @@ static int fou_nl_cmd_get_port(struct sk_buff *skb, struct genl_info *info)
874
862
return ret ;
875
863
}
876
864
877
- static int fou_nl_dump (struct sk_buff * skb , struct netlink_callback * cb )
865
+ int fou_nl_get_dumpit (struct sk_buff * skb , struct netlink_callback * cb )
878
866
{
879
867
struct net * net = sock_net (skb -> sk );
880
868
struct fou_net * fn = net_generic (net , fou_net_id );
@@ -897,33 +885,12 @@ static int fou_nl_dump(struct sk_buff *skb, struct netlink_callback *cb)
897
885
return skb -> len ;
898
886
}
899
887
900
- static const struct genl_small_ops fou_nl_ops [] = {
901
- {
902
- .cmd = FOU_CMD_ADD ,
903
- .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP ,
904
- .doit = fou_nl_cmd_add_port ,
905
- .flags = GENL_ADMIN_PERM ,
906
- },
907
- {
908
- .cmd = FOU_CMD_DEL ,
909
- .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP ,
910
- .doit = fou_nl_cmd_rm_port ,
911
- .flags = GENL_ADMIN_PERM ,
912
- },
913
- {
914
- .cmd = FOU_CMD_GET ,
915
- .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP ,
916
- .doit = fou_nl_cmd_get_port ,
917
- .dumpit = fou_nl_dump ,
918
- },
919
- };
920
-
921
888
static struct genl_family fou_nl_family __ro_after_init = {
922
889
.hdrsize = 0 ,
923
890
.name = FOU_GENL_NAME ,
924
891
.version = FOU_GENL_VERSION ,
925
892
.maxattr = FOU_ATTR_MAX ,
926
- .policy = fou_nl_policy ,
893
+ .policy = fou_nl_policy ,
927
894
.netnsok = true,
928
895
.module = THIS_MODULE ,
929
896
.small_ops = fou_nl_ops ,
0 commit comments