#!/bin/sh ipfw port_table 1 flush # Following should be tested on all following cases (A,B,C,D): # 1. In case of One port # 2. In case of Range of ports # # Each above should include following tests: # a. not overlap, lower bound, low1 < low2 && high1 < low2 # b. not overlap, upper bound, low1 > high2 # c. overlap-lower-bound, low1 < low2 && (high1 >= low1 && high1 <= high2) # d. overlap-upper-bound, (low1 >= low2 && low1 <= high2) && high1 > high2 # e. fully overlap low1 < low2 && high1 > high2 # low1 == low2 && high1 == high2 # f. fully inside the range low1 < low2 && high1 > high2 echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "#### A. Test with only one entry, both add and delete" echo "ONE PORT" echo "1. *** Add not overlapped, lower bound, should be 10-19, 20 only" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 10-19 1 ipfw port_table 1 list echo "2. *** Add not overlapped, upper bound, should be 20, 21-30 only" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 21-30 1 ipfw port_table 1 list echo "3. *** Add Overlapped, lower bound, should be 10-20" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 10-20 1 ipfw port_table 1 list echo "4. *** Add Overlapped, upper bound, should be 20-30" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 list echo "5. *** Add inside, should be 20 only" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 list echo "6. *** Add fully overlap, should be 10-30" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 10-30 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, lower bound, should be 20 only" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 delete 10-19 1 ipfw port_table 1 list echo "2. *** Delete not overlapped, upper bound, should be 20 only" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 delete 21-30 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, lower bound, no entry" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 delete 10-20 1 ipfw port_table 1 list echo "4. *** Delete Overlapped, upper bound, no entry" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 delete 20-30 1 ipfw port_table 1 list echo "5. *** Delete inside, no entry" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 delete 20-20 1 ipfw port_table 1 list echo "6. *** Delete fully overlap, no entry" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 delete 10-30 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "RANGE OF PORTS" echo "1. *** Add not overlapped, lower bound, should be 10-19, 20-30 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 10-19 1 ipfw port_table 1 list echo "2. *** Add not overlapped, upper bound, should be 20-30, 31-40 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 31-40 1 ipfw port_table 1 list echo "3. *** Add Overlapped, lower bound, should be 10-30" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 10-20 1 ipfw port_table 1 list echo "4. *** Add Overlapped, upper bound, should be 20-40" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 30-40 1 ipfw port_table 1 list echo "5. *** Add same, should be 20-30 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 list echo "6. *** Add inside, should be 20-30 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 21-25 1 ipfw port_table 1 list echo "7. *** Add fully overlap, should be 10-40" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 10-40 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, lower bound, should be 20-30 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 delete 10-19 1 ipfw port_table 1 list echo "2. *** Delete not overlapped, upper bound, should be 20-30 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 delete 31-40 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, lower bound, should be 21-30" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 delete 10-20 1 ipfw port_table 1 list echo "4. *** Delete Overlapped, upper bound, should be 20-29" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 delete 30-40 1 ipfw port_table 1 list echo "5. *** Delete same, no entry" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 delete 20-30 1 ipfw port_table 1 list echo "6. *** Delete inside, should be 20-21, 26-30" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 delete 22-25 1 ipfw port_table 1 list echo "7. *** Delete fully overlap, no entry" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 delete 10-40 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "#### B. Test with many entries, but for one range only, both add and delete" echo "# 1. Test when range is first entry" echo "ONE PORT" echo "1. *** Add not overlapped, lower bound, should be 10-19, 20, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 10-19 1 ipfw port_table 1 list echo "2. *** Add not overlapped, upper bound, should be 20, 21-30, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 21-30 1 ipfw port_table 1 list echo "3. *** Add Overlapped, lower bound, should be 10-20, 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 10-20 1 ipfw port_table 1 list echo "4. *** Add Overlapped, upper bound, should be 20-30, 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 list echo "5. *** Add inside, should be 20, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 list echo "6. *** Add fully overlap, should be 10-30, 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 10-30 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, lower bound, should be 20, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 10-19 1 ipfw port_table 1 list echo "2. *** Delete not overlapped, upper bound, should be 20, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 21-30 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, lower bound, should be 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 10-20 1 ipfw port_table 1 list echo "4. *** Delete Overlapped, upper bound, should be 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 20-30 1 ipfw port_table 1 list echo "5. *** Delete inside, should be 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 20-20 1 ipfw port_table 1 list echo "6. *** Delete fully overlap, should be 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 10-30 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "RANGE OF PORTS" echo "1. *** Add not overlapped, lower bound, should be 10-19, 20-30, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 10-19 1 ipfw port_table 1 list echo "2. *** Add not overlapped, upper bound, should be 20-30, 31-40, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 31-40 1 ipfw port_table 1 list echo "3. *** Add Overlapped, lower bound, should be 10-30, 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 10-20 1 ipfw port_table 1 list echo "4. *** Add Overlapped, upper bound, should be 20-40, 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 30-40 1 ipfw port_table 1 list echo "5. *** Add same, should be 20-30, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 list echo "6. *** Add inside, should be 20-30, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 21-25 1 ipfw port_table 1 list echo "7. *** Add fully overlap, should be 10-40, 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 10-40 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, lower bound, should be 20-30, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 10-19 1 ipfw port_table 1 list echo "2. *** Delete not overlapped, upper bound, should be 20-30, 50-60, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 31-40 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, lower bound, should be 21-30, 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 10-20 1 ipfw port_table 1 list echo "4. *** Delete Overlapped, upper bound, should be 20-29, 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 30-40 1 ipfw port_table 1 list echo "5. *** Delete same, should be 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 20-30 1 ipfw port_table 1 list echo "6. *** Delete inside, should be 20-21, 26-30, 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 22-25 1 ipfw port_table 1 list echo "7. *** Delete fully overlap, 50-60, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 delete 10-40 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "# 2. test if range is middle entry" echo "ONE PORT" echo "1. *** Add not overlapped, lower bound, should be 5-7, 10-19, 20, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 10-19 1 ipfw port_table 1 list echo "2. *** Add not overlapped, upper bound, should be 5-7, 20, 21-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 21-30 1 ipfw port_table 1 list echo "3. *** Add Overlapped, lower bound, should be 5-7, 10-20, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 10-20 1 ipfw port_table 1 list echo "4. *** Add Overlapped, upper bound, should be 5-7, 20-30, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 list echo "5. *** Add inside, should be 5-7, 20, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 list echo "6. *** Add fully overlap, should be 5-7, 10-30, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 10-30 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, lower bound, should be 5-7, 20, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 10-19 1 ipfw port_table 1 list echo "2. *** Delete not overlapped, upper bound, should be 5-7, 20, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 21-30 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, lower bound, should be 5-7, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 10-20 1 ipfw port_table 1 list echo "4. *** Delete Overlapped, upper bound, should be 5-7, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 20-30 1 ipfw port_table 1 list echo "5. *** Delete inside, should be 5-7, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 20-20 1 ipfw port_table 1 list echo "6. *** Delete fully overlap, should be 5-7, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 10-30 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "RANGE OF PORTS" echo "1. *** Add not overlapped, lower bound, should be 5-7, 10-19, 20-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 10-19 1 ipfw port_table 1 list echo "2. *** Add not overlapped, upper bound, should be 5-7, 20-30, 31-40, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 31-40 1 ipfw port_table 1 list echo "3. *** Add Overlapped, lower bound, should be 5-7, 10-30, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 10-20 1 ipfw port_table 1 list echo "4. *** Add Overlapped, upper bound, should be 5-7, 20-40, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 30-40 1 ipfw port_table 1 list echo "5. *** Add same, should be 5-7, 20-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 list echo "6. *** Add inside, should be 5-7, 20-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 21-25 1 ipfw port_table 1 list echo "7. *** Add fully overlap, should be 5-7, 10-40, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 10-40 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, lower bound, should be 5-7, 20-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 10-19 1 ipfw port_table 1 list echo "2. *** Delete not overlapped, upper bound, should be 5-7, 20-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 31-40 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, lower bound, should be 5-7, 21-30, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 10-20 1 ipfw port_table 1 list echo "4. *** Delete Overlapped, upper bound, should be 5-7, 20-29, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 30-40 1 ipfw port_table 1 list echo "5. *** Delete same, should be 5-7, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 20-30 1 ipfw port_table 1 list echo "6. *** Delete inside, should be 5-7, 20-21, 26-30, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 22-25 1 ipfw port_table 1 list echo "7. *** Delete fully overlap, 5-7, 50-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 10-40 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "# 3. test if range is last entry" echo "ONE PORT" echo "1. *** Add not overlapped, lower bound, should be 5-7, 40-49, 20-30, 50-50 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 40-49 1 ipfw port_table 1 list echo "2. *** Add not overlapped, upper bound, should be 5-7, 20-30, 50-50, 51-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 51-60 1 ipfw port_table 1 list echo "3. *** Add Overlapped, lower bound, should be 5-7, 20-30, 40-50" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 40-50 1 ipfw port_table 1 list echo "4. *** Add Overlapped, upper bound, should be 5-7, 20-30, 40-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 40-60 1 ipfw port_table 1 list echo "5. *** Add inside, should be 5-7, 20-30, 40-45, 50-50 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 40-45 1 ipfw port_table 1 list echo "6. *** Add fully overlap, should be 5-7, 20-30, 40-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 40-60 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, lower bound, should be 5-7, 20-30, 50-50 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 delete 40-49 1 ipfw port_table 1 list echo "2. *** Delete not overlapped, upper bound, should be 5-7, 20-30, 50-50 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 delete 51-60 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, lower bound, should be 5-7, 20-30" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 delete 40-50 1 ipfw port_table 1 list echo "4. *** Delete Overlapped, upper bound, should be 5-7, 20-30" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 delete 50-60 1 ipfw port_table 1 list echo "5. *** Delete inside, should be 5-7, 20-30" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 delete 50-50 1 ipfw port_table 1 list echo "6. *** Delete fully overlap, should be 5-7, 20-30" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-50 1 ipfw port_table 1 delete 40-60 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "RANGE OF PORTS" echo "1. *** Add not overlapped, lower bound, should be 5-7, 40-49, 20-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 40-49 1 ipfw port_table 1 list echo "2. *** Add not overlapped, upper bound, should be 5-7, 20-30, 61-70, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 61-70 1 ipfw port_table 1 list echo "3. *** Add Overlapped, lower bound, should be 5-7, 20-30, 40-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 40-50 1 ipfw port_table 1 list echo "4. *** Add Overlapped, upper bound, should be 5-7, 20-30, 50-70" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 60-70 1 ipfw port_table 1 list echo "5. *** Add same, should be 5-7, 20-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 list echo "6. *** Add inside, should be 5-7, 20-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 51-55 1 ipfw port_table 1 list echo "7. *** Add fully overlap, should be 5-7, 20-30, 40-70" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 40-70 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, lower bound, should be 5-7, 20-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 40-49 1 ipfw port_table 1 list echo "2. *** Delete not overlapped, upper bound, should be 5-7, 20-30, 50-60 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 61-70 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, lower bound, should be 5-7, 20-30, 51-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 40-50 1 ipfw port_table 1 list echo "4. *** Delete Overlapped, upper bound, should be 5-7, 20-30, 50-59" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 60-70 1 ipfw port_table 1 list echo "5. *** Delete same, should be 5-7, 20-30" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 50-60 1 ipfw port_table 1 list echo "6. *** Delete inside, should be 5-7, 20-30, 50-51, 56-60" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 52-55 1 ipfw port_table 1 list echo "7. *** Delete fully overlap, 5-7, 20-30" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 delete 40-70 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "#### C. Test with many entries, with 2 or more ranges, both add and delete" echo "# 1. Test when ranges are in between first and last entry including them." echo "ONE PORT" echo "1. *** Add not overlapped, inside, should be 5, 20-30, 40-45, 50-60, 70-80, 90" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 40-45 1 ipfw port_table 1 list echo "2. *** Add Overlapped, lower bound, should be 4-90, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 4-90 1 ipfw port_table 1 list echo "3. *** Add Overlapped, upper bound, should be 5-105, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 5-105 1 ipfw port_table 1 list echo "4. *** Add inside, should be 5-90, 20-30, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 5-90 1 ipfw port_table 1 list echo "5. *** Add fully overlap, should be 4-105, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 4-105 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, inside, should be 5, 20-30, 70-80, 90 only" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 40-70 1 ipfw port_table 1 list echo "2. *** Delete Overlapped, lower bound, should be 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 4-90 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, upper bound, should be 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 5-105 1 ipfw port_table 1 list echo "4. *** Delete inside, should be 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 5-90 1 ipfw port_table 1 list echo "5. *** Delete fully overlap, should be 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 4-105 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "RANGE OF PORTS" echo "1. *** Add not overlapped, inside, should be 5-7, 20-30, 40-45, 50-60, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 40-45 1 ipfw port_table 1 list echo "2. *** Add Overlapped, lower bound, should be 4-100, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 4-95 1 ipfw port_table 1 list echo "3. *** Add Overlapped, upper bound, should be 5-105, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 6-105 1 ipfw port_table 1 list echo "4. *** Add inside, should be 5-100, 20-30, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 6-95 1 ipfw port_table 1 list echo "5. *** Add fully overlap, should be 4-105, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 4-105 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, inside, should be 5-7, 20-30, 70-80, 90-100 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 40-70 1 ipfw port_table 1 list echo "2. *** Delete Overlapped, lower bound, should be 20-30, 70-80, 96-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 4-95 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, upper bound, should be 5, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 6-105 1 ipfw port_table 1 list echo "4. *** Delete inside, should be 5, 20-30, 70-80, 96-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 6-95 1 ipfw port_table 1 list echo "5. *** Delete fully overlap, should be 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 4-105 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "# 2. Test if ranges are in middle." echo "ONE PORT" echo "1. *** Add not overlapped, inside, should be 5-15, 20-20, 50-60, 50-60, 70-70, 90-99" ipfw port_table 1 flush ipfw port_table 1 add 5-15 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-70 1 ipfw port_table 1 add 90-99 1 ipfw port_table 1 add 50-60 1 ipfw port_table 1 list echo "2. *** Add Overlapped, lower bound, should be 5-15, 18-70, 50-60, 90-99" ipfw port_table 1 flush ipfw port_table 1 add 5-15 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-70 1 ipfw port_table 1 add 90-99 1 ipfw port_table 1 add 18-70 1 ipfw port_table 1 list echo "3. *** Add Overlapped, upper bound, should be 5-15, 20-85, 50-60, 90-99" ipfw port_table 1 flush ipfw port_table 1 add 5-15 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-70 1 ipfw port_table 1 add 90-99 1 ipfw port_table 1 add 20-85 1 ipfw port_table 1 list echo "4. *** Add inside, should be 5-15, 20-70, 50-60, 90-99 only" ipfw port_table 1 flush ipfw port_table 1 add 5-15 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-70 1 ipfw port_table 1 add 90-99 1 ipfw port_table 1 add 20-70 1 ipfw port_table 1 list echo "5. *** Add fully overlap, should be 5-15. 18-80, 50-60, 90-99" ipfw port_table 1 flush ipfw port_table 1 add 5-15 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-70 1 ipfw port_table 1 add 90-99 1 ipfw port_table 1 add 18-80 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, inside, should be 5-15, 20, 50-60, 70, 90-99 only" ipfw port_table 1 flush ipfw port_table 1 add 5-15 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-70 1 ipfw port_table 1 add 90-99 1 ipfw port_table 1 delete 50-60 1 ipfw port_table 1 list echo "2. *** Delete Overlapped, lower bound, should be 5-15, 50-60, 90-99" ipfw port_table 1 flush ipfw port_table 1 add 5-15 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-70 1 ipfw port_table 1 add 90-99 1 ipfw port_table 1 delete 18-70 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, upper bound, should be 5-15, 50-60, 90-99" ipfw port_table 1 flush ipfw port_table 1 add 5-15 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-70 1 ipfw port_table 1 add 90-99 1 ipfw port_table 1 delete 20-85 1 ipfw port_table 1 list echo "4. *** Delete inside, should be 5-15, 50-60, 90-99" ipfw port_table 1 flush ipfw port_table 1 add 5-15 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-70 1 ipfw port_table 1 add 90-99 1 ipfw port_table 1 delete 20-70 1 ipfw port_table 1 list echo "5. *** Delete fully overlap, should be 5-15, 50-60, 90-99" ipfw port_table 1 flush ipfw port_table 1 add 5-15 1 ipfw port_table 1 add 20-20 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-70 1 ipfw port_table 1 add 90-99 1 ipfw port_table 1 delete 18-85 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "RANGE OF PORTS" echo "1. *** Add not overlapped, inside, should be 5-7, 20-30, 40-45, 50-60, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 40-45 1 ipfw port_table 1 list echo "2. *** Add Overlapped, lower bound, should be 5-7, 10-80, 50-60, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 10-75 1 ipfw port_table 1 list echo "3. *** Add Overlapped, upper bound, should be 5-7, 20-85, 50-60, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 25-85 1 ipfw port_table 1 list echo "4. *** Add inside, should be 5-7, 20-80, 50-60, 90-100 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 25-75 1 ipfw port_table 1 list echo "5. *** Add fully overlap, should be 5-7, 15-85, 50-60, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 15-85 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, inside, should be 5-7, 20-30, 50-60, 70-80, 90-100 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 50-60 1 ipfw port_table 1 list echo "2. *** Delete Overlapped, lower bound, should be 5-7, 50-60, 76-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 15-75 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, upper bound, should be 5-7, 20-24, 50-60, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 25-85 1 ipfw port_table 1 list echo "4. *** Delete inside, should be 5-7, 20-24, 50-60, 76-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 25-75 1 ipfw port_table 1 list echo "5. *** Delete fully overlap, should be 5-7, 50-60, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 add 50-60 0 ipfw port_table 1 add 70-80 1 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 15-85 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" ################# echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "# 3. Test if ranges are in between first and middle including first." echo "ONE PORT" echo "1. *** Add not overlapped, inside, should be 5, 20-30, 40-45, 50, 70-80, 90" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 40-45 1 ipfw port_table 1 list echo "2. *** Add Overlapped, lower bound, should be 4-50, 20-30, 70-80, 90" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 4-50 1 ipfw port_table 1 list echo "3. *** Add Overlapped, upper bound, should be 5-55, 20-30, 70-80, 90" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 5-55 1 ipfw port_table 1 list echo "4. *** Add inside, should be 5-50, 20-30, 70-80, 90 only" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 5-50 1 ipfw port_table 1 list echo "5. *** Add fully overlap, should be 4-55, 20-30, 70-80, 90" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 4-55 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, inside, should be 5, 20-30, 50, 70-80, 90 only" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 20-30 1 ipfw port_table 1 list echo "2. *** Delete Overlapped, lower bound, should be 20-30, 70-80, 90" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 4-50 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, upper bound, should be 20-30, 70-80, 90" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 5-55 1 ipfw port_table 1 list echo "4. *** Delete inside, should be 20-30, 70-80, 90" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 5-50 1 ipfw port_table 1 list echo "5. *** Delete fully overlap, should be 20-30, 70-80, 90" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 4-55 1 ipfw port_table 1 list echo "------------------------------------------------------------------" ############################################################ echo "RANGE OF PORTS" echo "1. *** Add not overlapped, inside, should be 5-7, 20-30, 20-30, 50-60, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 20-30 1 ipfw port_table 1 list echo "2. *** Add Overlapped, lower bound, should be 4-60, 20-30, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 4-55 1 ipfw port_table 1 list echo "3. *** Add Overlapped, upper bound, should be 5-65, 20-30, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 6-65 1 ipfw port_table 1 list echo "4. *** Add inside, should be 5-60, 20-30, 70-80, 90-100 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 6-55 1 ipfw port_table 1 list echo "5. *** Add fully overlap, should be 4-65, 20-30, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 4-65 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, inside, should be 5-7, 20-30, 50-60, 70-80, 90-100 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 20-30 1 ipfw port_table 1 list echo "2. *** Delete Overlapped, lower bound, should be 20-30, 56-60, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 4-55 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, upper bound, should be 5, 20-30, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 6-65 1 ipfw port_table 1 list echo "4. *** Delete inside, should be 5, 20-30, 56-60, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 6-55 1 ipfw port_table 1 list echo "5. *** Delete fully overlap, should be 20-30, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 4-65 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" echo "# 4. Test if ranges are in between middle and last including last." echo "ONE PORT" echo "1. *** Add not overlapped, inside, should be 5, 20-30, 50, 70-80, 70-80, 90" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 list echo "2. *** Add Overlapped, lower bound, should be 5, 45-90, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 45-90 1 ipfw port_table 1 list echo "3. *** Add Overlapped, upper bound, should be 5, 20-30, 50-105, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 50-105 1 ipfw port_table 1 list echo "4. *** Add inside, should be 5, 50-90, 20-30, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 50-90 1 ipfw port_table 1 list echo "5. *** Add fully overlap, should be 5, 40-105, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 add 40-105 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, inside, should be 5, 20-30, 50, 70-80, 90 only" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 70-80 1 ipfw port_table 1 list echo "2. *** Delete Overlapped, lower bound, should be 5, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 40-90 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, upper bound, should be 5, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 50-105 1 ipfw port_table 1 list echo "4. *** Delete inside, should be 5, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 50-90 1 ipfw port_table 1 list echo "5. *** Delete fully overlap, should be 5, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-5 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-50 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-90 1 ipfw port_table 1 delete 40-105 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "RANGE OF PORTS" echo "1. *** Add not overlapped, inside, should be 5-7, 20-30, 50-60, 70-80, 70-80, 90-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 70-80 1 ipfw port_table 1 list echo "2. *** Add Overlapped, lower bound, should be 5-7, 20-30, 44-100, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 44-95 1 ipfw port_table 1 list echo "3. *** Add Overlapped, upper bound, should be 5-7, 20-30, 50-105, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 56-105 1 ipfw port_table 1 list echo "4. *** Add inside, should be 5-7, 20-30, 50-100, 70-80 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 56-95 1 ipfw port_table 1 list echo "5. *** Add fully overlap, should be 5-7, 20-30, 44-105, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 add 44-105 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "1. *** Delete not overlapped, inside, should be 5-7, 20-30, 50-60, 70-80, 90-100 only" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 70-80 1 ipfw port_table 1 list echo "2. *** Delete Overlapped, lower bound, should be 5-7, 20-30, 70-80, 96-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 44-95 1 ipfw port_table 1 list echo "3. *** Delete Overlapped, upper bound, should be 5-7, 20-30, 50-55, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 56-105 1 ipfw port_table 1 list echo "4. *** Delete inside, should be 5-7, 20-30, 50-55, 70-80, 96-100" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 56-95 1 ipfw port_table 1 list echo "5. *** Delete fully overlap, should be 5-7, 20-30, 70-80" ipfw port_table 1 flush ipfw port_table 1 add 5-7 1 ipfw port_table 1 add 20-30 0 ipfw port_table 1 add 50-60 1 ipfw port_table 1 add 70-80 0 ipfw port_table 1 add 90-100 1 ipfw port_table 1 delete 40-105 1 ipfw port_table 1 list echo "------------------------------------------------------------------" echo "------------------------------------------------------------------" # RANDOM stuffs ipfw port_table 1 flush ipfw port_table 1 add 10 ipfw port_table 1 add 15-17 ipfw port_table 1 add 26-30 ipfw port_table 1 add 35-35 1 ipfw port_table 1 add 40-50 1 ipfw port_table 1 add 60-70 1 ipfw port_table 1 add 220-240 1 ipfw port_table 1 add 800-1000 1 ipfw port_table 1 add 900-1024 ipfw port_table 1 list