From: kernel test robot <lkp@intel.com>
To: Pieter Jansen van Vuuren <pieter.jansen-van-vuuren@amd.com>,
netdev@vger.kernel.org, linux-net-drivers@amd.com
Cc: oe-kbuild-all@lists.linux.dev, davem@davemloft.net,
kuba@kernel.org, pabeni@redhat.com, edumazet@google.com,
ecree.xilinx@gmail.com, habetsm.xilinx@gmail.com,
Pieter Jansen van Vuuren <pieter.jansen-van-vuuren@amd.com>
Subject: Re: [PATCH net-next 3/6] sfc: add decrement ttl by offloading set ipv4 ttl actions
Date: Wed, 23 Aug 2023 22:49:44 +0800 [thread overview]
Message-ID: <202308232237.WkCLb0PW-lkp@intel.com> (raw)
In-Reply-To: <20230823111725.28090-4-pieter.jansen-van-vuuren@amd.com>
Hi Pieter,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Pieter-Jansen-van-Vuuren/sfc-introduce-ethernet-pedit-set-action-infrastructure/20230823-192051
base: net-next/main
patch link: https://lore.kernel.org/r/20230823111725.28090-4-pieter.jansen-van-vuuren%40amd.com
patch subject: [PATCH net-next 3/6] sfc: add decrement ttl by offloading set ipv4 ttl actions
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20230823/202308232237.WkCLb0PW-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230823/202308232237.WkCLb0PW-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308232237.WkCLb0PW-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/net/ethernet/sfc/tc.c:1074: warning: Function parameter or member 'match' not described in 'efx_tc_mangle'
vim +1074 drivers/net/ethernet/sfc/tc.c
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1054
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1055 /**
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1056 * efx_tc_mangle() - handle a single 32-bit (or less) pedit
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1057 * @efx: NIC we're installing a flow rule on
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1058 * @act: action set (cursor) to update
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1059 * @fa: FLOW_ACTION_MANGLE action metadata
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1060 * @mung: accumulator for partial mangles
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1061 * @extack: netlink extended ack for reporting errors
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1062 *
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1063 * Identify the fields written by a FLOW_ACTION_MANGLE, and record
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1064 * the partial mangle state in @mung. If this mangle completes an
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1065 * earlier partial mangle, consume and apply to @act by calling
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1066 * efx_tc_complete_mac_mangle().
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1067 */
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1068
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1069 static int efx_tc_mangle(struct efx_nic *efx, struct efx_tc_action_set *act,
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1070 const struct flow_action_entry *fa,
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1071 struct efx_tc_mangler_state *mung,
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1072 struct netlink_ext_ack *extack,
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1073 struct efx_tc_match *match)
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 @1074 {
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1075 __le32 mac32;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1076 __le16 mac16;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1077 u8 tr_ttl;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1078
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1079 switch (fa->mangle.htype) {
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1080 case FLOW_ACT_MANGLE_HDR_TYPE_ETH:
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1081 BUILD_BUG_ON(offsetof(struct ethhdr, h_dest) != 0);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1082 BUILD_BUG_ON(offsetof(struct ethhdr, h_source) != 6);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1083 if (!efx_tc_flower_action_order_ok(act, EFX_TC_AO_PEDIT_MAC_ADDRS)) {
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1084 NL_SET_ERR_MSG_MOD(extack,
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1085 "Pedit mangle mac action violates action order");
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1086 return -EOPNOTSUPP;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1087 }
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1088 switch (fa->mangle.offset) {
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1089 case 0:
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1090 if (fa->mangle.mask) {
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1091 NL_SET_ERR_MSG_FMT_MOD(extack,
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1092 "Unsupported: mask (%#x) of eth.dst32 mangle",
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1093 fa->mangle.mask);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1094 return -EOPNOTSUPP;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1095 }
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1096 /* Ethernet address is little-endian */
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1097 mac32 = cpu_to_le32(fa->mangle.val);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1098 memcpy(mung->dst_mac, &mac32, sizeof(mac32));
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1099 mung->dst_mac_32 = 1;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1100 return efx_tc_complete_mac_mangle(efx, act, mung, extack);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1101 case 4:
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1102 if (fa->mangle.mask == 0xffff) {
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1103 mac16 = cpu_to_le16(fa->mangle.val >> 16);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1104 memcpy(mung->src_mac, &mac16, sizeof(mac16));
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1105 mung->src_mac_16 = 1;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1106 } else if (fa->mangle.mask == 0xffff0000) {
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1107 mac16 = cpu_to_le16((u16)fa->mangle.val);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1108 memcpy(mung->dst_mac + 4, &mac16, sizeof(mac16));
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1109 mung->dst_mac_16 = 1;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1110 } else {
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1111 NL_SET_ERR_MSG_FMT_MOD(extack,
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1112 "Unsupported: mask (%#x) of eth+4 mangle is not high or low 16b",
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1113 fa->mangle.mask);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1114 return -EOPNOTSUPP;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1115 }
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1116 return efx_tc_complete_mac_mangle(efx, act, mung, extack);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1117 case 8:
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1118 if (fa->mangle.mask) {
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1119 NL_SET_ERR_MSG_FMT_MOD(extack,
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1120 "Unsupported: mask (%#x) of eth.src32 mangle",
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1121 fa->mangle.mask);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1122 return -EOPNOTSUPP;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1123 }
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1124 mac32 = cpu_to_le32(fa->mangle.val);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1125 memcpy(mung->src_mac + 2, &mac32, sizeof(mac32));
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1126 mung->src_mac_32 = 1;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1127 return efx_tc_complete_mac_mangle(efx, act, mung, extack);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1128 default:
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1129 NL_SET_ERR_MSG_FMT_MOD(extack, "Unsupported: mangle eth+%u %x/%x",
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1130 fa->mangle.offset, fa->mangle.val, fa->mangle.mask);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1131 return -EOPNOTSUPP;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1132 }
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1133 break;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1134 case FLOW_ACT_MANGLE_HDR_TYPE_IP4:
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1135 switch (fa->mangle.offset) {
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1136 case offsetof(struct iphdr, ttl):
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1137 /* we currently only support pedit IP4 when it applies
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1138 * to TTL and then only when it can be achieved with a
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1139 * decrement ttl action
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1140 */
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1141
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1142 /* check that pedit applies to ttl only */
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1143 if (fa->mangle.mask != ~EFX_TC_HDR_TYPE_TTL_MASK) {
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1144 NL_SET_ERR_MSG_FMT_MOD(extack,
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1145 "Unsupported: mask (%#x) out of range, only support mangle action on ipv4.ttl",
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1146 fa->mangle.mask);
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1147 return -EOPNOTSUPP;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1148 }
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1149
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1150 /* we can only convert to a dec ttl when we have an
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1151 * exact match on the ttl field
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1152 */
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1153 if (match->mask.ip_ttl != U8_MAX) {
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1154 NL_SET_ERR_MSG_FMT_MOD(extack,
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1155 "Unsupported: only support mangle ipv4.ttl when we have an exact match on ttl, mask used for match (%#x)",
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1156 match->mask.ip_ttl);
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1157 return -EOPNOTSUPP;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1158 }
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1159
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1160 /* check that we don't try to decrement 0, which equates
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1161 * to setting the ttl to 0xff
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1162 */
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1163 if (match->value.ip_ttl == 0) {
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1164 NL_SET_ERR_MSG_MOD(extack,
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1165 "Unsupported: we cannot decrement ttl past 0");
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1166 return -EOPNOTSUPP;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1167 }
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1168
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1169 /* check that we do not decrement ttl twice */
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1170 if (!efx_tc_flower_action_order_ok(act,
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1171 EFX_TC_AO_DEC_TTL)) {
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1172 NL_SET_ERR_MSG_MOD(extack,
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1173 "Unsupported: multiple dec ttl");
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1174 return -EOPNOTSUPP;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1175 }
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1176
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1177 /* check pedit can be achieved with decrement action */
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1178 tr_ttl = match->value.ip_ttl - 1;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1179 if ((fa->mangle.val & EFX_TC_HDR_TYPE_TTL_MASK) == tr_ttl) {
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1180 act->do_ttl_dec = 1;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1181 return 0;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1182 }
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1183
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1184 fallthrough;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1185 default:
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1186 NL_SET_ERR_MSG_FMT_MOD(extack,
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1187 "Unsupported: only support mangle on the ttl field (offset is %u)",
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1188 fa->mangle.offset);
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1189 return -EOPNOTSUPP;
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1190 }
b1a793d7986335 Pieter Jansen van Vuuren 2023-08-23 1191 break;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1192 default:
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1193 NL_SET_ERR_MSG_FMT_MOD(extack, "Unhandled mangle htype %u for action rule",
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1194 fa->mangle.htype);
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1195 return -EOPNOTSUPP;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1196 }
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1197 return 0;
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1198 }
12322dfaf48dc2 Pieter Jansen van Vuuren 2023-08-23 1199
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2023-08-23 14:50 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-23 11:17 [PATCH net-next 0/6] sfc: introduce eth, ipv4 and ipv6 pedit offloads Pieter Jansen van Vuuren
2023-08-23 11:17 ` [PATCH net-next 1/6] sfc: introduce ethernet pedit set action infrastructure Pieter Jansen van Vuuren
2023-08-23 11:17 ` [PATCH net-next 2/6] sfc: add mac source and destination pedit action offload Pieter Jansen van Vuuren
2023-08-23 11:17 ` [PATCH net-next 3/6] sfc: add decrement ttl by offloading set ipv4 ttl actions Pieter Jansen van Vuuren
2023-08-23 14:49 ` kernel test robot [this message]
2023-08-23 11:17 ` [PATCH net-next 4/6] sfc: add decrement ipv6 hop limit by offloading set hop limit actions Pieter Jansen van Vuuren
2023-08-23 11:17 ` [PATCH net-next 5/6] sfc: introduce pedit add actions on the ipv4 ttl field Pieter Jansen van Vuuren
2023-08-23 14:25 ` kernel test robot
2023-08-23 15:01 ` Pieter Jansen van Vuuren
2023-08-23 11:17 ` [PATCH net-next 6/6] sfc: extend pedit add action to handle decrement ipv6 hop limit Pieter Jansen van Vuuren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202308232237.WkCLb0PW-lkp@intel.com \
--to=lkp@intel.com \
--cc=davem@davemloft.net \
--cc=ecree.xilinx@gmail.com \
--cc=edumazet@google.com \
--cc=habetsm.xilinx@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-net-drivers@amd.com \
--cc=netdev@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pabeni@redhat.com \
--cc=pieter.jansen-van-vuuren@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).