Add test for go/apf-ra-filter case 1a
Test: atest ApfTest
Change-Id: Iba864fe2007f6324217267b0b6733d632494b469
diff --git a/tests/unit/src/android/net/apf/ApfTest.java b/tests/unit/src/android/net/apf/ApfTest.java
index 518cdd8..99eb53d 100644
--- a/tests/unit/src/android/net/apf/ApfTest.java
+++ b/tests/unit/src/android/net/apf/ApfTest.java
@@ -2846,6 +2846,34 @@
assertDrop(program, ra);
}
+ // Test for go/apf-ra-filter Case 1a.
+ // Old lifetime is 0
+ @Test
+ public void testAcceptRaMinLftCase1a() throws Exception {
+ final MockIpClientCallback ipClientCallback = new MockIpClientCallback();
+ // configure accept_ra_min_lft
+ final ApfConfiguration config = getDefaultConfig();
+ config.acceptRaMinLft = 180;
+ final TestApfFilter apfFilter = new TestApfFilter(mContext, config, ipClientCallback);
+
+ // Create an initial RA and build an APF program
+ byte[] ra = new RaPacketBuilder(1800 /* router lifetime */)
+ .addPioOption(1800 /*valid*/, 0 /*preferred*/, "2001:db8::/64")
+ .build();
+
+ apfFilter.pretendPacketReceived(ra);
+ byte[] program = ipClientCallback.getApfProgram();
+
+ // repeated RA is dropped
+ assertDrop(program, ra);
+
+ // PIO preferred lifetime increases
+ ra = new RaPacketBuilder(1800 /* router lifetime */)
+ .addPioOption(1800 /*valid*/, 1 /*preferred*/, "2001:db8::/64")
+ .build();
+ assertPass(program, ra);
+ }
+
// Test for go/apf-ra-filter Case 1b.
// Old lifetime is 0
@Test