Replaced the IFF_DRV_RUNNING with GRE_FLAG_RUNNING and added
gre_flags in gre_softc so gre can use internal flags.
I want to remove all shared uses of the IFF_DRV_RUNNING flag from
interface drivers and this is the first revision.
The idea came to me by @glebius and @zlei comments in geneve implementation.
Please tell me to stop right there if the approach is wrong.
Besides IFF_DRV_RUNNING, any future efforts to implement MGRE and NVGRE will
require internal flags in the gre_softc.
Therefore, gre_options is not appropriate for those changes, given its name
and the in[6]_gre_setopts functions, which take their flags directly from userspace.
P.S: GRE_FLAG_* macro is similar to GRE_FLAGS_* used by grehdr.
After some thought, I concluded the use of GRE_FLAG_* name is fine because of
similar usages in other drivers.
IMHO, the real issue is GRE_FLAGS_* names in grehdr which should include
an HDR prefix or suffix to distinguish it from softc flags. so, if you
think it's not good. tell me to change it.