|
@@ -55,6 +55,9 @@ using namespace std;
|
|
|
DHCP_SOCKET_TYPE "dhcp-socket-type"
|
|
|
RAW "raw"
|
|
|
UDP "udp"
|
|
|
+ OUTBOUND_INTERFACE "outbound-interface"
|
|
|
+ SAME_AS_INBOUND "same-as-inbound"
|
|
|
+ USE_ROUTING "use-routing"
|
|
|
RE_DETECT "re-detect"
|
|
|
|
|
|
ECHO_CLIENT_ID "echo-client-id"
|
|
@@ -212,6 +215,7 @@ using namespace std;
|
|
|
%type <ElementPtr> value
|
|
|
%type <ElementPtr> map_value
|
|
|
%type <ElementPtr> socket_type
|
|
|
+%type <ElementPtr> outbound_interface_value
|
|
|
%type <ElementPtr> db_type
|
|
|
%type <ElementPtr> hr_mode
|
|
|
%type <ElementPtr> ncr_protocol_value
|
|
@@ -477,6 +481,7 @@ interfaces_config_params: interfaces_config_param
|
|
|
|
|
|
interfaces_config_param: interfaces_list
|
|
|
| dhcp_socket_type
|
|
|
+ | outbound_interface
|
|
|
| re_detect
|
|
|
;
|
|
|
|
|
@@ -510,6 +515,19 @@ socket_type: RAW { $$ = ElementPtr(new StringElement("raw", ctx.loc2pos(@1))); }
|
|
|
| UDP { $$ = ElementPtr(new StringElement("udp", ctx.loc2pos(@1))); }
|
|
|
;
|
|
|
|
|
|
+outbound_interface: OUTBOUND_INTERFACE {
|
|
|
+ ctx.enter(ctx.OUTBOUND_INTERFACE);
|
|
|
+} COLON outbound_interface_value {
|
|
|
+ ctx.stack_.back()->set("outbound-interface", $4);
|
|
|
+ ctx.leave();
|
|
|
+}
|
|
|
+
|
|
|
+outbound_interface_value: SAME_AS_INBOUND {
|
|
|
+ $$ = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(@1)));
|
|
|
+} | USE_ROUTING {
|
|
|
+ $$ = ElementPtr(new StringElement("use-routing", ctx.loc2pos(@1)));
|
|
|
+ } ;
|
|
|
+
|
|
|
re_detect: RE_DETECT COLON BOOLEAN {
|
|
|
ElementPtr b(new BoolElement($3, ctx.loc2pos(@3)));
|
|
|
ctx.stack_.back()->set("re-detect", b);
|