######################################
##-- mcproxy configuration script --##
######################################

# Protocol: IGMPv1|IGMPv2|IGMPv3 (IPv4) - MLDv1|MLDv2 (IPv6)
protocol IGMPv3;

###########################################

# Proxy Instance: upstream ==> downstream
pinstance A: ap a1 ==> ap a2;
pinstance B: bp b1 ==> bp b2;

###########################################

# Tables
table allways {
	(*|*)
};

table piA_peering_ifs {
	ap(*|*)
};

table piA_upstreams {
	a1(*|*)
};

table piB_peering_ifs {
	bp(*|*)
};

table piB_upstreams {
	b1(*|*)
};

###########################################

# Instance Behaviour
pinstance A upstream * in rulematching mutex 10; #or 25ms (u4)
#pinstance A upstream * out rulematching all; #default

pinstance A upstream ap out blacklist table allways; #(u1)
#pinstance A upstream ap in whitelist table {(*|*)}; #default (u2, u3)

pinstance A upstream a1 out blacklist table piA_peering_ifs; #(u3_1)
#pinstance A upstream a1 in whitelist table {(*|*)}; #default

pinstance A downstream ap in blacklist table allways; #(d1)
pinstance A downstream ap out blacklist table piA_upstreams; #(d2, d2_1, d3, d4)

#pinstance A downstream a2 in whitelist table {(*|*)}; #default
#pinstance A downstream a2 out whitelist table {(*|*)}; #default

pinstance B upstream * in rulematching mutex 10;  #or 25ms (u4)
#pinstance B upstream * out rulematching all; #default

pinstance B upstream bp out blacklist table allways; #(u1)
#pinstance B upstream bp in whitelist table {(*|*)}; #default (u2, u3)

pinstance B upstream b1 out blacklist table piB_peering_ifs; #(u3_1)
#pinstance b upstream b1 in whitelist table {(*|*)}; #default

pinstance B downstream bp in blacklist table allways; #(d1)
pinstance B downstream bp out blacklist table piB_upstreams; #(d2, d2_1, d3, d4)

#pinstance B downstream b2 in whitelist table {(*|*)}; #default
#pinstance B downstream b2 out whitelist table {(*|*)}; #default