@@ -1043,88 +1043,31 @@ int sd_rtnl_message_routing_policy_rule_get_fib_src_prefixlen(sd_netlink_message
10431043 return 0 ;
10441044}
10451045
1046- int sd_rtnl_message_new_qdisc (sd_netlink * rtnl , sd_netlink_message * * ret , uint16_t nlmsg_type , int tcm_family , int tcm_ifindex ) {
1047- struct tcmsg * tcm ;
1048- int r ;
1049-
1050- assert_return (rtnl_message_type_is_qdisc (nlmsg_type ), - EINVAL );
1051- assert_return (ret , - EINVAL );
1052-
1053- r = message_new (rtnl , ret , nlmsg_type );
1054- if (r < 0 )
1055- return r ;
1056-
1057- if (nlmsg_type == RTM_NEWQDISC )
1058- (* ret )-> hdr -> nlmsg_flags |= NLM_F_CREATE | NLM_F_EXCL ;
1059-
1060- tcm = NLMSG_DATA ((* ret )-> hdr );
1061- tcm -> tcm_family = tcm_family ;
1062- tcm -> tcm_ifindex = tcm_ifindex ;
1046+ int sd_rtnl_message_new_traffic_control (
1047+ sd_netlink * rtnl ,
1048+ sd_netlink_message * * ret ,
1049+ uint16_t nlmsg_type ,
1050+ int ifindex ,
1051+ uint32_t handle ,
1052+ uint32_t parent ) {
10631053
1064- return 0 ;
1065- }
1066-
1067- int sd_rtnl_message_set_qdisc_parent (sd_netlink_message * m , uint32_t parent ) {
1068- struct tcmsg * tcm ;
1069-
1070- assert_return (rtnl_message_type_is_qdisc (m -> hdr -> nlmsg_type ), - EINVAL );
1071-
1072- tcm = NLMSG_DATA (m -> hdr );
1073- tcm -> tcm_parent = parent ;
1074-
1075- return 0 ;
1076- }
1077-
1078- int sd_rtnl_message_set_qdisc_handle (sd_netlink_message * m , uint32_t handle ) {
1079- struct tcmsg * tcm ;
1080-
1081- assert_return (rtnl_message_type_is_qdisc (m -> hdr -> nlmsg_type ), - EINVAL );
1082-
1083- tcm = NLMSG_DATA (m -> hdr );
1084- tcm -> tcm_handle = handle ;
1085-
1086- return 0 ;
1087- }
1088-
1089- int sd_rtnl_message_new_tclass (sd_netlink * rtnl , sd_netlink_message * * ret , uint16_t nlmsg_type , int tcm_family , int tcm_ifindex ) {
10901054 struct tcmsg * tcm ;
10911055 int r ;
10921056
1093- assert_return (rtnl_message_type_is_tclass (nlmsg_type ), - EINVAL );
1057+ assert_return (rtnl_message_type_is_traffic_control (nlmsg_type ), - EINVAL );
10941058 assert_return (ret , - EINVAL );
10951059
10961060 r = message_new (rtnl , ret , nlmsg_type );
10971061 if (r < 0 )
10981062 return r ;
10991063
1100- if (nlmsg_type == RTM_NEWTCLASS )
1064+ if (IN_SET ( nlmsg_type , RTM_NEWQDISC , RTM_NEWTCLASS ) )
11011065 (* ret )-> hdr -> nlmsg_flags |= NLM_F_CREATE | NLM_F_EXCL ;
11021066
11031067 tcm = NLMSG_DATA ((* ret )-> hdr );
1104- tcm -> tcm_family = tcm_family ;
1105- tcm -> tcm_ifindex = tcm_ifindex ;
1106-
1107- return 0 ;
1108- }
1109-
1110- int sd_rtnl_message_set_tclass_parent (sd_netlink_message * m , uint32_t parent ) {
1111- struct tcmsg * tcm ;
1112-
1113- assert_return (rtnl_message_type_is_tclass (m -> hdr -> nlmsg_type ), - EINVAL );
1114-
1115- tcm = NLMSG_DATA (m -> hdr );
1116- tcm -> tcm_parent = parent ;
1117-
1118- return 0 ;
1119- }
1120-
1121- int sd_rtnl_message_set_tclass_handle (sd_netlink_message * m , uint32_t handle ) {
1122- struct tcmsg * tcm ;
1123-
1124- assert_return (rtnl_message_type_is_tclass (m -> hdr -> nlmsg_type ), - EINVAL );
1125-
1126- tcm = NLMSG_DATA (m -> hdr );
1068+ tcm -> tcm_ifindex = ifindex ;
11271069 tcm -> tcm_handle = handle ;
1070+ tcm -> tcm_parent = parent ;
11281071
11291072 return 0 ;
11301073}
0 commit comments