Commit 48be5f5c authored by Shawn Routhier's avatar Shawn Routhier
Browse files

Merge branch 'trac4269' Merge 4269 after updates to fix conflicts

parents 79bae943 7549535b
1106. [func] sar
Added support for accessing DHCPv6 packet fields message type
and transaction id in a classification expression.
(Trac #4269, git <tbd>)
1105. [bug] pallotron
perfdhcp uses the same transaction id throughout the DORA
exchange to adhere with RFC 2131.
......@@ -5,7 +10,7 @@
1104. [func] tmark
The DDNS parameter, replace-client-name, has been changed from a boolean
to list of modes, which provides greater flexibility in when the Kea
to list of modes, which provides greater flexibility in when the Kea
servers replace or supply DNS names for clients. This is supported both
kea-dhcp4 and kea-dhcp6.
(Trac #4529, git 45e56d7aa0d4a6224a1a28941f6cb11575391222)
......@@ -19,7 +24,7 @@
1102. [func] sar
Added access to the peer address, link address and option
information added by relays in a DHCPv6 message.
(Trac $4269, git bb00d9d205ee047961ba70417d7ce02c37d80ce7)
(Trac $4265, git bb00d9d205ee047961ba70417d7ce02c37d80ce7)
1101. [bug] stephen
Made DHCPSRV_MEMFILE_LFC_UNREGISTER_TIMER_FAILED a debug message as the
......
......@@ -187,6 +187,20 @@ sub-option with code "code" from the DHCPv4 Relay Agent Information option
<entry>relay6[nest].linkaddr</entry>
<!-- <entry>2001:DB8::1</entry> -->n
<entry>The value of the link address field from the relay encapsulation "nest"</entry>
</row>
<row>
<entry>Message Type in DHCPv6 packet</entry>
<entry>pkt6.msgtype</entry>
<!-- <entry>1</entry>
-->
<entry>The value of the message type field in the DHCPv6 packet.</entry>
</row>
<row>
<entry>Transaction ID in DHCPv6 packet</entry>
<entry>pkt6.transid</entry>
<!-- <entry>12345</entry>
-->
<entry>The value of the transaction id in the DHCPv6 packet.</entry>
</row>
</tbody>
</tgroup>
......@@ -247,6 +261,14 @@ sub-option with code "code" from the DHCPv4 Relay Agent Information option
"option", for instance "relay6[nest].option[code].exists" is supported.
</para>
<para>
"pkt6" refers to information from the client request. To access any
information from an intermediate relay use "relay6". "pkt6.msgtype"
and "pkt6.transid" output a 4 byte binary string for the message type
or transaction id. For example the message type SOLICIT will be
"0x00000001" or simply 1 as in "pkt6.msgtype == 1".
</para>
<para>
<table frame="all" id="classification-expressions-list">
<title>List of Classification Expressions</title>
......
......@@ -483,8 +483,8 @@ static void yy_fatal_error (yyconst char msg[] );
(yy_c_buf_p) = yy_cp;
/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
#define YY_NUM_RULES 30
#define YY_END_OF_BUFFER 31
#define YY_NUM_RULES 33
#define YY_END_OF_BUFFER 34
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
......@@ -492,43 +492,46 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static yyconst flex_int16_t yy_acclist[162] =
static yyconst flex_int16_t yy_acclist[183] =
{ 0,
31, 29, 30, 1, 29, 30, 2, 30, 29, 30,
24, 29, 30, 25, 29, 30, 28, 29, 30, 29,
30, 23, 29, 30, 5, 29, 30, 5, 29, 30,
29, 30, 29, 30, 29, 30,16390, 29, 30,16390,
26, 29, 30, 27, 29, 30, 29, 30,16390, 29,
30,16390, 29, 30,16390, 29, 30,16390, 29, 30,
16390, 29, 30,16390, 29, 30,16390, 29, 30,16390,
29, 30,16390, 29, 30,16390, 29, 30,16390, 1,
2, 3, 5, 5, 7, 8,16390,16390, 8198,16390,
16390,16390,16390,16390,16390,16390,16390, 22,16390,16390,
16390,16390,16390, 4, 7, 18,16390, 21,16390,16390,
16390, 15,16390,16390, 20,16390,16390,16390,16390,16390,
16390,16390,16390,16390,16390,16390,16390,16390, 14,16390,
16390,16390,16390,16390,16390,16390,16390, 19,16390, 16,
16390,16390, 9,16390,16390, 10,16390, 11,16390,16390,
7,16390,16390,16390, 13,16390, 12,16390,16390, 17,
16390
34, 32, 33, 1, 32, 33, 2, 33, 32, 33,
24, 32, 33, 25, 32, 33, 28, 32, 33, 32,
33, 23, 32, 33, 5, 32, 33, 5, 32, 33,
32, 33, 32, 33, 32, 33,16390, 32, 33,16390,
26, 32, 33, 27, 32, 33, 32, 33,16390, 32,
33,16390, 32, 33,16390, 32, 33,16390, 32, 33,
16390, 32, 33,16390, 32, 33,16390, 32, 33,16390,
32, 33,16390, 32, 33,16390, 32, 33,16390, 32,
33,16390, 1, 2, 3, 5, 5, 7, 8,16390,
16390, 8198,16390,16390,16390,16390,16390,16390,16390,16390,
16390, 22,16390,16390,16390,16390,16390,16390,16390, 4,
7, 18,16390, 21,16390,16390,16390, 15,16390,16390,
16390, 20,16390,16390,16390,16390,16390,16390,16390,16390,
16390,16390,16390,16390,16390,16390, 29,16390,16390,16390,
14,16390,16390,16390,16390,16390,16390,16390,16390,16390,
16390,16390, 19,16390, 16,16390,16390,16390, 9,16390,
16390, 10,16390, 11,16390,16390,16390, 7,16390, 30,
16390,16390,16390, 31,16390, 13,16390, 12,16390,16390,
17,16390
} ;
static yyconst flex_int16_t yy_accept[114] =
static yyconst flex_int16_t yy_accept[130] =
{ 0,
1, 1, 1, 2, 4, 7, 9, 11, 14, 17,
20, 22, 25, 28, 31, 33, 35, 38, 41, 44,
47, 50, 53, 56, 59, 62, 65, 68, 71, 74,
77, 80, 81, 82, 82, 83, 84, 84, 85, 85,
85, 85, 85, 86, 87, 87, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 100, 101,
102, 103, 104, 104, 105, 106, 108, 110, 111, 112,
114, 115, 117, 118, 119, 120, 121, 122, 122, 123,
124, 125, 126, 127, 128, 129, 131, 131, 132, 133,
134, 135, 136, 137, 138, 138, 140, 142, 143, 145,
146, 148, 150, 151, 152, 153, 154, 155, 157, 159,
160, 162, 162
77, 80, 83, 84, 85, 85, 86, 87, 87, 88,
88, 88, 88, 88, 89, 90, 90, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
104, 105, 106, 107, 108, 109, 110, 110, 111, 112,
114, 116, 117, 118, 120, 121, 122, 124, 125, 126,
127, 128, 129, 130, 131, 131, 132, 133, 134, 135,
136, 137, 139, 140, 141, 143, 144, 144, 145, 146,
147, 148, 149, 150, 151, 152, 153, 153, 155, 157,
158, 159, 161, 162, 164, 166, 167, 168, 169, 170,
172, 173, 174, 176, 178, 180, 181, 183, 183
} ;
static yyconst YY_CHAR yy_ec[256] =
......@@ -544,9 +547,9 @@ static yyconst YY_CHAR yy_ec[256] =
17, 17, 17, 17, 17, 17, 17, 18, 17, 17,
19, 1, 20, 1, 21, 1, 22, 23, 24, 25,
26, 16, 27, 28, 29, 17, 30, 31, 17, 32,
33, 34, 17, 35, 36, 37, 38, 17, 17, 39,
40, 17, 1, 1, 1, 1, 1, 1, 1, 1,
26, 16, 27, 28, 29, 17, 30, 31, 32, 33,
34, 35, 17, 36, 37, 38, 39, 17, 17, 40,
41, 17, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
......@@ -563,128 +566,136 @@ static yyconst YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1
} ;
static yyconst YY_CHAR yy_meta[41] =
static yyconst YY_CHAR yy_meta[42] =
{ 0,
1, 1, 2, 1, 1, 1, 1, 1, 3, 4,
4, 4, 4, 5, 1, 4, 1, 1, 1, 1,
1, 4, 4, 4, 4, 4, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1
} ;
static yyconst flex_uint16_t yy_base[118] =
static yyconst flex_uint16_t yy_base[134] =
{ 0,
0, 0, 220, 221, 217, 215, 213, 221, 221, 221,
31, 221, 36, 33, 202, 200, 74, 105, 221, 221,
24, 181, 174, 186, 182, 177, 29, 183, 182, 169,
180, 203, 201, 199, 221, 55, 68, 35, 188, 187,
0, 186, 0, 221, 120, 122, 0, 0, 221, 168,
173, 165, 167, 156, 162, 156, 155, 0, 165, 159,
166, 149, 123, 0, 0, 0, 0, 163, 150, 0,
155, 0, 155, 148, 160, 145, 143, 133, 157, 141,
155, 143, 153, 134, 136, 0, 138, 135, 125, 116,
107, 113, 57, 102, 142, 0, 0, 101, 0, 95,
0, 0, 64, 146, 54, 48, 41, 0, 0, 44,
0, 221, 159, 161, 163, 53, 166
0, 0, 237, 238, 234, 232, 230, 238, 238, 238,
32, 238, 37, 34, 219, 217, 76, 108, 238, 238,
23, 197, 190, 203, 199, 190, 192, 22, 38, 199,
185, 39, 221, 219, 217, 238, 59, 70, 55, 206,
205, 0, 204, 0, 238, 123, 125, 0, 0, 238,
186, 191, 182, 185, 173, 179, 184, 172, 171, 0,
182, 169, 175, 182, 164, 181, 126, 0, 0, 0,
0, 178, 164, 0, 170, 161, 0, 169, 161, 183,
173, 157, 155, 159, 136, 169, 152, 167, 147, 153,
164, 0, 144, 146, 0, 146, 141, 144, 144, 155,
144, 145, 152, 54, 140, 146, 145, 0, 0, 139,
118, 0, 117, 0, 0, 112, 115, 149, 93, 0,
87, 58, 0, 0, 0, 58, 0, 238, 162, 164,
166, 72, 169
} ;
static yyconst flex_int16_t yy_def[118] =
static yyconst flex_int16_t yy_def[134] =
{ 0,
112, 1, 112, 112, 112, 112, 113, 112, 112, 112,
112, 112, 112, 13, 114, 112, 112, 17, 112, 112,
128, 1, 128, 128, 128, 128, 129, 128, 128, 128,
128, 128, 128, 13, 130, 128, 128, 17, 128, 128,
17, 17, 17, 18, 18, 18, 18, 18, 18, 18,
18, 112, 112, 113, 112, 112, 112, 13, 114, 115,
116, 114, 117, 112, 112, 18, 17, 18, 112, 18,
18, 18, 128, 128, 129, 128, 128, 128, 13, 130,
131, 132, 130, 133, 128, 128, 18, 17, 18, 128,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 128, 132, 133, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 112, 116, 117, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 112, 18, 18,
18, 18, 18, 18, 18, 18, 112, 18, 18, 18,
18, 18, 18, 18, 112, 18, 18, 18, 18, 18,
18, 18, 18, 18, 128, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 128, 18, 18, 18,
18, 18, 18, 112, 18, 18, 18, 18, 18, 18,
18, 0, 112, 112, 112, 112, 112
18, 18, 18, 18, 18, 18, 128, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 128, 18, 18,
18, 18, 18, 18, 18, 18, 18, 0, 128, 128,
128, 128, 128
} ;
static yyconst flex_uint16_t yy_nxt[262] =
static yyconst flex_uint16_t yy_nxt[280] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 14, 14, 15, 16, 17, 18, 18, 19, 20,
4, 21, 17, 22, 17, 23, 18, 24, 18, 18,
25, 26, 27, 28, 29, 30, 31, 18, 18, 18,
36, 36, 36, 36, 37, 38, 38, 38, 38, 39,
112, 40, 112, 41, 50, 51, 64, 40, 40, 40,
40, 40, 57, 58, 36, 36, 36, 36, 101, 102,
111, 112, 110, 112, 41, 45, 45, 63, 63, 63,
63, 46, 109, 47, 47, 47, 47, 39, 108, 47,
48, 48, 107, 49, 46, 47, 47, 47, 47, 47,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 112, 106,
48, 45, 45, 112, 112, 105, 48, 48, 48, 48,
48, 78, 63, 63, 63, 63, 103, 100, 99, 49,
98, 112, 87, 87, 87, 87, 95, 87, 87, 87,
87, 104, 104, 104, 104, 104, 104, 104, 104, 34,
97, 34, 34, 34, 42, 42, 40, 40, 65, 65,
65, 96, 94, 93, 92, 91, 90, 89, 88, 86,
85, 84, 83, 82, 81, 80, 79, 77, 76, 75,
74, 73, 72, 71, 70, 69, 68, 67, 66, 43,
39, 43, 35, 33, 32, 62, 61, 60, 59, 56,
55, 54, 53, 52, 44, 43, 35, 33, 32, 112,
3, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112
25, 26, 27, 28, 29, 30, 31, 32, 18, 18,
18, 37, 37, 37, 37, 38, 39, 39, 39, 39,
40, 128, 41, 51, 42, 52, 59, 60, 41, 41,
41, 41, 41, 61, 65, 114, 115, 62, 37, 37,
37, 37, 128, 128, 66, 68, 42, 46, 46, 67,
67, 67, 67, 47, 127, 48, 48, 48, 48, 40,
126, 48, 49, 49, 128, 50, 47, 48, 48, 48,
48, 48, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 128, 125, 49, 46, 46, 128, 128, 124, 49,
49, 49, 49, 49, 85, 67, 67, 67, 67, 123,
122, 121, 50, 120, 128, 97, 97, 97, 97, 107,
97, 97, 97, 97, 118, 118, 118, 118, 118, 118,
118, 118, 35, 119, 35, 35, 35, 43, 43, 41,
41, 69, 69, 69, 117, 116, 113, 112, 111, 110,
109, 108, 106, 105, 104, 103, 102, 101, 100, 99,
98, 96, 95, 94, 93, 92, 91, 90, 89, 88,
87, 86, 84, 83, 82, 81, 80, 79, 78, 77,
76, 75, 74, 73, 72, 71, 70, 44, 40, 44,
36, 34, 33, 64, 63, 58, 57, 56, 55, 54,
53, 45, 44, 36, 34, 33, 128, 3, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128
} ;
static yyconst flex_int16_t yy_chk[262] =
static yyconst flex_int16_t yy_chk[280] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11, 11, 11, 11, 13, 13, 13, 13, 13, 13,
14, 13, 38, 13, 21, 21, 116, 13, 13, 13,
13, 13, 27, 27, 36, 36, 36, 36, 93, 93,
110, 14, 107, 38, 13, 17, 17, 37, 37, 37,
37, 17, 106, 17, 17, 17, 17, 17, 105, 17,
17, 17, 103, 17, 17, 17, 17, 17, 17, 17,
1, 11, 11, 11, 11, 13, 13, 13, 13, 13,
13, 14, 13, 21, 13, 21, 28, 28, 13, 13,
13, 13, 13, 29, 32, 104, 104, 29, 37, 37,
37, 37, 39, 14, 32, 132, 13, 17, 17, 38,
38, 38, 38, 17, 126, 17, 17, 17, 17, 17,
122, 17, 17, 17, 39, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 18, 18, 18, 18, 18, 100,
18, 45, 45, 46, 46, 98, 18, 18, 18, 18,
18, 63, 63, 63, 63, 63, 94, 92, 91, 45,
90, 46, 78, 78, 78, 78, 87, 87, 87, 87,
87, 95, 95, 95, 95, 104, 104, 104, 104, 113,
89, 113, 113, 113, 114, 114, 115, 115, 117, 117,
117, 88, 85, 84, 83, 82, 81, 80, 79, 77,
76, 75, 74, 73, 71, 69, 68, 62, 61, 60,
59, 57, 56, 55, 54, 53, 52, 51, 50, 42,
40, 39, 34, 33, 32, 31, 30, 29, 28, 26,
25, 24, 23, 22, 16, 15, 7, 6, 5, 3,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112
17, 17, 17, 17, 17, 17, 17, 18, 18, 18,
18, 18, 121, 18, 46, 46, 47, 47, 119, 18,
18, 18, 18, 18, 67, 67, 67, 67, 67, 117,
116, 113, 46, 111, 47, 85, 85, 85, 85, 97,
97, 97, 97, 97, 107, 107, 107, 107, 118, 118,
118, 118, 129, 110, 129, 129, 129, 130, 130, 131,
131, 133, 133, 133, 106, 105, 103, 102, 101, 100,
99, 98, 96, 94, 93, 91, 90, 89, 88, 87,
86, 84, 83, 82, 81, 80, 79, 78, 76, 75,
73, 72, 66, 65, 64, 63, 62, 61, 59, 58,
57, 56, 55, 54, 53, 52, 51, 43, 41, 40,
35, 34, 33, 31, 30, 27, 26, 25, 24, 23,
22, 16, 15, 7, 6, 5, 3, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128
} ;
/* Table of booleans, true if rule could match eol. */
static yyconst flex_int32_t yy_rule_can_match_eol[31] =
static yyconst flex_int32_t yy_rule_can_match_eol[34] =
{ 0,
0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
extern int yy_flex_debug;
int yy_flex_debug = 1;
static yyconst flex_int16_t yy_rule_linenum[30] =
static yyconst flex_int16_t yy_rule_linenum[33] =
{ 0,
82, 86, 92, 102, 108, 122, 129, 143, 144, 145,
146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
156, 157, 158, 159, 160, 161, 162, 163, 165
156, 157, 158, 159, 160, 161, 162, 163, 165, 166,
167, 169
} ;
static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
......@@ -763,7 +774,7 @@ static isc::eval::location loc;
// by moving it ahead by yyleng bytes. yyleng specifies the length of the
// currently matched token.
#define YY_USER_ACTION loc.columns(yyleng);
#line 767 "lexer.cc"
#line 778 "lexer.cc"
#define INITIAL 0
......@@ -1060,7 +1071,7 @@ YY_DECL
loc.step();
#line 1064 "lexer.cc"
#line 1075 "lexer.cc"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
......@@ -1088,14 +1099,14 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 113 )
if ( yy_current_state >= 129 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
*(yy_state_ptr)++ = yy_current_state;
++yy_cp;
}
while ( yy_current_state != 112 );
while ( yy_current_state != 128 );
yy_find_action:
/* %% [10.0] code to find the action number goes here */
......@@ -1158,13 +1169,13 @@ do_action: /* This label is used only to access EOF actions. */
{
if ( yy_act == 0 )
fprintf( stderr, "--scanner backing up\n" );
else if ( yy_act < 30 )
else if ( yy_act < 33 )
fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
(long)yy_rule_linenum[yy_act], yytext );
else if ( yy_act == 30 )
else if ( yy_act == 33 )
fprintf( stderr, "--accepting default rule (\"%s\")\n",
yytext );
else if ( yy_act == 31 )
else if ( yy_act == 34 )
fprintf( stderr, "--(end of buffer or a NUL)\n" );
else
fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
......@@ -1366,18 +1377,33 @@ return isc::eval::EvalParser::make_COMA(loc);
case 29:
YY_RULE_SETUP
#line 165 "lexer.ll"
return isc::eval::EvalParser::make_PKT6(loc);
YY_BREAK
case 30:
YY_RULE_SETUP
#line 166 "lexer.ll"
return isc::eval::EvalParser::make_MSGTYPE(loc);
YY_BREAK
case 31:
YY_RULE_SETUP
#line 167 "lexer.ll"
return isc::eval::EvalParser::make_TRANSID(loc);
YY_BREAK
case 32:
YY_RULE_SETUP
#line 169 "lexer.ll"
driver.error (loc, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
#line 166 "lexer.ll"
#line 170 "lexer.ll"
return isc::eval::EvalParser::make_END(loc);
YY_BREAK
case 30:
case 33:
YY_RULE_SETUP
#line 167 "lexer.ll"
#line 171 "lexer.ll"
ECHO;
YY_BREAK
#line 1381 "lexer.cc"
#line 1407 "lexer.cc"
case YY_END_OF_BUFFER:
{
......@@ -1662,7 +1688,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 113 )
if ( yy_current_state >= 129 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
......@@ -1690,11 +1716,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 113 )
if ( yy_current_state >= 129 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 112);
yy_is_jam = (yy_current_state == 128);
if ( ! yy_is_jam )
*(yy_state_ptr)++ = yy_current_state;
......@@ -2460,7 +2486,7 @@ void yyfree (void * ptr )
/* %ok-for-header */
#line 167 "lexer.ll"
#line 171 "lexer.ll"
......
......@@ -162,6 +162,10 @@ addr6 [0-9a-fA-F]*\:[0-9a-fA-F]*\:[0-9a-fA-F:.]*
"]" return isc::eval::EvalParser::make_RBRACKET(loc);
"," return isc::eval::EvalParser::make_COMA(loc);
"pkt6" return isc::eval::EvalParser::make_PKT6(loc);
"msgtype" return isc::eval::EvalParser::make_MSGTYPE(loc);
"transid" return isc::eval::EvalParser::make_TRANSID(loc);
. driver.error (loc, "Invalid character: " + std::string(yytext));
<<EOF>> return isc::eval::EvalParser::make_END(loc);
%%
......
This diff is collapsed.
......@@ -298,21 +298,24 @@ namespace isc { namespace eval {
// option_repr_type
char dummy1[sizeof(TokenOption::RepresentationType)];
// pkt6_field
char dummy2[sizeof(TokenPkt6::FieldType)];
// relay6_field
char dummy2[sizeof(TokenRelay6Field::FieldType)];
char dummy3[sizeof(TokenRelay6Field::FieldType)];
// "constant string"
// "integer"
// "constant hexstring"
// "option name"
// "ip address"
char dummy3[sizeof(std::string)];
char dummy4[sizeof(std::string)];
// option_code
char dummy4[sizeof(uint16_t)];
char dummy5[sizeof(uint16_t)];
// nest_level
char dummy5[sizeof(uint8_t)];
char dummy6[sizeof(uint8_t)];
};
/// Symbol semantic values.
......@@ -357,11 +360,14 @@ namespace isc { namespace eval {
TOKEN_ALL = 276,
TOKEN_COMA = 277,
TOKEN_CONCAT = 278,
TOKEN_STRING = 279,
TOKEN_INTEGER = 280,
TOKEN_HEXSTRING = 281,
TOKEN_OPTION_NAME = 282,
TOKEN_IP_ADDRESS = 283
TOKEN_PKT6 = 279,
TOKEN_MSGTYPE = 280,
TOKEN_TRANSID = 281,
TOKEN_STRING = 282,
TOKEN_INTEGER = 283,
TOKEN_HEXSTRING = 284,
TOKEN_OPTION_NAME = 285,
TOKEN_IP_ADDRESS = 286
};
};
......@@ -401,6 +407,8 @@ namespace isc { namespace eval {
basic_symbol (typename Base::kind_type t, const TokenOption::RepresentationType v, const location_type& l);