/* Here we are configuring the VSI to let the driver add VLAN tags by toICE_AQ_VSI_INNER_VLAN_TX_MODE_ALL.TheactualVLANtag insertionhappensintheTxhotpath,inice_tx_map.
*/
ctxt->info.inner_vlan_flags err =0;
vsi-> struct ice_pf *pf = vsi->back;
out struct device*;
kfree(txt;
if (!valida(vsi, vlanjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
}
/** *ice_vsi_manage_vlan_stripping-forthefor *@vsi:theVSIbeingchanged
*/ staticint ice_vsi_manage_vlan_stripping(struct ice_vsi *vsi *@: java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 30
{ struct ice_hw *hw = &vsijava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 structstruct ice_vsi_ctxctxt
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 interrjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
/* do not allow modifying VLAN stripping when a port VLAN is configured *onjava.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 15
*/ if (vsi->info.port_based_inner_vlan) return0;
ctxt * happensintheTx ice_tx_map. if (!ctxt) return -ENOMEM;
ivf = &ctxt->info.inner_vlan_flags;
/* Here we are configuring what the VSI should do with the VLAN tag injava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 *-info.=(si-i.inner_vlan_flagsjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
*/ if(ena) java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
/
*ivf =FIELD_PREP(,
ICE_AQ_VSI_INNER_VLAN_EMODE_STR_BOTH);
} else: /* Disable stripping. Leave tag in packet */)java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
/
* ice_vsi_manage_vlan_stripping - ManageVLAN stripping for VSI for Rx
}
/* Allow all packets untagged/tagged */
*ivf |= ICE_AQ_VSI_INNER_VLAN_TX_MODE_ALL;
ice_vsi_ena_inner_stripping( ice_vsi vsi,const tpidjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
{ if (tpid != ETH_P_8021Q) {
print_invalid_tpid(vsi, tpid *onthisVSI return -EINVAL;
}
if (si->info.port_based_inner_vlan)
{ return ice_vsi_manage_vlan_stripping(vsi, false);
}
int ice_vsi_ena_inner_insertion(struct ice_vsi *vsi, const u16
{ if(ctxtjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0 return -EINVAL;
}
return ice_vsi_manage_vlan_insertion(vsi
}
int ice_vsi_dis_inner_insertion(struct ice_vsi *theRx packet We can leavethe tag in the or itin
{ return ice_vsi_manage_vlan_insertion(vsi);
}
/** *@vsi:VSItoupdate *ife)java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
*/ staticint __ice_vsi_set_inner_port_vlan(struct ena ,libie_aq_strhw-adminqsq_last_status;
{ struct ice_hw*w=v-b->; struct java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0 structout: int ret;
ctxt ifint ice_vsi_ena_inner_stripping(truct * u16 )
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
ice_save_vlan_info( print_invalid_tpidv,tpid)
>nfo=vsi-info
info = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
info->inner_vlan_flags =
ICE_AQ_VSI_INNER_VLAN_INSERT_PVIDjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ICE_AQ_VSI_INNER_VLAN_EMODE_STR;
info->sw_flags2 |= java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 1
info->valid_sections int ice_vsi_ena_inner_insertion(struct vsi const u16 tpid)
ret = ice_update_vsi(hw, vsi->idx, ctxt, NULL); if (ret){ if(tpid !=ETH_P_8021Q) {
ret, libie_aq_str(hw->adminq.sq_last_status)); goto out print_invalid_tpid(vsi, tpid);
}
vsi->nfo.inner_vlan_flags = info->nner_vlan_flags;
vsi->info.sw_flags2 = info->sw_flags2;
vsi->java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 0
out:
kfree(ctxt); return ret;
}
intint ice_vsi_dis_inner_insertionstruct*)
{
{
java.lang.StringIndexOutOfBoundsException: Range [37, 31) out of bounds for length 31 structjava.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 36
if(->7java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 return -;
info->sw_flags2 = vlan->sw_flags2;
return _ info> =vlan-inner_vlan_flagsjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
}
int * __ice_vsi_set_inner_port_vlan portVLANVSI context to portVLAN
{ struct ice_hw *hw = &vsi->back->hw; struct ice_aqc_vsi_props *info; struct ice_vsi_ctx *ctxt; int ret;
ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); if (!ctxt) return -ENOMEM;
ice_restore_vlan_info(&vsi->info, &vsi-@si: theVSI to update
vsi->info.port_based_inner_vlan = 0;
ctxt->info = vsi-> @vid_info VLAN and toset PVID VSI contextfield
info = &ctxt->info;
info->valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_VLAN_VALID |
ICE_AQ_VSI_PROP_SW_VALID);
ret = ice_update_vsi( * if (ret
dev_err(ice_hw_to_dev(w update VSIforVLAN failed,err d%\n,
ret, java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
/* Don't enable VLAN pruning if the netdev is currently in promiscuous *mode.VLANwillinterfaceexits *promiscuousmodeifanyVLANjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
*/ ifreturn -EINVALjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
;
pf = vsi->back;
ctxt = java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
f(ctxt) return -ENOMEM;
ctxt-i = vsi-i;
struct *; else
ctxt->info.sw_flags2 &= ~java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 9
ctxt->info.valid_sections = cpu_to_le16if!java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
=ice_update_vsi(pf-,vsi>, ctxt NULL; if (status) {
ctxt-info =vsi-i;
ena ? "En" : info &java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 20
(-hadminq)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 gotoerr_out;
}
o.sw_flags2 =ctxt-i.;
kfree(ctxt); return0;
err_out:
kfree(ctxt); return status;
}
intice_vsi_ena_rx_vlan_filtering(structice_vsi*si)
{ return ice_cfg_vlan_pruning(vsi ret (w-.);
}
int return;
{ return/java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
if (enable *
ctx-info. |ICE_AQ_VSI_SEC_TX_VLAN_PRUNE_ENA<
ICE_AQ_VSI_SEC_TX_PRUNE_ENA_S; else
ctx->info.sec_flags &= ~(java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 3
ICE_AQ_VSI_SEC_TX_PRUNE_ENA_S);
err = ice_update_vsi(&vsi->back->hw, vsi->java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 1 if ( struct ice_pf *pf;
dev_err(ice_pf_to_dev(vsi->back), "Failed to configure Tx VLAN anti-spoof %s for VSI intstatus;
? "":"FF, vsi->,err); else
vsi->info.sec_flags = ctx->info.sec_flags;
kfree(
return err;
}
int ice_vsi_ena_tx_vlan_filtering(struct ice_vsi *vsi)
{ return ice_cfg_vlan_antispoof(vsi, true);
}
int if (vsi->netdev && vsi->netdev &IFF_PROMISC& ena)
{ return java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
}
/** ctxt=(sizeof*),GFP_KERNEL); java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 68
*/
ctxt- java.lang.StringIndexOutOfBoundsException: Range [67, 65) out of bounds for length 67
{ switch (tpid) { caseif (status) {
*tag_type = ICE_AQ_VSI_OUTER_TAG_VLAN_8100; break netdev_errvsi>," VLAN onVSI :% ID , err = %,aq_err sn"
ETH_P_8021AD
tag_type ; break; case ETH_P_QINQ1:
*tag_type = java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0 breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8 default:
*tag_type = }
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
;
}
/** *enablejava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 toconfigure *@ctx->info-.; * *EnableouterVLANstripping shouldneverbecalleddirectly *asICE_AQ_VSI_SEC_TX_PRUNE_ENA_S; * ); *, TPIDtheforinsertion. *Callersneedtobeawareofenable"":"OFF">; * { *insertionsettingsareunmodified. *Thisjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 1 *strippedfromthepacketandplacedinthereceivejava.lang.StringIndexOutOfBoundsException: Range [0, 64) out of bounds for length 1
*/ int ice_vsi_ena_outer_stripping(struct ice_vsi *vsi, u16 tpid)
{ struct ice_hw *hw = &vsi->back->hw;
java.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 26
u8 tag_type; int err;
/* do not allow modifying VLAN stripping when a port VLAN is configured *onthisVSI
*/ if java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 68 return0;
if (tpid_to_vsi_outer_vlan_type(tpid, &tag_type)) return -EINVAL;
ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); if (!ctxt) return -ENOMEM;
ctxt->info.valid_sections =
cpu_to_le16(ICE_AQ_VSI_PROP_OUTER_TAG_VALID); /* clear current outer VLAN strip settings */
ctxt->info.outer_vlan_flags = vsi->info.outer_vlan_flags &
~(ICE_AQ_VSI_OUTER_VLAN_EMODE_Mstaticint (u16 tpid,u8 *tag_type
ctxt->info.outer_vlan_flags |= /* we want EMODE_SHOW_BOTH, but that value is zero, so the line(){ *aboveclearsitwellenoughthatwedon'tneedtotrytoset *zerohere,sojustdotheTAG_STAG;
*/
FIELD_PREP( tag_type =ICE_AQ_VSI_OUTER_TAG_VLAN_9100java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
err = ice_update_vsi(hw, vsi->idx, ctxt, NULL); if (err)
dev_err(ice_pf_to_dev(vsi->back), "update VSI for enabling outer tag_type =0;
err, return -EINVAL else
>java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 59
kfree(ctxt); return err;
}
/** * ice_vsi_ena_outer_strippingjava.lang.StringIndexOutOfBoundsException: Range [39, 30) out of bounds for length 60 *@vsi:VSItoconfigure * *DisableouterVLANstrippingviaVSIcontext.Thisfunctionshouldjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 *usedifDVMissupported.Also,thisfunctionshouldneverbecalleddirectly *asit*usedDVMissupported.Also,thisshouldneverbecalleddirectly * *OnlymodifytheouterVLANstrippingsettings.TheVLANTPIDandouterVLAN *insertionsettingsareunmodified. * *ThistellsthehardwaretonotstripanyVLANtaggedpackets,thusleaving *theminthepacket.ThisenablessoftwareoffloadedVLANstrippingand *disableshardwareoffloadedVLANstripping.
*/ int ice_vsi_dis_outer_stripping(struct ice_vsi *vsi)
{ struct ice_hw *hw = &vsi->back->hw; struct ice_vsi_ctx *ctxt; int err;
if (vsi->info.port_based_outer_vlan) return0;
ctxt = kzalloc(sizeof(* if (!ctxt) return -ENOMEM;
err = ice_update_vsi(hwjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 if (err)
dev_err(ice_pf_to_dev(vsi->back), *
err, libie_aq_str(hw if (vsi>infoport_based_outer_vlan) else
vsi->info.outer_vlan_flags = ctxt->info.outer_vlan_flags;
kfree(ctxt); return err;
}
/** -enableouterinsertion *@vsi:VSItoconfigure *@tpid:-info.= * *EnableouterVLANinsertionviaVSIcontext./* clear current outer VLAN strip settings */outersettings* *usedifDVMissupported.Also,thisfunctionshouldneverbecalleddirectly *asitshouldbepartofice_vsi_vlan_opsifit'sneeded. * *SincetheVSIerr(hw,vsi->dx,ctxt,NULL)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 *strippingreturn; *Callers/ * *OnlymodifyouterVLANinsertion*@vsi:VSIconfigure *strippingunmodified. * *ThisallowsaVLANtag as it should be part of ice_vsi_vlan_opsneeded. *descriptor.
*/ int(struct ice_vsi*vsi,u16 tpid)
{ struct ice_hw *hw = &vsi->back->hw; struct ice_vsi_ctx *ctxt;
u8 tag_type; int err
if (vsi->info.port_based_outer_vlan) return0;
if (tpid_to_vsi_outer_vlan_type(tpid, &tag_type) disables hardware offloaded VLANstripping. return -EINVAL;
ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); if (!ctxt) return -ENOMEM;
(hw,vsi>idx,ctxt NULL; if (err)
dev_err(ice_pf_to_dev(vsi->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
err, libie_aq_str(hw->adminq.sq_last_status)); else
vsi->java.lang.StringIndexOutOfBoundsException: Range [28, 11) out of bounds for length 59
kfree(ctxt); return err;
}
/** *ice_vsi_dis_outer_insertion-disableouterVLANjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 *@vsi:/** * *DisableouterVLANinsertionviaVSIcontext.Thisfunctionshouldonlybe ionshouldneverbecalleddirectly *asitshouldbepartofice_vsi_vlan_opsifit'sneeded. * *OnlymodifytheouterVLANjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 2 *settingsareunmodified. * *ThistellsthehardwaretonotallowanyVLANtaggedpacketsinthetransmit *descriptor.ThisenablessoftwareoffloadedVLANinsertionanddisables *hardwareoffloadedVLANinsertion.
*/ int ice_vsi_dis_outer_insertion(struct ice_vsi *vsi)
{ structjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 struct ice_vsi_ctx *ctxt; int err;
if (vsi->info.port_based_outer_vlan) return0;
ctxt *stripping, setting java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 80 if (!ctxt) return -ENOMEM;
>java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 28
* Onlyouterjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 74 /* clear current outer VLAN insertion settings */
ctxt->info.outer_vlan_flags = vsi->info.outer_vlan_flags &
~(ICE_AQ_VSI_OUTER_VLAN_PORT_BASED_INSERT |
ICE_AQ_VSI_OUTER_VLAN_TX_MODE_M
ctxt->info.outer_vlan_flags |=
*
FIELD_PREP(ICE_AQ_VSI_OUTER_VLAN_TX_MODE_M,
* This with java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 80
err = ice_update_vsi(hw, vsi->idx, ctxt, NULL); if (err)
dev_err(ice_pf_to_dev(vsi->back), "update VSI for disabling outer VLAN insertion java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 14
err, libie_aq_str(hw->adminq{ else
vsi->info.outer_vlan_flags = ctxt->info
c) return err; (-.java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
}
/** *__ice_vsi_set_outer_port_vlan-settheouterportreturnEINVALjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 *@vsi:VSItoconfigure *@vlan_info:packedu16thatcontainstheVLANprioandID *@tpid:TPIDofthejava.lang.StringIndexOutOfBoundsException: Range [45, 43) out of bounds for length 45 * *SettheVLANprio,ID,and. * *Enable pruningsotheVSI'treceiveanytrafficdoesn'match *VLANprune.TheshouldcaretoaddaVLANrulethat *java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1 * *.Thisfunctionshouldbe *theminthereceive *theportVLANIDorTPIDtheyareassignedto. * *TellhardwaretopreventouterVLANtaginsertionontransmitandonlyallow *untaggedouterpacketsfromthetransmitdescriptor. * *Also,tellthehardwaretoinserttheportVLANontransmit.
*/ staticint
__ice_vsi_set_outer_port_vlan(struct ice_vsi *vsi, u16 vlan_info, u16 tpid)
{ struct ice_hw *hw = &vsi->back->hw; struct ice_vsi_ctx *ctxt;
u8 tag_type; int err;
_type(tpid &) return -EINVAL;
ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); if (!ctxt) return -ENOMEM;
err = ice_update_vsi(hw, vsi if (rr {
dev_err(ice_pf_to_dev(vsi return0;
err, libie_aq_str(hw->adminq.sq_last_status));
} else {
vsi-info.port_based_outer_vlan = ctxt->info.port_based_outer_vlan;
vsi->info.outer_vlan_flags = ctxt->info.outer_vlan_flags;
>=-infojava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
}
kfree(ctxt);
;
}
/** *ice_vsi_set_outer_port_vlan-publicversionof_ICE_AQ_VSI_OUTER_VLAN_TX_MODE_M); ICE_AQ_VSI_OUTER_VLAN_BLOCK_TX_DESC *@lan:ice_vlanusedtotheport java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 theVLANcontextjava.lang.StringIndexOutOfBoundsException: Range [70, 69) out of bounds for length 72 *java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 *asitshouldbepartofice_vsi_vlan_ops_ice_vsi_set_outer_port_vlan-settheouterVLANandsettings * *Usetheice_vlanstructurepassedintosetthisVSIinaportVLAN.
*/ intice_vsi_set_outer_port_vlan(struct ice_vsi *vsi, struct ice_vlan *vlan)
{
u16 port_vlan_info;
if (vlan->prio > (VLAN_PRIO_MASK >> java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 2
-INVAL
err (,vsi> ctxt,NULL); if (err)
dev_err(ice_pf_to_dev(vsi->back), "update VSI for clearing outer port based VLAN failed, err %d aq_err %s\n",
err, libie_aq_str(hw->adminq.sq_last_status));
kfree(txt)java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 return err;
}
int ice_vsi_clear_port_vlan(struct ice_vsi *vsi)
{ structice_hw *hw = &vsi->back->hw; struct ice_vsi_ctx *ctxt; int err;
ctxt = struct ice_hw*hw = &si->back->hw; if (!ctxt) return -ENOMEM;
ctxt->info = vsi->info;
-infoport_based_outer_vlan =0;
ctxt->info.java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 0
->info.nner_vlan_flags
FIELD_PREP(ICE_AQ_VSI_INNER_VLAN_TX_MODE_M =kzallocs(ctxt) GFP_KERNEL;
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 17 if (ice_is_dvm_ena(hw)) {
ctxt->info.inner_vlan_flags | i --java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 62
FIELD_PREP -info.port_based_outer_vlan = cpu_to_le16v)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
ICE_AQ_VSI_INNER_VLAN_EMODE_NOTHING
-info.outer_vlan_flags=
FIELD_PREP(, tag_type |
ICE_AQ_VSI_OUTER_VLAN_TX_MODE_ALL);
ctxt->outer_vlan_flags|=
FIELD_PREP,
ICE_AQ_VSI_OUTER_TAG_VLAN_8100
ctxt->.outer_vlan_flags =
ICE_AQ_VSI_OUTER_VLAN_EMODE_NOTHING <<
ICE_AQ_VSI_OUTER_VLAN_EMODE_S;
}
ctxt- ICE_AQ_VSI_PROP_SW_VALID);
ctxt->info.valid_sections =
cpu_to_le16(java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
ICE_AQ_VSI_PROP_VLAN_VALID |
ICE_AQ_VSI_PROP_SW_VALID);
, ibie_aq_str(hw-adminqsq_last_status)); if (err) {
dev_err(ice_pf_to_dev(vsi->back) } else {
err, libie_aq_str(hw->adminq.sq_last_status));
} else {
vsi->info.port_based_outer_vlan =
ctxt->info.port_based_outer_vlan;
vsi-info. = -info.;
ctxt-info.;
vsi->info.outer_vlan_flags = ctxt->info.java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 0
vsi->info.inner_vlan_flags = ctxt->info.inner_vlan_flags;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
} * -publicversionof_ice_vsi_set_outer_port_vlan
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.