@@ -35,13 +35,15 @@ void configureAllIpQualifiers(
35
35
cfg::AsicType asicType) {
36
36
cfg::Ttl ttl;
37
37
std::tie (*ttl.value (), *ttl.mask ()) = std::make_tuple (0x80 , 0x80 );
38
+ bool enableSrcIpQualifier =
39
+ (asicType != cfg::AsicType::ASIC_TYPE_CHENAB) && enable;
38
40
39
41
if (asicType != cfg::AsicType::ASIC_TYPE_JERICHO3) {
40
42
// TODO(daiweix): remove after J3 ACL supports IP_TYPE
41
43
configureQualifier (acl->ipType (), enable, ipType);
42
44
}
43
45
if (ipType == cfg::IpType::IP6) {
44
- configureQualifier (acl->srcIp (), enable , " ::ffff:c0a8:1" );
46
+ configureQualifier (acl->srcIp (), enableSrcIpQualifier , " ::ffff:c0a8:1" );
45
47
configureQualifier (
46
48
acl->dstIp (), enable, " 2401:db00:3020:70e2:face:0:63:0/64" );
47
49
@@ -55,7 +57,7 @@ void configureAllIpQualifiers(
55
57
cfg::AclLookupClass::DST_CLASS_L3_LOCAL_2);
56
58
57
59
} else {
58
- configureQualifier (acl->srcIp (), enable , " 192.168.0.1" );
60
+ configureQualifier (acl->srcIp (), enableSrcIpQualifier , " 192.168.0.1" );
59
61
configureQualifier (acl->dstIp (), enable, " 192.168.0.0/24" );
60
62
61
63
configureQualifier (
@@ -165,37 +167,48 @@ class AgentHwAclQualifierTest : public AgentHwTest {
165
167
cfg::AclEntry* acl,
166
168
SwitchID switchID = SwitchID(0 )) {
167
169
auto asicType = getAsicType (switchID);
170
+ bool enableSrcIpQualifier = (asicType != cfg::AsicType::ASIC_TYPE_CHENAB);
171
+ bool enableEtherTypeQualifier =
172
+ (asicType == cfg::AsicType::ASIC_TYPE_CHENAB);
168
173
cfg::Ttl ttl;
169
174
std::tie (*ttl.value (), *ttl.mask ()) = std::make_tuple (0x80 , 0x80 );
170
175
171
176
if (asicType != cfg::AsicType::ASIC_TYPE_JERICHO3) {
172
177
// TODO(daiweix): remove after J3 ACL supports IP_TYPE
173
178
configureQualifier (acl->ipType (), true , cfg::IpType::IP4);
174
179
}
175
- configureQualifier (acl->srcIp (), true , " 192.168.0.1" );
180
+ configureQualifier (acl->srcIp (), enableSrcIpQualifier , " 192.168.0.1" );
176
181
configureQualifier (acl->dstIp (), true , " 192.168.0.0/24" );
177
182
configureQualifier (acl->dscp (), true , 0x24 );
178
183
configureQualifier (acl->ttl (), true , ttl);
179
184
configureQualifier (acl->proto (), true , 6 );
185
+ configureQualifier (
186
+ acl->etherType (), enableEtherTypeQualifier, cfg::EtherType::IPv4);
180
187
}
181
188
182
189
void configureIp6QualifiersHelper (
183
190
cfg::AclEntry* acl,
184
191
SwitchID switchID = SwitchID(0 )) {
185
192
auto asicType = getAsicType (switchID);
193
+ auto enableSrcIpQualifier = (asicType != cfg::AsicType::ASIC_TYPE_CHENAB);
194
+ bool enableEtherTypeQualifier =
195
+ (asicType == cfg::AsicType::ASIC_TYPE_CHENAB);
186
196
cfg::Ttl ttl;
187
197
std::tie (*ttl.value (), *ttl.mask ()) = std::make_tuple (0x80 , 0x80 );
188
198
189
199
if (asicType != cfg::AsicType::ASIC_TYPE_JERICHO3) {
190
200
// TODO(daiweix): remove after J3 ACL supports IP_TYPE
191
201
configureQualifier (acl->ipType (), true , cfg::IpType::IP6);
192
202
}
193
- configureQualifier (acl->srcIp (), true , " ::ffff:c0a8:1" );
203
+
204
+ configureQualifier (acl->srcIp (), enableSrcIpQualifier, " ::ffff:c0a8:1" );
194
205
configureQualifier (
195
206
acl->dstIp (), true , " 2401:db00:3020:70e2:face:0:63:0/64" );
196
207
configureQualifier (acl->dscp (), true , 0x24 );
197
208
configureQualifier (acl->ttl (), true , ttl);
198
209
configureQualifier (acl->proto (), true , 6 );
210
+ configureQualifier (
211
+ acl->etherType (), enableEtherTypeQualifier, cfg::EtherType::IPv6);
199
212
}
200
213
201
214
std::string kAclName () const {
0 commit comments