pespin has uploaded this change for review.
jenkins-common.sh: Store IP subnet prefix in global variable
Change-Id: Icc492aea1ddb91f672c7a0cec764b42711789fb6
---
M jenkins-common.sh
M osmo-ran/jenkins.sh
M ttcn3-asterisk-ims-ue-test/jenkins.sh
M ttcn3-bsc-test-vamos/jenkins.sh
M ttcn3-bsc-test/jenkins.sh
M ttcn3-bts-test/jenkins.sh
M ttcn3-cbc-test/jenkins.sh
M ttcn3-gbproxy-test-fr/jenkins.sh
M ttcn3-gbproxy-test/jenkins.sh
M ttcn3-ggsn-test/jenkins.sh
M ttcn3-hlr-test/jenkins.sh
M ttcn3-hnbgw-test/jenkins.sh
M ttcn3-hnodeb-test/jenkins.sh
M ttcn3-hss-test-ogs/jenkins.sh
M ttcn3-mgw-test/jenkins.sh
M ttcn3-msc-test/jenkins.sh
M ttcn3-pcu-test/jenkins.sh
M ttcn3-remsim-test/jenkins.sh
M ttcn3-sccp-test/jenkins.sh
M ttcn3-sgsn-test/jenkins.sh
M ttcn3-sip-test/jenkins.sh
M ttcn3-smlc-test/jenkins.sh
M ttcn3-stp-test/jenkins.sh
M ttcn3-upf-test/jenkins.sh
24 files changed, 54 insertions(+), 41 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/31/37331/1
diff --git a/jenkins-common.sh b/jenkins-common.sh
index 8ec6b29..af52b7f 100644
--- a/jenkins-common.sh
+++ b/jenkins-common.sh
@@ -2,6 +2,9 @@
KERNEL_TEST_DIR="$(realpath ../scripts/kernel-test)"
DEBIAN_DEFAULT="bookworm"
+SUB4_PREFIX="172.18"
+SUB6_PREFIX="fd02:db8"
+
docker_image_exists() {
test -n "$(docker images -q "$REPO_USER/$1")"
}
@@ -251,8 +254,8 @@
for i in $(seq 1 30); do
SUBNET="$(echo "($SUBNET + 1) % 256" | bc)"
NET_NAME="$SUITE_NAME-$SUBNET"
- SUB4="172.18.$SUBNET.0/24"
- SUB6="fd02:db8:$SUBNET::/64"
+ SUB4="$SUB4_PREFIX.$SUBNET.0/24"
+ SUB6="$SUB6_PREFIX:$SUBNET::/64"
set +x
echo "Creating network $NET_NAME, trying SUBNET=$SUBNET..."
set -x
@@ -291,8 +294,8 @@
network_clean
network_remove
fi
- SUB4="172.18.$NET.0/24"
- SUB6="fd02:db8:$NET::/64"
+ SUB4="$SUB4_PREFIX.$NET.0/24"
+ SUB6="$SUB6_PREFIX:$NET::/64"
set +x
echo "Creating network $NET_NAME"
set -x
@@ -300,7 +303,7 @@
--driver=bridge \
--subnet $SUB4 \
--ipv6 --subnet $SUB6 \
- -o "com.docker.network.bridge.host_binding_ipv4"="172.18.$NET.1" \
+ -o "com.docker.network.bridge.host_binding_ipv4"="$SUB4_PREFIX.$NET.1" \
$NET_NAME
}
@@ -369,8 +372,8 @@
sed \
-i \
-E \
- -e "s/172\.18\.[0-9]{1,3}\./172.18.$SUBNET./g" \
- -e "s/fd02:db8:[0-9]{1,3}:/fd02:db8:$SUBNET:/g" \
+ -e "s/172\.18\.[0-9]{1,3}\./$SUB4_PREFIX.$SUBNET./g" \
+ -e "s/$SUB6_PREFIX:[0-9]{1,3}:/$SUB6_PREFIX:$SUBNET:/g" \
"$i"
done
@@ -383,7 +386,7 @@
docker_network_params() {
NET=$1
ADDR_SUFIX=$2
- echo --network $NET_NAME --ip "172.18.$NET.$ADDR_SUFIX" --ip6 "fd02:db8:$NET::$ADDR_SUFIX"
+ echo --network $NET_NAME --ip "$SUB4_PREFIX.$NET.$ADDR_SUFIX" --ip6 "$SUB6_PREFIX:$NET::$ADDR_SUFIX"
}
fix_perms() {
diff --git a/osmo-ran/jenkins.sh b/osmo-ran/jenkins.sh
index 1b5d93a..120d2a0 100755
--- a/osmo-ran/jenkins.sh
+++ b/osmo-ran/jenkins.sh
@@ -9,6 +9,7 @@
"systemd" \
"osmo-ran$IMAGE_SUFFIX"
+SUB4_PREFIX=${SUB4_PREFIX:-"172.18"}
SUBNET=${SUBNET:-25}
IPSUFFIX=200
NET_NAME="osmo-ran-subnet$SUBNET"
@@ -20,7 +21,7 @@
mkdir $VOL_RAN_DIR/osmocom
cp osmocom/* $VOL_RAN_DIR/osmocom/
-DOCKER_IN_IP="172.18.$SUBNET.$IPSUFFIX"
+DOCKER_IN_IP="$SUB4_PREFIX.$SUBNET.$IPSUFFIX"
SGSN_IP="${SGSN_IP:-192.168.30.1}"
STP_IP="${STP_IP:-192.168.30.1}"
TRX_IP="${TRX_IP:-192.168.30.100}"
diff --git a/ttcn3-asterisk-ims-ue-test/jenkins.sh b/ttcn3-asterisk-ims-ue-test/jenkins.sh
index eba4bd8..2e10f76 100755
--- a/ttcn3-asterisk-ims-ue-test/jenkins.sh
+++ b/ttcn3-asterisk-ims-ue-test/jenkins.sh
@@ -24,7 +24,7 @@
network_create
network_replace_subnet_in_configs
-SUBNET_IP_PREFIX="172.18.$SUBNET"
+SUBNET_IP_PREFIX="$SUB4_PREFIX.$SUBNET"
ASTERISK_IP_SUFFIX="10"
TTCN3_IP_SUFFIX="103"
IMSCORE_IP_SUFFIX="104"
diff --git a/ttcn3-bsc-test-vamos/jenkins.sh b/ttcn3-bsc-test-vamos/jenkins.sh
index 219d813..e9a130d 100755
--- a/ttcn3-bsc-test-vamos/jenkins.sh
+++ b/ttcn3-bsc-test-vamos/jenkins.sh
@@ -59,7 +59,7 @@
/bin/sh -c "/usr/local/bin/respawn.sh \
osmo-bts-omldummy \
$BTS_FEATURES \
- 172.18.$SUBNET.20 \
+ $SUB4_PREFIX.$SUBNET.20 \
$((i + 1234)) \
1 \
>>/data/osmo-bts-omldummy-${i}.log 2>&1"
@@ -70,7 +70,7 @@
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4242" \
-v $VOL_BASE_DIR/bsc-tester:/data \
--name ${BUILD_TAG}-ttcn3-bsc-test \
diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh
index 0a3128c..f0274ad 100755
--- a/ttcn3-bsc-test/jenkins.sh
+++ b/ttcn3-bsc-test/jenkins.sh
@@ -59,7 +59,7 @@
/bin/sh -c "/usr/local/bin/respawn.sh \
osmo-bts-omldummy \
$BTS_FEATURES \
- 172.18.$SUBNET.20 \
+ $SUB4_PREFIX.$SUBNET.20 \
$(($1 + 1234)) \
$2 \
>>/data/osmo-bts-omldummy-$1.log 2>&1"
@@ -74,7 +74,7 @@
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4242" \
-v $VOL_BASE_DIR/bsc-tester:/data \
--name ${BUILD_TAG}-ttcn3-bsc-test \
diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh
index 35415cd..40c00ac 100755
--- a/ttcn3-bts-test/jenkins.sh
+++ b/ttcn3-bts-test/jenkins.sh
@@ -72,11 +72,11 @@
--log-file-level DEBUG \
--log-file-time \
--log-level INFO \
- -R 172.18.$SUBNET.20 \
- -r 172.18.$SUBNET.22 \
- --trx TRX1@172.18.$SUBNET.20:5700/1 \
- --trx TRX2@172.18.$SUBNET.20:5700/2 \
- --trx TRX3@172.18.$SUBNET.20:5700/3 \
+ -R $SUB4_PREFIX.$SUBNET.20 \
+ -r $SUB4_PREFIX.$SUBNET.22 \
+ --trx TRX1@$SUB4_PREFIX.$SUBNET.20:5700/1 \
+ --trx TRX2@$SUB4_PREFIX.$SUBNET.20:5700/2 \
+ --trx TRX3@$SUB4_PREFIX.$SUBNET.20:5700/3 \
>>/data/fake_trx.out 2>&1"
}
@@ -91,7 +91,7 @@
$DOCKER_ARGS \
$REPO_USER/osmocom-bb-host-master \
/bin/sh -c "trxcon \
- -i 172.18.$SUBNET.21 \
+ -i $SUB4_PREFIX.$SUBNET.21 \
-s /data/unix/osmocom_l2 \
>>/data/trxcon.log 2>&1"
}
@@ -116,7 +116,7 @@
$(docker_network_params $SUBNET 10) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4241" \
-v $VOL_BASE_DIR/bts-tester-${variant}:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
diff --git a/ttcn3-cbc-test/jenkins.sh b/ttcn3-cbc-test/jenkins.sh
index 6026df0..584d0b7 100755
--- a/ttcn3-cbc-test/jenkins.sh
+++ b/ttcn3-cbc-test/jenkins.sh
@@ -33,7 +33,7 @@
$(docker_network_params $SUBNET 100) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4264" \
-v $VOL_BASE_DIR/cbc-tester:/data \
--name ${BUILD_TAG}-ttcn3-cbc-test \
diff --git a/ttcn3-gbproxy-test-fr/jenkins.sh b/ttcn3-gbproxy-test-fr/jenkins.sh
index 72dc4af..9d90129 100755
--- a/ttcn3-gbproxy-test-fr/jenkins.sh
+++ b/ttcn3-gbproxy-test-fr/jenkins.sh
@@ -61,7 +61,7 @@
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.10" \
-e "OSMO_SUT_PORT=4246" \
-e "WAIT_FOR_NETDEV=hdlc8" \
-v $VOL_BASE_DIR/gbproxy-tester:/data \
diff --git a/ttcn3-gbproxy-test/jenkins.sh b/ttcn3-gbproxy-test/jenkins.sh
index 861be39..c07f389 100755
--- a/ttcn3-gbproxy-test/jenkins.sh
+++ b/ttcn3-gbproxy-test/jenkins.sh
@@ -39,7 +39,7 @@
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.10" \
-e "OSMO_SUT_PORT=4246" \
-v $VOL_BASE_DIR/gbproxy-tester:/data \
--name ${BUILD_TAG}-ttcn3-gbproxy-test \
diff --git a/ttcn3-ggsn-test/jenkins.sh b/ttcn3-ggsn-test/jenkins.sh
index 7c9c7ac..c150ecc 100755
--- a/ttcn3-ggsn-test/jenkins.sh
+++ b/ttcn3-ggsn-test/jenkins.sh
@@ -61,13 +61,13 @@
-v "$KERNEL_TEST_DIR:/kernel-test:ro"
-v "$CACHE_DIR:/cache"
"
- OSMO_SUT_HOST="172.18.$SUBNET.200"
+ OSMO_SUT_HOST="$SUB4_PREFIX.$SUBNET.200"
else
GGSN_DOCKER_ARGS="
$(docker_network_params $SUBNET 201)
"
- OSMO_SUT_HOST="172.18.$SUBNET.201"
+ OSMO_SUT_HOST="$SUB4_PREFIX.$SUBNET.201"
fi
docker run --rm \
--cap-add=NET_ADMIN \
diff --git a/ttcn3-hlr-test/jenkins.sh b/ttcn3-hlr-test/jenkins.sh
index 66d102e..c716add 100755
--- a/ttcn3-hlr-test/jenkins.sh
+++ b/ttcn3-hlr-test/jenkins.sh
@@ -34,7 +34,7 @@
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4258" \
-v $VOL_BASE_DIR/hlr-tester:/data \
--name ${BUILD_TAG}-ttcn3-hlr-test \
diff --git a/ttcn3-hnbgw-test/jenkins.sh b/ttcn3-hnbgw-test/jenkins.sh
index 21647ed..d886378 100755
--- a/ttcn3-hnbgw-test/jenkins.sh
+++ b/ttcn3-hnbgw-test/jenkins.sh
@@ -67,7 +67,7 @@
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4261" \
-v $base_dir/hnbgw-tester:/data \
-v $base_dir/unix:/data/unix \
diff --git a/ttcn3-hnodeb-test/jenkins.sh b/ttcn3-hnodeb-test/jenkins.sh
index cdc47b0..d3ae816 100755
--- a/ttcn3-hnodeb-test/jenkins.sh
+++ b/ttcn3-hnodeb-test/jenkins.sh
@@ -38,7 +38,7 @@
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4273" \
-v $VOL_BASE_DIR/hnodeb-tester:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
diff --git a/ttcn3-hss-test-ogs/jenkins.sh b/ttcn3-hss-test-ogs/jenkins.sh
index eb60835..d8932aa 100755
--- a/ttcn3-hss-test-ogs/jenkins.sh
+++ b/ttcn3-hss-test-ogs/jenkins.sh
@@ -24,7 +24,7 @@
network_create
network_replace_subnet_in_configs
-MONGOD_ADDR="172.18.$SUBNET.103"
+MONGOD_ADDR="$SUB4_PREFIX.$SUBNET.103"
DBCTL="open5gs-dbctl --db_uri=mongodb://$MONGOD_ADDR/open5gs"
# start container with mongod in background
diff --git a/ttcn3-mgw-test/jenkins.sh b/ttcn3-mgw-test/jenkins.sh
index 5395fa3..4add209 100755
--- a/ttcn3-mgw-test/jenkins.sh
+++ b/ttcn3-mgw-test/jenkins.sh
@@ -34,7 +34,7 @@
--ulimit core=-1 \
-v $VOL_BASE_DIR/mgw-tester:/data \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.180" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.180" \
-e "OSMO_SUT_PORT=4243" \
--name ${BUILD_TAG}-ttcn3-mgw-test \
$DOCKER_ARGS \
diff --git a/ttcn3-msc-test/jenkins.sh b/ttcn3-msc-test/jenkins.sh
index 6a0f3d5..46844d5 100755
--- a/ttcn3-msc-test/jenkins.sh
+++ b/ttcn3-msc-test/jenkins.sh
@@ -51,7 +51,7 @@
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.10" \
-e "OSMO_SUT_PORT=4254" \
-v $VOL_BASE_DIR/msc-tester:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
diff --git a/ttcn3-pcu-test/jenkins.sh b/ttcn3-pcu-test/jenkins.sh
index dcd0ce9..6147a73 100755
--- a/ttcn3-pcu-test/jenkins.sh
+++ b/ttcn3-pcu-test/jenkins.sh
@@ -46,7 +46,7 @@
$(docker_network_params $SUBNET 10) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.101" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.101" \
-e "OSMO_SUT_PORT=4240" \
-v $VOL_BASE_DIR/pcu-tester:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
diff --git a/ttcn3-remsim-test/jenkins.sh b/ttcn3-remsim-test/jenkins.sh
index 158a352..281b00d 100755
--- a/ttcn3-remsim-test/jenkins.sh
+++ b/ttcn3-remsim-test/jenkins.sh
@@ -32,7 +32,7 @@
$REPO_USER/osmo-remsim-$IMAGE_SUFFIX \
/bin/sh -c "pcscd; \
osmo-remsim-bankd \
- -i 172.18.$SUBNET.10 \
+ -i $SUB4_PREFIX.$SUBNET.10 \
>/data/osmo-remsim-bankd.log 2>&1"
}
diff --git a/ttcn3-sccp-test/jenkins.sh b/ttcn3-sccp-test/jenkins.sh
index 7eadd5d..03a630c 100755
--- a/ttcn3-sccp-test/jenkins.sh
+++ b/ttcn3-sccp-test/jenkins.sh
@@ -29,8 +29,8 @@
$DOCKER_ARGS \
$REPO_USER/osmo-stp-master \
/bin/sh -c "sccp_demo_user \
- -l 172.18.$SUBNET.200 \
- -r 172.18.$SUBNET.203 \
+ -l $SUB4_PREFIX.$SUBNET.200 \
+ -r $SUB4_PREFIX.$SUBNET.203 \
-C /data/sccp_demo_user.cfg \
>>/data/sccp_demo_user.log 2>&1"
diff --git a/ttcn3-sgsn-test/jenkins.sh b/ttcn3-sgsn-test/jenkins.sh
index 9238096..e1f40f6 100755
--- a/ttcn3-sgsn-test/jenkins.sh
+++ b/ttcn3-sgsn-test/jenkins.sh
@@ -49,7 +49,7 @@
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.10" \
-e "OSMO_SUT_PORT=4245" \
-v $VOL_BASE_DIR/sgsn-tester:/data \
--name ${BUILD_TAG}-ttcn3-sgsn-test \
diff --git a/ttcn3-sip-test/jenkins.sh b/ttcn3-sip-test/jenkins.sh
index 5ccbdf5..6558875 100755
--- a/ttcn3-sip-test/jenkins.sh
+++ b/ttcn3-sip-test/jenkins.sh
@@ -39,7 +39,7 @@
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.10" \
-e "OSMO_SUT_PORT=4256" \
-v $VOL_BASE_DIR/sip-tester:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
diff --git a/ttcn3-smlc-test/jenkins.sh b/ttcn3-smlc-test/jenkins.sh
index ab284b3..5bcdcbe 100755
--- a/ttcn3-smlc-test/jenkins.sh
+++ b/ttcn3-smlc-test/jenkins.sh
@@ -47,7 +47,7 @@
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4271" \
-v $VOL_BASE_DIR/smlc-tester:/data \
--name ${BUILD_TAG}-ttcn3-smlc-test \
diff --git a/ttcn3-stp-test/jenkins.sh b/ttcn3-stp-test/jenkins.sh
index b1f02b9..9975f5e 100755
--- a/ttcn3-stp-test/jenkins.sh
+++ b/ttcn3-stp-test/jenkins.sh
@@ -40,7 +40,7 @@
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.200" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.200" \
-e "OSMO_SUT_PORT=4239" \
-v $VOL_BASE_DIR/stp-tester:/data \
--name ${BUILD_TAG}-ttcn3-stp-test \
diff --git a/ttcn3-upf-test/jenkins.sh b/ttcn3-upf-test/jenkins.sh
index 8bb19e2..47b892c 100755
--- a/ttcn3-upf-test/jenkins.sh
+++ b/ttcn3-upf-test/jenkins.sh
@@ -33,7 +33,7 @@
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4275" \
-v $VOL_BASE_DIR/upf-tester:/data \
--name ${BUILD_TAG}-ttcn3-upf-test \
To view, visit change 37331. To unsubscribe, or for help writing mail filters, visit settings.