On Thu, 2004-04-01 at 10:25, Dimitrios Kalogeras wrote:
I would like to have your opinion on the following issues.
I beleive the last draft http://www.ietf.org/internet-drafts/draft-blunk-rpslng-03.txt has some serious typos.
Specifically in section 2.5 the definition of EXCEPT and REFINE do not allow for nay curly bracket after the EXCEPT or REFINE .
mp-import ::= [protocol <protocol-1>] [into <protocol-2>] <import-expression>
<import-expression> ::= [afi <afi-list>] <import-term> accept <mp-filter> | [afi <afi-list>] <import-term> accept <mp-filter> EXCEPT <import-expression> | [afi <afi-list>] <import-term> accept <mp-filter> REFINE <import-expression>
<import-term> ::= <import-factor> | { <import-factor> ... <import-factor> }
<import-factor> ::= from <mp-peering> [action <action>];
While in the policy examples there are curly brackets after REFINE and EXCEPT.
Dimitrios, thanks for your input. You are correct that the syntax above is flawed. Below are my proposed revisions based largely on the RFC2622 text with several fixes. It turned out to be somewhat more complex than I had hoped, but I believe this correctly captures the syntax. Everyone, please review carefully and let's make sure we get this right. In particular, let me know if you see any flaws or ways that this can be reduced to be more compact. mp-import ::= [protocol <protocol-1>] [into <protocol-2>] <import-expression> <import-expression> ::= [afi <afi-list>] <import-term> ... [afi <afi-list>] <import-term> <import-term> ::= <import-item> | <import-item> EXCEPT {<import-expression>} | <import-item> REFINE {<import-expression>} <import-item> ::= import-factor | { <import-factor> ... <import-factor> } <import-factor> ::= from <mp-peering> [action <action>;] ... from <mp-peering> [action <action>;] accept <mp-filter>;
The second issue is with regard of the logic of REFINE and EXCEPT statements.
Does the RPSLng REFINE statements refines the afi protocol list ? if yes then this is not shown in the grammar.
Dimitrios, I believe the above should allow one to refine the afi protocol list.
Assume for example that I would like to express a policy like
import from AS-ANY accept ANY but from AS 1 if accept community (1:3);(action xxx); but from AS 1 if accept community (1:5); action yyy);
how do I express this in RPSL ng? Is this a typical usage of REFINE or EXCEPT statement ?
If this is a typiical usage of EXCEPT statement it would be nice to have some kind of appendinx for porting policies from rfc2622 to RPSLng.
Does my updated grammar above make things clearer? Do you still feel an appendix would be helpful. Your example is a bit confusing (and isn't valid RPSL). Could you clarify a bit? -Larry